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

Reply via email to