It is up to your xBestIndex method to confern this information to your xFilter
method, e.g. by setting the idxStr return parameter in a way these methods
understand (e.g. leave it pointing to a character that encodes the required
comparison). The idxStr is passed to xFilter unchanged from what the specific
call to xBestIndex returns. If the idxStr is dynamically allocated, it is a
good idea to set the "idxStr needs to be freed" return parameter. Remember that
there can be more than one call to xBestIndex while the SQLite Query Planner is
trying to figure out the optimum plan.
-Urspr?ngliche Nachricht-
Von: sqlite-users-bounces at mailinglists.sqlite.org
[mailto:sqlite-users-bounces at mailinglists.sqlite.org] Im Auftrag von Johnny
Wezel
Gesendet: Freitag, 13. November 2015 18:34
An: SQLite mailing list
Betreff: [sqlite] Information passing between xBestIndex and xFilter
I think there is a flaw in information passing between the xBestIndex and
xFilter methods in virtual tables.
The information about the constraint operation in the aConstraint array can't
reach xFilter. But how is xFilter to know how to set up the cursor when a
statement like
SELECT * FROM MyTable WHERE a > 10
is given? I can pass the index covering a and I can make SQLite pass the
constant 10 to xFilter, but not the > operation.
IMHO xBestIndex should be called after xOpen as opposed to before and have a
cursor parameter so I can set up the whole filtering information on my terms.
Any thoughts on that?
Cheers,
Johnny
___
sqlite-users mailing list
sqlite-users at mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
___
Gunter Hick
Software Engineer
Scientific Games International GmbH
FN 157284 a, HG Wien
Klitschgasse 2-4, A-1130 Vienna, Austria
Tel: +43 1 80100 0
E-Mail: hick at scigames.at
This communication (including any attachments) is intended for the use of the
intended recipient(s) only and may contain information that is confidential,
privileged or legally protected. Any unauthorized use or dissemination of this
communication is strictly prohibited. If you have received this communication
in error, please immediately notify the sender by return e-mail message and
delete all copies of the original communication. Thank you for your cooperation.