mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-05 04:30:38 +03:00
Merge the OFFSET-on-query-without-FROM fix from trunk.
FossilOrigin-Name: 71e9ae72c272dc86720b2bfe719f57de437c400b
This commit is contained in:
16
manifest
16
manifest
@@ -1,5 +1,5 @@
|
|||||||
C New\stest\scase\sfor\sblock-sorting.
|
C Merge\sthe\sOFFSET-on-query-without-FROM\sfix\sfrom\strunk.
|
||||||
D 2014-03-21T15:24:07.126
|
D 2014-03-21T18:45:19.215
|
||||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||||
F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81
|
F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81
|
||||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||||
@@ -217,7 +217,7 @@ F src/printf.c e5a0005f8b3de21f85da6a709d2fbee76775bf4b
|
|||||||
F src/random.c d10c1f85b6709ca97278428fd5db5bbb9c74eece
|
F src/random.c d10c1f85b6709ca97278428fd5db5bbb9c74eece
|
||||||
F src/resolve.c 273d5f47c4e2c05b2d3d2bffeda939551ab59e66
|
F src/resolve.c 273d5f47c4e2c05b2d3d2bffeda939551ab59e66
|
||||||
F src/rowset.c 64655f1a627c9c212d9ab497899e7424a34222e0
|
F src/rowset.c 64655f1a627c9c212d9ab497899e7424a34222e0
|
||||||
F src/select.c 12534449e77ff54fca5d3e9fcddc10031b13fbc1
|
F src/select.c 596b8098be41e6256968f167d1d8ece2be08d082
|
||||||
F src/shell.c cee9f46f2688a261601b1fd3d7f4b3cddf9b5cdf
|
F src/shell.c cee9f46f2688a261601b1fd3d7f4b3cddf9b5cdf
|
||||||
F src/sqlite.h.in a2ef671f92747a5a1c8a47bad5c585a8dd9eca80
|
F src/sqlite.h.in a2ef671f92747a5a1c8a47bad5c585a8dd9eca80
|
||||||
F src/sqlite3.rc 11094cc6a157a028b301a9f06b3d03089ea37c3e
|
F src/sqlite3.rc 11094cc6a157a028b301a9f06b3d03089ea37c3e
|
||||||
@@ -291,7 +291,7 @@ F src/vtab.c 21b932841e51ebd7d075e2d0ad1415dce8d2d5fd
|
|||||||
F src/wal.c 76e7fc6de229bea8b30bb2539110f03a494dc3a8
|
F src/wal.c 76e7fc6de229bea8b30bb2539110f03a494dc3a8
|
||||||
F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4
|
F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4
|
||||||
F src/walker.c 11edb74d587bc87b33ca96a5173e3ec1b8389e45
|
F src/walker.c 11edb74d587bc87b33ca96a5173e3ec1b8389e45
|
||||||
F src/where.c d6d99a4d83c58dfdd66cd9d93d41a22f3488e31c
|
F src/where.c f394453e4960462e62671158199f060ac956f8bc
|
||||||
F src/whereInt.h 2564055b440e44ebec8b47f237bbccae6719b7af
|
F src/whereInt.h 2564055b440e44ebec8b47f237bbccae6719b7af
|
||||||
F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
|
F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
|
||||||
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
|
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
|
||||||
@@ -648,7 +648,7 @@ F test/lastinsert.test 42e948fd6442f07d60acbd15d33fb86473e0ef63
|
|||||||
F test/laststmtchanges.test ae613f53819206b3222771828d024154d51db200
|
F test/laststmtchanges.test ae613f53819206b3222771828d024154d51db200
|
||||||
F test/like.test e191e536d0fcd722a6b965e7cd1ee0bfd12a5991
|
F test/like.test e191e536d0fcd722a6b965e7cd1ee0bfd12a5991
|
||||||
F test/like2.test 3b2ee13149ba4a8a60b59756f4e5d345573852da
|
F test/like2.test 3b2ee13149ba4a8a60b59756f4e5d345573852da
|
||||||
F test/limit.test cc0ab63385239b63c72452b0e93700bf5e8f0b99
|
F test/limit.test 3d7df19c35ac672a11f7de406cd3205d592babbb
|
||||||
F test/loadext.test 648cb95f324d1775c54a55c12271b2d1156b633b
|
F test/loadext.test 648cb95f324d1775c54a55c12271b2d1156b633b
|
||||||
F test/loadext2.test 0408380b57adca04004247179837a18e866a74f7
|
F test/loadext2.test 0408380b57adca04004247179837a18e866a74f7
|
||||||
F test/lock.test 87af515b0c4cf928576d0f89946d67d7c265dfb4
|
F test/lock.test 87af515b0c4cf928576d0f89946d67d7c265dfb4
|
||||||
@@ -1157,7 +1157,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
|
|||||||
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||||
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
|
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
|
||||||
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
|
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
|
||||||
P eca35871c34374ca9189c7c9b6d490ac3c30357f
|
P e70cfa28aa393661ccc742ecd5e672d807bdd0a9 179ef81648b0ad557df78b7712f216b876b6fb65
|
||||||
R f6c9f43506e02e19d33da5c08cba37a5
|
R 654a6218c0c034c3e6462d9f9d0a06b2
|
||||||
U drh
|
U drh
|
||||||
Z 983388db59b02f32fb79fe85b7106067
|
Z 7a7ab7eaa2946af0174662f0ca0e6009
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
e70cfa28aa393661ccc742ecd5e672d807bdd0a9
|
71e9ae72c272dc86720b2bfe719f57de437c400b
|
||||||
@@ -537,7 +537,7 @@ static void codeOffset(
|
|||||||
int iOffset, /* Register holding the offset counter */
|
int iOffset, /* Register holding the offset counter */
|
||||||
int iContinue /* Jump here to skip the current record */
|
int iContinue /* Jump here to skip the current record */
|
||||||
){
|
){
|
||||||
if( iOffset>0 && iContinue!=0 ){
|
if( iOffset>0 ){
|
||||||
int addr;
|
int addr;
|
||||||
sqlite3VdbeAddOp2(v, OP_AddImm, iOffset, -1);
|
sqlite3VdbeAddOp2(v, OP_AddImm, iOffset, -1);
|
||||||
addr = sqlite3VdbeAddOp1(v, OP_IfNeg, iOffset); VdbeCoverage(v);
|
addr = sqlite3VdbeAddOp1(v, OP_IfNeg, iOffset); VdbeCoverage(v);
|
||||||
@@ -631,6 +631,7 @@ static void selectInnerLoop(
|
|||||||
hasDistinct = pDistinct ? pDistinct->eTnctType : WHERE_DISTINCT_NOOP;
|
hasDistinct = pDistinct ? pDistinct->eTnctType : WHERE_DISTINCT_NOOP;
|
||||||
if( pSort && pSort->pOrderBy==0 ) pSort = 0;
|
if( pSort && pSort->pOrderBy==0 ) pSort = 0;
|
||||||
if( pSort==0 && !hasDistinct ){
|
if( pSort==0 && !hasDistinct ){
|
||||||
|
assert( iContinue!=0 );
|
||||||
codeOffset(v, p->iOffset, iContinue);
|
codeOffset(v, p->iOffset, iContinue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ int sqlite3WhereIsOrdered(WhereInfo *pWInfo){
|
|||||||
** immediately with the next row of a WHERE clause.
|
** immediately with the next row of a WHERE clause.
|
||||||
*/
|
*/
|
||||||
int sqlite3WhereContinueLabel(WhereInfo *pWInfo){
|
int sqlite3WhereContinueLabel(WhereInfo *pWInfo){
|
||||||
|
assert( pWInfo->iContinue!=0 );
|
||||||
return pWInfo->iContinue;
|
return pWInfo->iContinue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5471,7 +5472,7 @@ WhereInfo *sqlite3WhereBegin(
|
|||||||
pWInfo->pTabList = pTabList;
|
pWInfo->pTabList = pTabList;
|
||||||
pWInfo->pOrderBy = pOrderBy;
|
pWInfo->pOrderBy = pOrderBy;
|
||||||
pWInfo->pResultSet = pResultSet;
|
pWInfo->pResultSet = pResultSet;
|
||||||
pWInfo->iBreak = sqlite3VdbeMakeLabel(v);
|
pWInfo->iBreak = pWInfo->iContinue = sqlite3VdbeMakeLabel(v);
|
||||||
pWInfo->wctrlFlags = wctrlFlags;
|
pWInfo->wctrlFlags = wctrlFlags;
|
||||||
pWInfo->savedNQueryLoop = pParse->nQueryLoop;
|
pWInfo->savedNQueryLoop = pParse->nQueryLoop;
|
||||||
pMaskSet = &pWInfo->sMaskSet;
|
pMaskSet = &pWInfo->sMaskSet;
|
||||||
|
|||||||
@@ -616,4 +616,24 @@ do_test limit-13.81 {
|
|||||||
db eval {SELECT z FROM v13c LIMIT 1 OFFSET 8}
|
db eval {SELECT z FROM v13c LIMIT 1 OFFSET 8}
|
||||||
} {}
|
} {}
|
||||||
|
|
||||||
|
do_execsql_test limit-14.1 {
|
||||||
|
SELECT 123 LIMIT 1 OFFSET 0
|
||||||
|
} {123}
|
||||||
|
do_execsql_test limit-14.2 {
|
||||||
|
SELECT 123 LIMIT 1 OFFSET 1
|
||||||
|
} {}
|
||||||
|
do_execsql_test limit-14.3 {
|
||||||
|
SELECT 123 LIMIT 0 OFFSET 0
|
||||||
|
} {}
|
||||||
|
do_execsql_test limit-14.4 {
|
||||||
|
SELECT 123 LIMIT 0 OFFSET 1
|
||||||
|
} {}
|
||||||
|
do_execsql_test limit-14.6 {
|
||||||
|
SELECT 123 LIMIT -1 OFFSET 0
|
||||||
|
} {123}
|
||||||
|
do_execsql_test limit-14.7 {
|
||||||
|
SELECT 123 LIMIT -1 OFFSET 1
|
||||||
|
} {}
|
||||||
|
|
||||||
|
|
||||||
finish_test
|
finish_test
|
||||||
|
|||||||
Reference in New Issue
Block a user