It seems that SQLite is no longer honoring the aConstaintUsage[].omit flag for 
constraints that do not have an aContraint[].argvIndex set.

This breaks a feature of our virtual table implementation that allows special 
hidden columns named in the WHERE clause to be interpreted as hints (i.e. which 
virtual table index to use) or to speed up data transfer for our partitioned 
table implementation (returning the composite record image instead of n 
distinct fields therough 2 levels of SELECT statements).

SQL syntax requires that they be named in an expression, but since their value 
is not required the argvIndex is left at 0 (instead of having to append unique 
index values, with SQLite generating arguments to xFilter that are simply 
ignored).

3.13.0 opcodes:

asql> explain select __table from cma_ct_card_42 where __table=0;
addr  opcode         p1    p2    p3    p4             p5  comment
----  -------------  ----  ----  ----  -------------  --  -------------
0     Init           0     13    0                    00  Return
1     VOpen          0     0     0     vtab:6205C08   00  VColumn
2     Explain        0     0     0     SCAN TABLE cma_ct_card_42 VIRTUAL TABLE 
INDEX 0:  00
3     Integer        0     1     0                    00  Int64
4     Integer        0     2     0                    00  Int64
5     VFilter        0     11    1                    00  VUpdate
6       VColumn        0     35    3                    00  VRename; 
cma_ct_card_42.__table
7       Ne             4     10    3     (BINARY)       53  Eq
8       Copy           3     5     0                    00  SCopy
9       ResultRow      5     1     0                    00  CollSeq
10    VNext          0     6     0                    00  Init
11    Close          0     0     0                    00  ColumnsUsed
12    Halt           0     0     0                    00  Integer
13    Integer        0     4     0                    00  Int64
14    Goto           0     1     0                    00  Gosub

3.7.14.1 opcodes:

asql> explain select __table from cma_ct_card_05 where __table=0;
addr  opcode         p1    p2    p3    p4             p5  comment
----  -------------  ----  ----  ----  -------------  --  -------------
0     Trace          0     0     0                    00  NULL
1     Integer        0     1     0                    00  NULL
2     Goto           0     12    0                    00  NULL
3     VOpen          0     0     0     vtab:1D32698:2B178127BA70  00  NULL
4     Integer        0     2     0                    00  NULL
5     Integer        0     3     0                    00  NULL
6     VFilter        0     10    2                    00  NULL
7     VColumn        0     35    5                    00  cma_ct_card_05.__table
8     ResultRow      5     1     0                    00  NULL
9     VNext          0     7     0                    00  NULL
10    Close          0     0     0                    00  NULL
11    Halt           0     0     0                    00  NULL
12    Goto           0     3     0                    00  NULL


___________________________________________
 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: h...@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.


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

Reply via email to