]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Ensure the schema cookie is changed when a column is renamed.
authordan <dan@noemail.net>
Fri, 10 Aug 2018 20:19:34 +0000 (20:19 +0000)
committerdan <dan@noemail.net>
Fri, 10 Aug 2018 20:19:34 +0000 (20:19 +0000)
FossilOrigin-Name: 2dec9ea4ab1779d00bb22add0aa9a8536661d8abc9f4c2fb8628e04d4cd84326

manifest
manifest.uuid
src/alter.c
test/altercol.test

index 42af4e66a7c39e63f29273e5254f408712ffac3e..3dbead9e795ec19f2707bf47699dc3c2cf4bc9ca 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sharmless\scompiler\swarnings.
-D 2018-08-10T19:33:09.840
+C Ensure\sthe\sschema\scookie\sis\schanged\swhen\sa\scolumn\sis\srenamed.
+D 2018-08-10T20:19:34.822
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F Makefile.in 0a3a6c81e6fcb969ff9106e882f0a08547014ba463cb6beca4c4efaecc924ee6
@@ -432,7 +432,7 @@ F spec.template 86a4a43b99ebb3e75e6b9a735d5fd293a24e90ca
 F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b
 F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786
 F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a
-F src/alter.c 2be0bc29efec9481166cc769bc7fa4c03d1f13f93e9e46cd99623e45cec1c242
+F src/alter.c 0b71fa1e9d1ab73d8bd097191d08ee3bbd665448fe5ce7edd7106cde2ae170ec
 F src/analyze.c 3dc6b98cf007b005af89df165c966baaa48e8124f38c87b4d2b276fe7f0b9eb9
 F src/attach.c 4bd5b92633671d3e8ce431153ebb1893b50335818423b5373f3f27969f79769a
 F src/auth.c 32a5bbe3b755169ab6c66311c5225a3cd4f75a46c041f7fb117e0cbb68055114
@@ -599,7 +599,7 @@ F test/alter.test b820ab9dcf85f8e3a65bc8326accb2f0c7be64ef
 F test/alter2.test 7ea05c7d92ac99349a802ef7ada17294dd647060
 F test/alter3.test 4d79934d812eaeacc6f22781a080f8cfe012fdc3
 F test/alter4.test b6d7b86860111864f6cddb54af313f5862dda23b
-F test/altercol.test 93847fb3692e4039c99353c59cc8445b46699e708db14df04a3f37fe114408d3
+F test/altercol.test b7b2ee8c08b1323fc2368a910ef7e4a77fe6b0603ff4bb47f9f3cd6f4ea98397
 F test/altermalloc.test e81ac9657ed25c6c5bb09bebfa5a047cd8e4acfc
 F test/amatch1.test b5ae7065f042b7f4c1c922933f4700add50cdb9f
 F test/analyze.test b3a9c67d00e1df7588a5b7be9a0292899f94fe8cac1f94a017277474ca2e59df
@@ -1755,7 +1755,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 191079bd4f774528a1e39b71b4a4ce7859dee0edf0ce72e4b6968ae889dc35c8
-R 9775cac15880c7984c4c0b2262a5cceb
-U drh
-Z 81b39060f22da53622c92d8cae785c8a
+P 9564d7008c3fd804401a5da6ea342c6f4261db14e9f994d1a38883358a7c6f8c
+R 8166a6f9247b132002911f132ef2f68a
+U dan
+Z 39524009f27339c8e93b1f67a4367cf4
index 9793a0ee7de9b80e8b1be70e60c1c6ed9ed86b22..e78b0d8254018343979ef067b5445881ccf3580c 100644 (file)
@@ -1 +1 @@
-9564d7008c3fd804401a5da6ea342c6f4261db14e9f994d1a38883358a7c6f8c
\ No newline at end of file
+2dec9ea4ab1779d00bb22add0aa9a8536661d8abc9f4c2fb8628e04d4cd84326
\ No newline at end of file
index 68db38893c0af91c99b4008a166bf6f2824afe8d..d73b11a14b3be6c4b0d04abc6168a9a66d38027d 100644 (file)
@@ -823,6 +823,7 @@ void sqlite3AlterRenameColumn(
   zNew = sqlite3NameFromToken(db, pNew);
   if( !zNew ) goto exit_rename_column;
 
+
   sqlite3NestedParse(pParse, 
       "UPDATE \"%w\".%s SET "
       "sql = sqlite_rename_column(sql, %d, %Q, %Q, %Q) "
@@ -831,6 +832,7 @@ void sqlite3AlterRenameColumn(
   );
 
   /* Drop and reload the internal table schema. */
+  sqlite3ChangeCookie(pParse, iSchema);
   reloadTableSchema(pParse, pTab, pTab->zName);
 
  exit_rename_column:
index d9e4d2a90f710956433253f2462e8a7fb3e4d32c..c7ebb2d18ba9a4434482c338342ebc96a6a8bf7d 100644 (file)
@@ -98,11 +98,15 @@ do_execsql_test 2.0 {
   CREATE TABLE t3(a, b, c, d, e, f, g, h, i, j, k, l, m, FOREIGN KEY (b, c, d, e, f, g, h, i, j, k, l, m) REFERENCES t4);
 }
 
-do_execsql_test 2.1 {
+sqlite3 db2 test.db
+do_execsql_test -db db2 2.1 { SELECT b FROM t3 }
+
+do_execsql_test 2.2 {
   ALTER TABLE t3 RENAME b TO biglongname;
   SELECT sql FROM sqlite_master WHERE name='t3';
 } {{CREATE TABLE t3(a, biglongname, c, d, e, f, g, h, i, j, k, l, m, FOREIGN KEY (biglongname, c, d, e, f, g, h, i, j, k, l, m) REFERENCES t4)}}
 
+do_execsql_test -db db2 2.3 { SELECT biglongname FROM t3 }
 
 #-------------------------------------------------------------------------
 #
@@ -146,11 +150,13 @@ do_execsql_test 4.1 {
   {CREATE TABLE p1(c, "silly name", PRIMARY KEY(c, "silly name"))}
 }
 
-do_execsql_test 4.2 {
+# do_execsql_test 4.2 { INSERT INTO c1 VALUES(1, 2); }
+
+do_execsql_test 4.3 {
   CREATE TABLE c2(a, b, FOREIGN KEY (a, b) REFERENCES p1);
 }
 
-do_execsql_test 4.1 {
+do_execsql_test 4.4 {
   ALTER TABLE p1 RENAME "silly name" TO reasonable;
   SELECT sql FROM sqlite_master WHERE name IN ('c1', 'c2', 'p1');
 } {