]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Properly record the names of triggers even if the name is quoted.
authordrh <drh@noemail.net>
Wed, 29 Mar 2006 00:24:06 +0000 (00:24 +0000)
committerdrh <drh@noemail.net>
Wed, 29 Mar 2006 00:24:06 +0000 (00:24 +0000)
Ticket #1737. (CVS 3158)

FossilOrigin-Name: 4ba280ddd66d5cbf617263d6300b7582f65d47a9

manifest
manifest.uuid
src/trigger.c
test/index.test
test/table.test
test/trigger1.test

index cc5c572924ebb8b01b2fd227d7b2a29450d928f0..135f117909587ee51673c394d577269e0afc00d6 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Compile-time\soption\sto\suse\sonly\s32-bit\sintegers.\s(CVS\s3157)
-D 2006-03-28T23:57:18
+C Properly\srecord\sthe\snames\sof\striggers\seven\sif\sthe\sname\sis\squoted.\nTicket\s#1737.\s(CVS\s3158)
+D 2006-03-29T00:24:07
 F Makefile.in 5d8dff443383918b700e495de42ec65bc1c8865b
 F Makefile.linux-gcc 74ba0eadf88748a9ce3fd03d2a3ede2e6715baec
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -84,7 +84,7 @@ F src/test_async.c e3deaedd4d86a56391b81808fde9e44fbd92f1d3
 F src/test_md5.c 6c42bc0a3c0b54be34623ff77a0eec32b2fa96e3
 F src/test_server.c a6460daed0b92ecbc2531b6dc73717470e7a648c
 F src/tokenize.c 382b3bb0ca26eb9153b5d20b246ef512a114a24f
-F src/trigger.c 825e5b98183a0ad066d0e1dfa6708c2aac089723
+F src/trigger.c 48bbb94c11954c8e132efcc04478efe8304c4196
 F src/update.c 34add66fcd3301b33b6e4c4c813f4e408f7ee4a0
 F src/utf.c 1d51225bce1ea8d1978e8ab28e862a0c12c7a8e8
 F src/util.c 59389ed717f0fa9d8023b3f482ba09dcf41343a8
@@ -168,7 +168,7 @@ F test/format4.test 9f31d41d4f926cab97b2ebe6be00a6ab12dece87
 F test/func.test 27d02fd00b7c2a6b5c8c302d02f9f20876ce5cc8
 F test/hook.test 7e7645fd9a033f79cce8fdff151e32715e7ec50a
 F test/in.test 40feeebc7e38576255051aad428322be1545e0f1
-F test/index.test c478459611ded74745fee57f99f424da8a5f5fbd
+F test/index.test e65df12bed94b2903ee89987115e1578687e9266
 F test/index2.test ee83c6b5e3173a3d7137140d945d9a5d4fdfb9d6
 F test/index3.test f66718cd92ce1216819d47e6a156755e4b2c4ca1
 F test/insert.test b4d43f8e75e203fe51bc06cacf3636081903dcd1
@@ -237,7 +237,7 @@ F test/sort.test 0e4456e729e5a92a625907c63dcdedfbe72c5dc5
 F test/subquery.test ae324ee928c5fb463a3ce08a8860d6e7f1ca5797
 F test/subselect.test 2d13fb7f450db3595adcdd24079a0dd1d2d6abc2
 F test/sync.test d05397b8f89f423dd6dba528692019ab036bc1c3
-F test/table.test 6dc0dfa44dd429520e0e5a0c5e55025f730e9403
+F test/table.test 1c1539af8db89c68e467df02ec2607ec61c67bac
 F test/tableapi.test 6a66d58b37d46dc0f2b3c7d4bd2617d209399bd1
 F test/tclsqlite.test 93c399414273d829f3fc5fc4a8349b484fe84d5b
 F test/temptable.test c36f3e5a94507abb64f7ba23deeb4e1a8a8c3821
@@ -261,7 +261,7 @@ F test/tkt1644.test 80b6a2bb17885f3cf1cb886d97cdad13232bb869
 F test/tkt1667.test c7faac5050b45d81d0b9f6294e4570b588106e19
 F test/trace.test 75ffc1b992c780d054748a656e3e7fd674f18567
 F test/trans.test dbadb11882da0fa0ed2a74acecd28e10965b48d0
-F test/trigger1.test 0c1d44882dba5c92e4efee4dd133cc979f0b1860
+F test/trigger1.test e8c717e959c2f98c8181cd9466e140fa7aac781f
 F test/trigger2.test 33bf8ae9b788013be194efe5f66c04a202facbb4
 F test/trigger3.test 9102fd3933db294dc654b5aee9edfe9e94f2b9e2
 F test/trigger4.test 4bed3705c9df4aaf7a7b164a2d573410d05ca025
@@ -355,7 +355,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
-P 0039888f9132dc7461af4ae448292a0ce9adf804
-R 7b0bb8019b375c888b65242e6615f9d7
+P aedadfc3e47efa28ff81d7789b54fba9fcc128db
+R cd3eacf83ff32f49c3fe5762f71c525c
 U drh
-Z 82fdf51cac010092a92a7602ec803684
+Z d07dd13e5dad42ca4274dcff96af4d1e
index dacd93d86a65143b194771f0097a3ac7b573547e..ceb760bb041f26559fe49030624dcc18baa6bb7e 100644 (file)
@@ -1 +1 @@
-aedadfc3e47efa28ff81d7789b54fba9fcc128db
\ No newline at end of file
+4ba280ddd66d5cbf617263d6300b7582f65d47a9
\ No newline at end of file
index 72f7a72042658d95b3e8fdbd26db7c3c3eda1872..d670e527cf20ba1b3b9d741e5f9b222303c5a993 100644 (file)
@@ -110,7 +110,7 @@ void sqlite3BeginTrigger(
   if( !zName || SQLITE_OK!=sqlite3CheckObjectName(pParse, zName) ){
     goto trigger_cleanup;
   }
-  if( sqlite3HashFind(&(db->aDb[iDb].pSchema->trigHash), zName,pName->n+1) ){
+  if( sqlite3HashFind(&(db->aDb[iDb].pSchema->trigHash), zName,strlen(zName)) ){
     sqlite3ErrorMsg(pParse, "trigger %T already exists", pName);
     goto trigger_cleanup;
   }
@@ -257,7 +257,7 @@ void sqlite3FinishTrigger(
     Table *pTab;
     Trigger *pDel;
     pDel = sqlite3HashInsert(&db->aDb[iDb].pSchema->trigHash, 
-                     pTrig->name, strlen(pTrig->name)+1, pTrig);
+                     pTrig->name, strlen(pTrig->name), pTrig);
     if( pDel ){
       assert( sqlite3MallocFailed() && pDel==pTrig );
       goto triggerfinish_cleanup;
@@ -455,7 +455,7 @@ void sqlite3DropTrigger(Parse *pParse, SrcList *pName){
   for(i=OMIT_TEMPDB; i<db->nDb; i++){
     int j = (i<2) ? i^1 : i;  /* Search TEMP before MAIN */
     if( zDb && sqlite3StrICmp(db->aDb[j].zName, zDb) ) continue;
-    pTrigger = sqlite3HashFind(&(db->aDb[j].pSchema->trigHash), zName, nName+1);
+    pTrigger = sqlite3HashFind(&(db->aDb[j].pSchema->trigHash), zName, nName);
     if( pTrigger ) break;
   }
   if( !pTrigger ){
@@ -538,7 +538,8 @@ void sqlite3DropTriggerPtr(Parse *pParse, Trigger *pTrigger){
 void sqlite3UnlinkAndDeleteTrigger(sqlite3 *db, int iDb, const char *zName){
   Trigger *pTrigger;
   int nName = strlen(zName);
-  pTrigger = sqlite3HashInsert(&(db->aDb[iDb].pSchema->trigHash), zName, nName+1, 0);
+  pTrigger = sqlite3HashInsert(&(db->aDb[iDb].pSchema->trigHash),
+                               zName, nName, 0);
   if( pTrigger ){
     Table *pTable = tableOfTrigger(pTrigger);
     assert( pTable!=0 );
index 113bbf06e5fe49df21f4828a6e31a866f280ac25..69427e83014bba76909de4083292aa687a235aee 100644 (file)
@@ -11,7 +11,7 @@
 # This file implements regression tests for SQLite library.  The
 # focus of this file is testing the CREATE INDEX statement.
 #
-# $Id: index.test,v 1.41 2006/01/17 09:35:02 danielk1977 Exp $
+# $Id: index.test,v 1.42 2006/03/29 00:24:07 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -182,6 +182,9 @@ do_test index-6.1 {
   set v [catch {execsql {CREATE INDEX index1 ON test2(g1)}} msg]
   lappend v $msg
 } {1 {index index1 already exists}}
+do_test index-6.1.1 {
+  catchsql {CREATE INDEX [index1] ON test2(g1)}
+} {1 {index index1 already exists}}
 do_test index-6.1b {
   execsql {SELECT name FROM sqlite_master WHERE type!='meta' ORDER BY name}
 } {index1 test1 test2}
index a4e9858fe27538ff7b6fd439f88a08f7cd13cf49..18cb806c7704d05643964b488eae5854c29606a1 100644 (file)
@@ -11,7 +11,7 @@
 # This file implements regression tests for SQLite library.  The
 # focus of this file is testing the CREATE TABLE statement.
 #
-# $Id: table.test,v 1.44 2006/01/04 21:40:07 drh Exp $
+# $Id: table.test,v 1.45 2006/03/29 00:24:07 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -92,6 +92,9 @@ do_test table-2.1 {
   execsql {CREATE TABLE TEST2(one text)}
   catchsql {CREATE TABLE test2(two text default 'hi')}
 } {1 {table test2 already exists}}
+do_test table-2.1.1 {
+  catchsql {CREATE TABLE "test2" (two)}
+} {1 {table "test2" already exists}}
 do_test table-2.1b {
   set v [catch {execsql {CREATE TABLE sqlite_master(two text)}} msg]
   lappend v $msg
index a8f9d6698ad9678ff465f09c2e9fdd72f2b31e04..3147927f8c8923137323f0cb14f573276b524725 100644 (file)
@@ -60,13 +60,27 @@ execsql {
          INSERT INTO t1 values(1);
        END;
 }
-do_test trigger1-1.2 {
+do_test trigger1-1.2.1 {
     catchsql {
        CREATE TRIGGER tr1 DELETE ON t1 BEGIN
            SELECT * FROM sqlite_master;
        END
      }
 } {1 {trigger tr1 already exists}}
+do_test trigger1-1.2.2 {
+    catchsql {
+       CREATE TRIGGER "tr1" DELETE ON t1 BEGIN
+           SELECT * FROM sqlite_master;
+       END
+     }
+} {1 {trigger "tr1" already exists}}
+do_test trigger1-1.2.3 {
+    catchsql {
+       CREATE TRIGGER [tr1] DELETE ON t1 BEGIN
+           SELECT * FROM sqlite_master;
+       END
+     }
+} {1 {trigger [tr1] already exists}}
 
 do_test trigger1-1.3 {
     catchsql {