]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Improved error messages when column integers in an ORDER BY clause are
authordrh <drh@noemail.net>
Fri, 7 Dec 2012 23:23:53 +0000 (23:23 +0000)
committerdrh <drh@noemail.net>
Fri, 7 Dec 2012 23:23:53 +0000 (23:23 +0000)
out of range.

FossilOrigin-Name: bd960d937f8d6521c8ec4b7bd8a77a498dd432d4

manifest
manifest.uuid
src/resolve.c
test/tkt2822.test

index ebca88fa785e09455d016b2adfffe8211d17ef75..7389441669f4bee58496cc8ea083420bcf39d5b4 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C For\san\sORDER\sBY\son\sa\scompound\sSELECT,\stake\sthe\scollating\ssequence\sfrom\sthe\nleft-most\sterm\sof\sthe\scompound.
-D 2012-12-07T23:10:40.495
+C Improved\serror\smessages\swhen\scolumn\sintegers\sin\san\sORDER\sBY\sclause\sare\s\nout\sof\srange.
+D 2012-12-07T23:23:53.894
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 690d441a758cbffd13e814dc2724a721a6ebd400
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -172,7 +172,7 @@ F src/pragma.c 015723c48072781d2740e310ab04dc92956b76d1
 F src/prepare.c 931ad0d852a0df48f79adcba6ce79ca5f475625c
 F src/printf.c 4a9f882f1c1787a8b494a2987765acf9d97ac21f
 F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
-F src/resolve.c 5ed606916be6c63f0e262cc2cb817712384f18b5
+F src/resolve.c cdd546d62da7763119ea1fa455a898959e03457f
 F src/rowset.c 64655f1a627c9c212d9ab497899e7424a34222e0
 F src/select.c def5381139465670bc06b3e1adfe39a7f7dd21c2
 F src/shell.c e392dd1ccbb77cc1d75a8367a89b473c24bea019
@@ -830,7 +830,7 @@ F test/tkt2686.test 6ee01c9b9e9c48f6d3a1fdd553b1cc4258f903d6
 F test/tkt2767.test 569000d842678f9cf2db7e0d1b27cbc9011381b0
 F test/tkt2817.test f31839e01f4243cff7399ef654d3af3558cb8d8d
 F test/tkt2820.test 39940276b3436d125deb7d8ebeee053e4cf13213
-F test/tkt2822.test a2b27a58df62d1b2e712f91dbe42ad3b7e0e77cc
+F test/tkt2822.test f391776423a7c0d0949edfce375708bfb0f3141e
 F test/tkt2832.test a9b0b74a02dca166a04d9e37739c414b10929caa
 F test/tkt2854.test e432965db29e27e16f539b2ba7f502eb2ccc49af
 F test/tkt2920.test a8737380e4ae6424e00c0273dc12775704efbebf
@@ -1025,7 +1025,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
 F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
-P e313edca0472f07e9b872b92120d80b4bc177328
-R e4585f659b2dcbe9302be05eb8524ec0
+P 8e724b383da1314909c9a05e9d941a26a9f50b95
+R 881a229233da2a5bfc26c84533c04750
 U drh
-Z 090567ff5e7c71e3b99bc2fa20ffefbb
+Z a8bde7d83f4cf51f4dbb6d352a9305a4
index f3ef64e3fc846d0d4a983d25c67d3bbaa7ee14f4..55db2ef4713d67715868b0ae9390d87c61768b15 100644 (file)
@@ -1 +1 @@
-8e724b383da1314909c9a05e9d941a26a9f50b95
\ No newline at end of file
+bd960d937f8d6521c8ec4b7bd8a77a498dd432d4
\ No newline at end of file
index d5d9d1c1aed1d76335f66adbbe208e239869b11a..51aab7792b8caa36531a951d9bc750cdd1369219 100644 (file)
@@ -956,7 +956,7 @@ static int resolveOrderGroupBy(
       /* The ORDER BY term is an integer constant.  Again, set the column
       ** number so that sqlite3ResolveOrderGroupBy() will convert the
       ** order-by term to a copy of the result-set expression */
-      if( (iCol & ~0xffff)!=0 ){
+      if( iCol<1 || iCol>0xffff ){
         resolveOutOfRangeError(pParse, zType, i+1, nResult);
         return 1;
       }
index 281e5dc91fc3adf9dc6610958b99247a774f0290..d0b16338c6b842a81ed0aaf2daacc8e10dbfa5ba 100644 (file)
@@ -273,11 +273,21 @@ do_test tkt2822-7.1 {
     SELECT * FROM t7 ORDER BY 0;
   }
 } {1 {1st ORDER BY term out of range - should be between 1 and 25}}
-do_test tkt2822-7.2 {
+do_test tkt2822-7.2.1 {
   catchsql {
     SELECT * FROM t7 ORDER BY 1, 0;
   }
 } {1 {2nd ORDER BY term out of range - should be between 1 and 25}}
+do_test tkt2822-7.2.2 {
+  catchsql {
+    SELECT * FROM t7 ORDER BY 1, 26;
+  }
+} {1 {2nd ORDER BY term out of range - should be between 1 and 25}}
+do_test tkt2822-7.2.3 {
+  catchsql {
+    SELECT * FROM t7 ORDER BY 1, 65536;
+  }
+} {1 {2nd ORDER BY term out of range - should be between 1 and 25}}
 do_test tkt2822-7.3 {
   catchsql {
     SELECT * FROM t7 ORDER BY 1, 2, 0;