LIKE & GLOB can be overridden with user defined functions. According to
https://www.sqlite.org/lang_corefunc.html LIKE can be a 2 or 3 argument
function, GLOB can be a 2 argument function, and neither MATCH nor REGEXP
can be redefined.

MATCH is only used in FTS queries if my understanding is correct, so I can
appreciate why MATCH can't be redefined given the close integration between
the keyword and a specific virtual table module.

That leaves LIKE & GLOB & REGEXP. Why the differences in redefinition
capabilities? Why can't an ESCAPE clause form of GLOB be redefined? Why
can't any form of REGEXP be redefined? Or are some or all of these
"exceptions" possible but the documentation doesn't cover them?

I have no desire to redefine anything myself, this is primarily an exercise
in understanding why the design choices were made, and I am wondering if
there is ever a reason in SQL code to choose the function form of the LIKE
(or other) operator over the operator itself. Is it intended that the
operator form of the expression will always behave exactly like the
function form of the expression (with the appropriate reordering of
arguments)?

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

Reply via email to