Expression 'where bool_field IS true | false' should also use index as 'where 
bool_field = true | false' (if such index exists)
-------------------------------------------------------------------------------------------------------------------------------

                 Key: CORE-4735
                 URL: http://tracker.firebirdsql.org/browse/CORE-4735
             Project: Firebird Core
          Issue Type: Improvement
            Reporter: Pavel Zotov
            Priority: Minor


SQL> recreate table t(boo boolean);
SQL> commit;
SQL> create index t_boo on t(boo);
SQL> commit;

SQL> set plan on;

SQL> select * from t where boo is null;
PLAN (T INDEX (T_BOO))

SQL> select * from t where boo is not distinct from true;
PLAN (T INDEX (T_BOO))

SQL> select * from t where boo = true;
PLAN (T INDEX (T_BOO))

SQL> select * from t where boo IS true;
PLAN (T NATURAL)

It will be useful if optimizer will also use index in the last expression 
because for boolean values one may easy to get mistake by typing 'x IS true' 
instead of 'x = true' -- simply because first case  "sounds" more natively in 
english language when such expression is pronounced.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to