On Fri, Mar 2, 2018 at 4:19 AM, Richard Hipp <d...@sqlite.org> wrote:
> On 3/2/18, Olivier Mascia <o...@integral.be> wrote: > > > > What values will be considered FALSE, and hence will TRUE be NOT FALSE or > > equality to some other specific value? > > I have a note to provide additional documentation on this before the > release. > > In short, a value is FALSE is, when converted into a floating point > number via CAST(x AS REAL) it has a value of 0.0. > > It used to be (https://www.sqlite.org/src/info/36fae083b450e3af) that > sometimes FALSE was determined by CAST(x AS INTEGER). This was > inconsistent. Beginning with 3.23.0, FALSE is determined by CAST(x AS > REAL) in all cases. > > So in other words, it used to be that 0.5 was sometimes considered > TRUE and other times considered FALSE, depending on context. It is > now always considered TRUE. > > Strings are TRUE or FALSE depending on whether or not they evaluate to > non-zero when converted. '123xyz' is TRUE, but '0abc', 'abc', and '' > are all FALSE. > > > > Will insert into T values(FALSE) actually store integer 0 no matter > column > > affinity or will it follow affinity? > > No. FALSE is merely an alias for 0. Affinity still applies. If the > column is of type TEXT, then it will store '0', not 0. > is NULL false? > > -- > D. Richard Hipp > d...@sqlite.org > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users