Dequote the "from" table in a FOREIGN KEY definition (affects the output of "pragma foreign_key_list). Fix for #3800. (CVS 6547)

FossilOrigin-Name: 600482d1619c07690b6517ded9655462bdab7538
This commit is contained in:
danielk1977 2009-04-24 18:06:09 +00:00
parent 336a5300de
commit 70d9e9cc02
4 changed files with 42 additions and 10 deletions

View File

@ -1,5 +1,5 @@
C Get\srid\sof\sthe\sspecial\sRowSet\sprocessing\sin\swhere.c\sand\smove\sthat\sinto\nclients.\s\sAdded\sthe\sWHERE_DUPLICATES_OK\soption\sto\seliminate\san\sunnecessary\nRowSet\sduring\sDELETE\swith\sa\sWHERE\sclause\scontaining\sORs.\s(CVS\s6546)
D 2009-04-24T15:46:22
C Dequote\sthe\s"from"\stable\sin\sa\sFOREIGN\sKEY\sdefinition\s(affects\sthe\soutput\sof\s"pragma\sforeign_key_list).\sFix\sfor\s#3800.\s(CVS\s6547)
D 2009-04-24T18:06:09
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in 583e87706abc3026960ed759aff6371faf84c211
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@ -109,7 +109,7 @@ F src/btmutex.c 9b899c0d8df3bd68f527b0afe03088321b696d3c
F src/btree.c b4ec46b3adc3e2d82704c949d4b654b031a64ad6
F src/btree.h 99fcc7e8c4a1e35afe271bcb38de1a698dfc904e
F src/btreeInt.h df64030d632f8c8ac217ed52e8b6b3eacacb33a5
F src/build.c d4c6d22636607aa3c937e619de6781e83db48b6f
F src/build.c 2a50f5e65ab00fb2443af8df5a3130a2eb644b25
F src/callback.c 73016376d6848ba987709e8c9048d4f0e0776036
F src/complete.c cb14e06dbe79dee031031f0d9e686ff306afe07c
F src/date.c d327ec7bb2f64b08d32b1035de82b9ba8675de91
@ -704,7 +704,7 @@ F test/zeroblob.test 792124852ec61458a2eb527b5091791215e0be95
F tool/diffdb.c 7524b1b5df217c20cd0431f6789851a4e0cb191b
F tool/fragck.tcl 5265a95126abcf6ab357f7efa544787e5963f439
F tool/genfkey.README cf68fddd4643bbe3ff8e31b8b6d8b0a1b85e20f4
F tool/genfkey.test eda48d8258f5ad7b3b258ca3323c3c4246a846f2
F tool/genfkey.test 405a43d54f1646bfaa7a84b03bb959aef62a3a49
F tool/lemon.c 1a94e70103e59f20df8f81539a453629df2aa523
F tool/lempar.c aeba88b8566ff66f8a67c96b3eb2dd95e7d8908d
F tool/mkkeywordhash.c 8e57fbe8c4fe2f1800f9190fd361231cb8558407
@ -724,7 +724,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
P 207335fdbf992a2f5bc5982b3163a38016ba1b21
R 321c81c869b57be31c75d6ce8e352af8
U drh
Z 9a5d55f141a7dc0fff1bfe4c527d36a1
P 98606bee9e41b8969fb639fc43864e230185ca43
R 7355728ce767986b1d7d16dc86db48ff
U danielk1977
Z 795d85bf9579d5df19980eca484a5a46

View File

@ -1 +1 @@
98606bee9e41b8969fb639fc43864e230185ca43
600482d1619c07690b6517ded9655462bdab7538

View File

@ -22,7 +22,7 @@
** COMMIT
** ROLLBACK
**
** $Id: build.c,v 1.530 2009/04/23 13:22:43 drh Exp $
** $Id: build.c,v 1.531 2009/04/24 18:06:09 danielk1977 Exp $
*/
#include "sqliteInt.h"
@ -2272,6 +2272,7 @@ void sqlite3CreateForeignKey(
pFKey->zTo = z;
memcpy(z, pTo->z, pTo->n);
z[pTo->n] = 0;
sqlite3Dequote(z);
z += pTo->n+1;
pFKey->pNextTo = 0;
pFKey->nCol = nCol;

View File

@ -261,3 +261,34 @@ Error in table t6: foreign key is not unique
Error in table t7: foreign key is not unique
}]}"
# Test that ticket #3800 has been resolved.
#
do_test genfkey-5.1 {
execsql {
DROP TABLE t1; DROP TABLE t2; DROP TABLE t3;
DROP TABLE t4; DROP TABLE t5; DROP TABLE t6;
DROP TABLE t7; DROP TABLE t8;
}
} {}
do_test genfkey-5.2 {
execsql {
CREATE TABLE "t.3" (c1 PRIMARY KEY);
CREATE TABLE t13 (c1, foreign key(c1) references "t.3"(c1));
}
} {}
do_test genfkey-5.3 {
set rc [catch {exec ./sqlite3 test.db .genfkey} msg]
} {0}
do_test genfkey-5.4 {
db eval $msg
} {}
do_test genfkey-5.5 {
catchsql { INSERT INTO t13 VALUES(1) }
} {1 {constraint failed}}
do_test genfkey-5.5 {
catchsql {
INSERT INTO "t.3" VALUES(1);
INSERT INTO t13 VALUES(1);
}
} {0 {}}