Re: [sqlite] Passing collation to xBestIndex

2013-07-17 Thread Dušan Paulovič
OK, I have looked over all possible solutions for this issue and the best I could find is to extend sqlite3_index_info structure as follows: struct sqlite3_index_info { ... /* Extra info */ struct sqlite3_index_extras { int iVersion; sqlite3_collseq **coll_seq; /* Collation

Re: [sqlite] Passing collation to xBestIndex

2013-07-17 Thread Dušan Paulovič
Yes, xRename was a part of the v1 module interface, but v1 module interface is not the first verson of it. Old sqlite extensions does not even contain xRename in their VT implementations and xFindFunction was the last one considered. I understand what you mean by binary incompatibility, but it is

Re: [sqlite] Passing collation to xBestIndex

2013-07-17 Thread Jay A. Kreibich
On Wed, Jul 17, 2013 at 01:27:20PM +0200, Du?an Paulovi? scratched on the wall: > But it is the same as with new functions in sqlite3_module. Old SQLite > extensions does not implement xRename function which is now needed. Also, > new feature could be made optional using macro switch like some

Re: [sqlite] Passing collation to xBestIndex

2013-07-17 Thread Dušan Paulovič
Well, to make it binary compatible with existing virtual table implementations, there could be added new function returning const pointer to CollSeq structure from passed index contraint. This function should be callable only from xBestIndex function. Something like: const CollSeq *

Re: [sqlite] Passing collation to xBestIndex

2013-07-17 Thread Dušan Paulovič
But it is the same as with new functions in sqlite3_module. Old SQLite extensions does not implement xRename function which is now needed. Also, new feature could be made optional using macro switch like some other features in SQLite. 2013/7/17 Stephan Beal > On Wed, Jul

Re: [sqlite] Passing collation to xBestIndex

2013-07-17 Thread Stephan Beal
On Wed, Jul 17, 2013 at 12:24 PM, Dušan Paulovič wrote: > What do you mean? I use it for a while on Windows and all works. > Binary not compatible with what? > What Dan means is that libraries built with and without this feature might not be binary compatible. i compile

Re: [sqlite] Passing collation to xBestIndex

2013-07-17 Thread Dušan Paulovič
What do you mean? I use it for a while on Windows and all works. Binary not compatible with what? Dusan 2013/7/17 Dan Kennedy > On 07/17/2013 03:46 PM, Dušan Paulovič wrote: > >> Hello, >> in virtual table mechanism is missing a way to correctly handle following >>

Re: [sqlite] Passing collation to xBestIndex

2013-07-17 Thread Dan Kennedy
On 07/17/2013 03:46 PM, Dušan Paulovič wrote: Hello, in virtual table mechanism is missing a way to correctly handle following queries: SELECT * FROM vtab WHERE field = 'abc' COLLATE NOCASE; SELECT * FROM vtab WHERE field = 'abc' COLLATE USER_COLLATE; To xBestIndex function is passed only

[sqlite] Passing collation to xBestIndex

2013-07-17 Thread Dušan Paulovič
Hello, in virtual table mechanism is missing a way to correctly handle following queries: SELECT * FROM vtab WHERE field = 'abc' COLLATE NOCASE; SELECT * FROM vtab WHERE field = 'abc' COLLATE USER_COLLATE; To xBestIndex function is passed only constraint field = 'abc', but there is no way to