Maybe you should be using IS TRUE. See https://sqlite.org/lang_expr.html

     Boolean Expressions

     The SQL language features several contexts where an expression is 
evaluated and the result converted to a boolean (true or false) value. These 
contexts are:
     • the WHERE clause of a SELECT, UPDATE or DELETE statement,
     • the ON or USING clause of a join in a SELECT statement,
     • the HAVING clause of a SELECT statement,
     • the WHEN clause of an SQL trigger, and
     • the WHEN clause or clauses of some CASE expressions.

     To convert the results of an SQL expression to a boolean value, SQLite 
first casts the result to a NUMERIC value in the same way as a CAST expression. 
A numeric zero value (integer value 0 or real value 0.0) is considered to be 
false. A NULL value is still NULL. All other values are considered true.

     For example, the values NULL, 0.0, 0, 'english' and '0' are all considered 
to be false. Values 1, 1.0, 0.1, -0.1 and '1english' are considered to be true.

     Beginning with SQLite 3.23.0 (2018-04-02), SQLite recognizes the 
identifiers "TRUE" and "FALSE" as boolean literals, if and only if those 
identifiers are not already used for some other meaning. If there already 
exists columns or tables or other objects named TRUE or FALSE, then for the 
sake of backwards compatibility, the TRUE and FALSE identifiers refer to those 
other objects, not to the boolean values.

     The boolean identifiers TRUE and FALSE are usually just aliases for the 
integer values 1 and 0, respectively. However, if TRUE or FALSE occur on the 
right-hand side of an IS operator, then they form new unary postfix operators 
"IS TRUE" and "IS FALSE" which test the boolean value of the operand on the 
left.

-----Ursprüngliche Nachricht-----
Von: sqlite-users [mailto:sqlite-users-boun...@mailinglists.sqlite.org] Im 
Auftrag von Larry Brasfield
Gesendet: Samstag, 01. Dezember 2018 19:39
An: sqlite-users@mailinglists.sqlite.org
Betreff: [EXTERNAL] [sqlite] geopoly_contains_point(P,X,Y) doc is overly modest

The documentation at https://www.sqlite.org/geopoly.html , at 3.8. for 
geopoly_contains_point(), asserts that the function “returns true if and only 
if the coordinate X,Y is inside or on the boundary of the polygon P.”  As now 
implemented, in the v3.26 release, it returns 1 where the point is on a 
boundary and 2 where the point is inside of the boundary.  While the 
documentation is technically correct, (for a suitable definition of “true” 
differing from its meaning in SQL), this seems to be a useful behavior worthy 
of exposure.

I suggest the rewording, “returns 2 if the coordinate X,Y is inside polygon P, 
1 if on the boundary, or 0 otherwise.”  I submit that this might help avoid 
errors such as “… WHERE geopoly_contains_point(_shape, ptX, ptY) = TRUE”, which 
will produce surprise for those who read the present claim literally.
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org<mailto:sqlite-users@mailinglists.sqlite.org>
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


___________________________________________
 Gunter Hick | Software Engineer | Scientific Games International GmbH | 
Klitschgasse 2-4, A-1130 Vienna | FN 157284 a, HG Wien, DVR: 0430013 | (O) +43 
1 80100 - 0

May be privileged. May be confidential. Please delete if not the addressee.

_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to