]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix handling of columns with names that are SQL keywords in the ".expert" command.
authordan <Dan Kennedy>
Wed, 10 Aug 2022 15:29:21 +0000 (15:29 +0000)
committerdan <Dan Kennedy>
Wed, 10 Aug 2022 15:29:21 +0000 (15:29 +0000)
FossilOrigin-Name: 5e1b8221c385deb04a3ff5aafb2e9fc55aecc6ffc68328674e3afe56c4273e29

ext/expert/expert1.test
ext/expert/sqlite3expert.c
manifest
manifest.uuid

index 73541122d8175560f54ca10cd60bc13c93820ee9..dee4eb9ec0d3db3fe68ca04b1e35145fdb08cc37 100644 (file)
@@ -391,6 +391,16 @@ do_setup_rec_test $tn.18.1 {
   SEARCH SomeObject USING COVERING INDEX SomeObject_idx_00000078 (x=?)
 }
 
+
+do_setup_rec_test $tn.19.0 {
+  CREATE TABLE t1("index");
+} {
+  SELECT * FROM t1 ORDER BY "index";
+} {
+  CREATE INDEX t1_idx_01a7214e ON t1('index');
+  SCAN t1 USING COVERING INDEX t1_idx_01a7214e
+}
+
 }
 
 proc do_candidates_test {tn sql res} {
index f29b8a9e0bfeb41dd209b12ae594e6a0f293e015..c01feff58cdbdca1e046730059b79f12cd270ee3 100644 (file)
@@ -820,6 +820,10 @@ static char *idxAppendText(int *pRc, char *zIn, const char *zFmt, ...){
 */
 static int idxIdentifierRequiresQuotes(const char *zId){
   int i;
+  int nId = STRLEN(zId);
+  
+  if( sqlite3_keyword_check(zId, nId) ) return 1;
+
   for(i=0; zId[i]; i++){
     if( !(zId[i]=='_')
      && !(zId[i]>='0' && zId[i]<='9')
index 1fec4921990a3c614125780d4a5d90f9636f3391..dea91279e405134dfd406dcb6f69b477d17ad1fd 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Allow\sthe\sname\sof\san\sindex\sto\scollide\swith\sa\stable\sin\sa\sdifferent\sschema.
-D 2022-08-09T16:13:21.868
+C Fix\shandling\sof\scolumns\swith\snames\sthat\sare\sSQL\skeywords\sin\sthe\s".expert"\scommand.
+D 2022-08-10T15:29:21.997
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -51,8 +51,8 @@ F ext/async/sqlite3async.c 6f247666b495c477628dd19364d279c78ea48cd90c72d9f9b98ad
 F ext/async/sqlite3async.h 46b47c79357b97ad85d20d2795942c0020dc20c532114a49808287f04aa5309a
 F ext/expert/README.md b321c2762bb93c18ea102d5a5f7753a4b8bac646cb392b3b437f633caf2020c3
 F ext/expert/expert.c d548d603a4cc9e61f446cc179c120c6713511c413f82a4a32b1e1e69d3f086a4
-F ext/expert/expert1.test 3c642a4e7bbb14f21ddab595436fb465a4733f47a0fe5b2855e1d5ff900ef08e
-F ext/expert/sqlite3expert.c 6ca30d73b9ed75bd56d6e0d7f2c962d2affaa72c505458619d0ff5d9cdfac204
+F ext/expert/expert1.test 95b00567ce0775126a1b788af2d055255014714ecfddc97913864d2f9266e583
+F ext/expert/sqlite3expert.c a912efbad597eafdb0ce934ebc11039f3190b2d479685d89184e107f65d856e1
 F ext/expert/sqlite3expert.h ca81efc2679a92373a13a3e76a6138d0310e32be53d6c3bfaedabd158ea8969b
 F ext/expert/test_expert.c d56c194b769bdc90cf829a14c9ecbc1edca9c850b837a4d0b13be14095c32a72
 F ext/fiddle/EXPORTED_FUNCTIONS.fiddle 7fb73f7150ab79d83bb45a67d257553c905c78cd3d693101699243f36c5ae6c3
@@ -1982,8 +1982,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 60947da687d525e72e62bcddcdf4c5c819818855074cc318c9ee656e83897aef
-R f4e408bf2436c98ebd7456a4b6d2719e
-U drh
-Z 37c870234d7cfb98492f5c9537ed0794
+P f963c2523872b59b8a7a14971f703f2eb0d021501b288597a958f6596885d0de
+R f1b1ab8288a538b9d05ad6481f4e9c61
+U dan
+Z 1bb598380018229fe8e4687805090be1
 # Remove this line to create a well-formed Fossil manifest.
index 6ee9ccf9afa8ccc575003ea2937a71c4ac6db201..d499f9254ecaa8ca9d95237757bfa8b49155a4f7 100644 (file)
@@ -1 +1 @@
-f963c2523872b59b8a7a14971f703f2eb0d021501b288597a958f6596885d0de
\ No newline at end of file
+5e1b8221c385deb04a3ff5aafb2e9fc55aecc6ffc68328674e3afe56c4273e29
\ No newline at end of file