From 44d441313aa9600118a1fe1741ad01f8459b166d Mon Sep 17 00:00:00 2001 From: drh <> Date: Sun, 14 Mar 2021 19:55:40 +0000 Subject: [PATCH 1/6] An alternative approach for fixing ticket [1c24a659e6d7f3a1]. FossilOrigin-Name: a2adae907a28e169e64cfe69d97d7b68cb94e6ba07d2dfa995e3fbc6672fafdd --- manifest | 23 +++++++++++++---------- manifest.uuid | 2 +- src/alter.c | 41 +++++++++++++++++++++++++---------------- src/resolve.c | 6 ++++++ src/sqliteInt.h | 3 +++ test/quote.test | 38 +++++++++++++++++++++++++++++++++++--- 6 files changed, 83 insertions(+), 30 deletions(-) diff --git a/manifest b/manifest index ea6ec02745..1bc216404d 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Update\sgenerated\sautoconf/Makefile.msc\sto\sreflect\sits\ssource. -D 2021-03-12T23:15:08.537 +C An\salternative\sapproach\sfor\sfixing\sticket\s[1c24a659e6d7f3a1]. +D 2021-03-14T19:55:40.456 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -476,7 +476,7 @@ F spec.template 86a4a43b99ebb3e75e6b9a735d5fd293a24e90ca F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786 F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a -F src/alter.c 1f9383846b52e655d40479a5a5659bf60300ed43f7467e6e85d66588ba48f51b +F src/alter.c e06ec2433a97865a221be855c513bc9a40d6636c965dc0109b78b01009aefc8c F src/analyze.c 01c6c6765cb4d40b473b71d85535093730770bb186f2f473abac25f07fcdee5c F src/attach.c 9cbe761e464025694df8e6f6ee4d9f41432c3a255ca9443ccbb4130eeb87cf72 F src/auth.c 08954fdc4cc2da5264ba5b75cfd90b67a6fc7d1710a02ccf917c38eadec77853 @@ -540,14 +540,14 @@ F src/pragma.h 8dc78ab7e9ec6ce3ded8332810a2066f1ef6267e2e03cd7356ee00276125c6cf F src/prepare.c e21b54489b5c73b06ada15e6fc79b5c6f64b06701924a6ca98944ae59e06256f F src/printf.c 2b03a80d7c11bb422115dca175a18bf430e9c9dbaa0eee63b758f0c022f8f34f F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384 -F src/resolve.c d95db73d3e6a5c689e5f6604b4d2521350e45f2a0f0f84f5a2dc2bfee56580a0 +F src/resolve.c dd47248c2c914feb0d4428c27d782e2723971d32cfa5536f49306d080df4d45a F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92 F src/select.c fc904a7aa7ebfd5c7a57a0141d829c9f5388ac7773e0d1d9668768c1bbc87fc3 F src/shell.c.in 35adf1212d759069b00e468a9304a05a67710c8f8f50e7312335e23cac985d8c F src/sqlite.h.in 3426a080ea1f222a73e3bd91e7eacbd30570a0117c03d42c6dde606f33e5e318 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 F src/sqlite3ext.h 61b38c073d5e1e96a3d45271b257aef27d0d13da2bea5347692ae579475cd95e -F src/sqliteInt.h 3652edb9e6032808d51d6f26d9c6f9eb621ac199e0fd2d2a5aa551799d91a296 +F src/sqliteInt.h 0f81c7eb3a40dda0b74d0acdc8f3b134346b40be780b1fe5cc24dd294a928d1a F src/sqliteLimit.h d7323ffea5208c6af2734574bae933ca8ed2ab728083caa117c9738581a31657 F src/status.c 4b8bc2a6905163a38b739854a35b826c737333fab5b1f8e03fa7eb9a4799c4c1 F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1 @@ -1282,7 +1282,7 @@ F test/quick.test 1681febc928d686362d50057c642f77a02c62e57 F test/quota-glob.test 32901e9eed6705d68ca3faee2a06b73b57cb3c26 F test/quota.test bfb269ce81ea52f593f9648316cd5013d766dd2a F test/quota2.test 7dc12e08b11cbc4c16c9ba2aa2e040ea8d8ab4b8 -F test/quote.test 3f9238ab0e1db70dea89af9afa5859dbd759b0ce0a63da67d547553e2c316475 +F test/quote.test a626b6ada95eb60361eb61a3c20f84e8fa731bad85bc17cda12853c0fcea6b3a F test/randexpr1.tcl 40dec52119ed3a2b8b2a773bce24b63a3a746459 F test/randexpr1.test eda062a97e60f9c38ae8d806b03b0ddf23d796df F test/rbu.test 168573d353cd0fd10196b87b0caa322c144ef736 @@ -1910,7 +1910,10 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115500b -R 17f134cb27374fc63f087829be8f2d98 -U larrybr -Z f38b52cd66603df216d7879edb7bd2e5 +P d9f8f488ff9d47fe7bb8838e683bae4fea038f7278ef885ecf292143a0dd88ed +R fc9f9d8e73dcd138412d5e504baa211a +T *branch * tkt-1c24a659-b +T *sym-tkt-1c24a659-b * +T -sym-trunk * +U drh +Z edd18b4182e47ec8e1ea3e607922fbaf diff --git a/manifest.uuid b/manifest.uuid index 214626662f..74fded19ca 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -d9f8f488ff9d47fe7bb8838e683bae4fea038f7278ef885ecf292143a0dd88ed \ No newline at end of file +a2adae907a28e169e64cfe69d97d7b68cb94e6ba07d2dfa995e3fbc6672fafdd \ No newline at end of file diff --git a/src/alter.c b/src/alter.c index 72697f860c..e28f22d6a8 100644 --- a/src/alter.c +++ b/src/alter.c @@ -53,7 +53,8 @@ static void renameTestSchema( Parse *pParse, /* Parse context */ const char *zDb, /* Name of db to verify schema of */ int bTemp, /* True if this is the temp db */ - const char *zWhen /* "when" part of error message */ + const char *zWhen, /* "when" part of error message */ + const char *zDropColumn /* Name of column being dropped */ ){ pParse->colNamesSet = 1; sqlite3NestedParse(pParse, @@ -61,9 +62,9 @@ static void renameTestSchema( "FROM \"%w\"." DFLT_SCHEMA_TABLE " " "WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X'" " AND sql NOT LIKE 'create virtual%%'" - " AND sqlite_rename_test(%Q, sql, type, name, %d, %Q)=NULL ", + " AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %Q)=NULL ", zDb, - zDb, bTemp, zWhen + zDb, bTemp, zWhen, zDropColumn ); if( bTemp==0 ){ @@ -72,8 +73,8 @@ static void renameTestSchema( "FROM temp." DFLT_SCHEMA_TABLE " " "WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X'" " AND sql NOT LIKE 'create virtual%%'" - " AND sqlite_rename_test(%Q, sql, type, name, 1, %Q)=NULL ", - zDb, zWhen + " AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %Q)=NULL ", + zDb, zWhen, zDropColumn ); } } @@ -236,7 +237,7 @@ void sqlite3AlterRenameTable( "sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), " "tbl_name = " "CASE WHEN tbl_name=%Q COLLATE nocase AND " - " sqlite_rename_test(%Q, sql, type, name, 1, 'after rename') " + " sqlite_rename_test(%Q, sql, type, name, 1, 'after rename',0) " "THEN %Q ELSE tbl_name END " "WHERE type IN ('view', 'trigger')" , zDb, zTabName, zName, zTabName, zDb, zName); @@ -256,7 +257,7 @@ void sqlite3AlterRenameTable( #endif renameReloadSchema(pParse, iDb, INITFLAG_AlterRename); - renameTestSchema(pParse, zDb, iDb==1, "after rename"); + renameTestSchema(pParse, zDb, iDb==1, "after rename", 0); exit_rename_table: sqlite3SrcListDelete(db, pSrc); @@ -624,7 +625,7 @@ void sqlite3AlterRenameColumn( /* Drop and reload the database schema. */ renameReloadSchema(pParse, iSchema, INITFLAG_AlterRename); - renameTestSchema(pParse, zDb, iSchema==1, "after rename"); + renameTestSchema(pParse, zDb, iSchema==1, "after rename", 0); exit_rename_column: sqlite3SrcListDelete(db, pSrc); @@ -1048,12 +1049,17 @@ static int renameParseSql( const char *zDb, /* Name of schema SQL belongs to */ sqlite3 *db, /* Database handle */ const char *zSql, /* SQL to parse */ - int bTemp /* True if SQL is from temp schema */ + int bTemp, /* True if SQL is from temp schema */ + const char *zDropColumn /* Name of column being dropped */ ){ int rc; char *zErr = 0; db->init.iDb = bTemp ? 1 : sqlite3FindDbName(db, zDb); + if( zDropColumn ){ + db->init.bDropColumn = 1; + db->init.azInit = (char**)&zDropColumn; + } /* Parse the SQL statement passed as the first argument. If no error ** occurs and the parse does not result in a new table, index or @@ -1086,6 +1092,7 @@ static int renameParseSql( #endif db->init.iDb = 0; + db->init.bDropColumn = 0; return rc; } @@ -1387,7 +1394,7 @@ static void renameColumnFunc( #ifndef SQLITE_OMIT_AUTHORIZATION db->xAuth = 0; #endif - rc = renameParseSql(&sParse, zDb, db, zSql, bTemp); + rc = renameParseSql(&sParse, zDb, db, zSql, bTemp, 0); /* Find tokens that need to be replaced. */ memset(&sWalker, 0, sizeof(Walker)); @@ -1591,7 +1598,7 @@ static void renameTableFunc( sWalker.xSelectCallback = renameTableSelectCb; sWalker.u.pRename = &sCtx; - rc = renameParseSql(&sParse, zDb, db, zInput, bTemp); + rc = renameParseSql(&sParse, zDb, db, zInput, bTemp, 0); if( rc==SQLITE_OK ){ int isLegacy = (db->flags & SQLITE_LegacyAlter); @@ -1707,6 +1714,7 @@ static void renameTableFunc( ** 3: Object name. ** 4: True if object is from temp schema. ** 5: "when" part of error message. +** 6: Name of column being dropped, or NULL. ** ** Unless it finds an error, this function normally returns NULL. However, it ** returns integer value 1 if: @@ -1725,6 +1733,7 @@ static void renameTableTest( int bTemp = sqlite3_value_int(argv[4]); int isLegacy = (db->flags & SQLITE_LegacyAlter); char const *zWhen = (const char*)sqlite3_value_text(argv[5]); + char const *zDropColumn = (const char*)sqlite3_value_text(argv[6]); #ifndef SQLITE_OMIT_AUTHORIZATION sqlite3_xauth xAuth = db->xAuth; @@ -1735,7 +1744,7 @@ static void renameTableTest( if( zDb && zInput ){ int rc; Parse sParse; - rc = renameParseSql(&sParse, zDb, db, zInput, bTemp); + rc = renameParseSql(&sParse, zDb, db, zInput, bTemp, zDropColumn); if( rc==SQLITE_OK ){ if( isLegacy==0 && sParse.pNewTable && sParse.pNewTable->pSelect ){ NameContext sNC; @@ -1803,7 +1812,7 @@ static void dropColumnFunc( #endif UNUSED_PARAMETER(NotUsed); - rc = renameParseSql(&sParse, zDb, db, zSql, iSchema==1); + rc = renameParseSql(&sParse, zDb, db, zSql, iSchema==1, 0); if( rc!=SQLITE_OK ) goto drop_column_done; pTab = sParse.pNewTable; if( pTab==0 || pTab->nCol==1 || iCol>=pTab->nCol ){ @@ -1896,7 +1905,7 @@ void sqlite3AlterDropColumn(Parse *pParse, SrcList *pSrc, Token *pName){ iDb = sqlite3SchemaToIndex(db, pTab->pSchema); assert( iDb>=0 ); zDb = db->aDb[iDb].zDbSName; - renameTestSchema(pParse, zDb, iDb==1, ""); + renameTestSchema(pParse, zDb, iDb==1, "", 0); sqlite3NestedParse(pParse, "UPDATE \"%w\"." DFLT_SCHEMA_TABLE " SET " "sql = sqlite_drop_column(%d, sql, %d) " @@ -1906,7 +1915,7 @@ void sqlite3AlterDropColumn(Parse *pParse, SrcList *pSrc, Token *pName){ /* Drop and reload the database schema. */ renameReloadSchema(pParse, iDb, INITFLAG_AlterDrop); - renameTestSchema(pParse, zDb, iDb==1, "after drop column"); + renameTestSchema(pParse, zDb, iDb==1, "after drop column", zCol); /* Edit rows of table on disk */ if( pParse->nErr==0 && (pTab->aCol[iCol].colFlags & COLFLAG_VIRTUAL)==0 ){ @@ -1966,7 +1975,7 @@ void sqlite3AlterFunctions(void){ static FuncDef aAlterTableFuncs[] = { INTERNAL_FUNCTION(sqlite_rename_column, 9, renameColumnFunc), INTERNAL_FUNCTION(sqlite_rename_table, 7, renameTableFunc), - INTERNAL_FUNCTION(sqlite_rename_test, 6, renameTableTest), + INTERNAL_FUNCTION(sqlite_rename_test, 7, renameTableTest), INTERNAL_FUNCTION(sqlite_drop_column, 3, dropColumnFunc), }; sqlite3InsertBuiltinFuncs(aAlterTableFuncs, ArraySize(aAlterTableFuncs)); diff --git a/src/resolve.c b/src/resolve.c index 32914befb2..ee75d2acb8 100644 --- a/src/resolve.c +++ b/src/resolve.c @@ -559,6 +559,7 @@ static int lookupName( assert( pExpr->op==TK_ID ); if( ExprHasProperty(pExpr,EP_DblQuoted) && areDoubleQuotedStringsEnabled(db, pTopNC) + && (db->init.bDropColumn==0 || sqlite3StrICmp(zCol, db->init.azInit[0])!=0) ){ /* If a double-quoted identifier does not match any known column name, ** then treat it as a string. @@ -573,6 +574,11 @@ static int lookupName( ** Someday, I hope to get rid of this hack. Unfortunately there is ** a huge amount of legacy SQL that uses it. So for now, we just ** issue a warning. + ** + ** 2021-03-15: ticket 1c24a659e6d7f3a1 + ** Do not do the ID-to-STRING conversion when doing the schema + ** sanity check following a DROP COLUMN if the identifer name matches + ** the name of the column being dropped. */ sqlite3_log(SQLITE_WARNING, "double-quoted string literal: \"%w\"", zCol); diff --git a/src/sqliteInt.h b/src/sqliteInt.h index 0107d74b6a..6bd53d20f8 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -1533,7 +1533,10 @@ struct sqlite3 { unsigned orphanTrigger : 1; /* Last statement is orphaned TEMP trigger */ unsigned imposterTable : 1; /* Building an imposter table */ unsigned reopenMemdb : 1; /* ATTACH is really a reopen using MemDB */ + unsigned bDropColumn : 1; /* Doing schema check after DROP COLUMN */ char **azInit; /* "type", "name", and "tbl_name" columns */ + /* or if bDropColumn, then azInit[0] is the */ + /* name of the column being dropped */ } init; int nVdbeActive; /* Number of VDBEs currently running */ int nVdbeRead; /* Number of active VDBEs that read or write */ diff --git a/test/quote.test b/test/quote.test index 553e96a0b6..e23a4ffcd3 100644 --- a/test/quote.test +++ b/test/quote.test @@ -110,7 +110,7 @@ do_execsql_test 2.2 { PRAGMA writable_schema = 1; CREATE TABLE xyz(a, b, c CHECK (c!="null") ); CREATE INDEX i2 ON t1(x, y, z||"abc"); - CREATE INDEX i3 ON t1("w"); + CREATE INDEX i3 ON t1("w"||""); CREATE INDEX i4 ON t1(x) WHERE z="w"; } @@ -135,10 +135,42 @@ do_execsql_test 2.5 { {CREATE TABLE t1(x, y, z)} {CREATE TABLE xyz(a, b, c CHECK (c!="null") )} {CREATE INDEX i2 ON t1(x, y, z||"abc")} - {CREATE INDEX i3 ON t1("w")} + {CREATE INDEX i3 ON t1("w"||"")} {CREATE INDEX i4 ON t1(x) WHERE z="w"} } - +# 2021-03-13 +# ticket 1c24a659e6d7f3a1 +reset_db +do_catchsql_test 3.0 { + CREATE TABLE t1(a,b); + CREATE INDEX x1 on t1("b"); + ALTER TABLE t1 DROP COLUMN b; +} {1 {error in index x1 after drop column: no such column: b}} +do_catchsql_test 3.1 { + DROP TABLE t1; + CREATE TABLE t1(a,"b"); + CREATE INDEX x1 on t1("b"); + ALTER TABLE t1 DROP COLUMN b; +} {1 {error in index x1 after drop column: no such column: b}} +do_catchsql_test 3.2 { + DROP TABLE t1; + CREATE TABLE t1(a,'b'); + CREATE INDEX x1 on t1("b"); + ALTER TABLE t1 DROP COLUMN b; +} {1 {error in index x1 after drop column: no such column: b}} +do_catchsql_test 3.3 { + DROP TABLE t1; + CREATE TABLE t1(a,"b"); + CREATE INDEX x1 on t1('b'); + ALTER TABLE t1 DROP COLUMN b; +} {1 {error in index x1 after drop column: no such column: b}} +do_catchsql_test 3.4 { + DROP TABLE t1; + CREATE TABLE t1(a, b, c); + CREATE INDEX x1 ON t1("a"||"b"); + INSERT INTO t1 VALUES(1,2,3),(1,4,5); + ALTER TABLE t1 DROP COLUMN b; +} {1 {error in index x1 after drop column: no such column: b}} finish_test From 0e8075ab782e63b3053abdffc18f642bb64950c7 Mon Sep 17 00:00:00 2001 From: drh <> Date: Sun, 14 Mar 2021 20:17:06 +0000 Subject: [PATCH 2/6] An additional test case FossilOrigin-Name: 7e2d7ca15a84e5bd9f2b1360232607d15c2dbcc9d30b0f1a7cdbf2865e6b1af5 --- manifest | 15 ++++++--------- manifest.uuid | 2 +- test/quote.test | 7 +++++++ 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/manifest b/manifest index 1bc216404d..ba7cf6ad1a 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C An\salternative\sapproach\sfor\sfixing\sticket\s[1c24a659e6d7f3a1]. -D 2021-03-14T19:55:40.456 +C An\sadditional\stest\scase +D 2021-03-14T20:17:06.460 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -1282,7 +1282,7 @@ F test/quick.test 1681febc928d686362d50057c642f77a02c62e57 F test/quota-glob.test 32901e9eed6705d68ca3faee2a06b73b57cb3c26 F test/quota.test bfb269ce81ea52f593f9648316cd5013d766dd2a F test/quota2.test 7dc12e08b11cbc4c16c9ba2aa2e040ea8d8ab4b8 -F test/quote.test a626b6ada95eb60361eb61a3c20f84e8fa731bad85bc17cda12853c0fcea6b3a +F test/quote.test b8ddaba6b81dcf63bb31243219e28a2f96e04396adc50108cc7e5593019c3eb5 F test/randexpr1.tcl 40dec52119ed3a2b8b2a773bce24b63a3a746459 F test/randexpr1.test eda062a97e60f9c38ae8d806b03b0ddf23d796df F test/rbu.test 168573d353cd0fd10196b87b0caa322c144ef736 @@ -1910,10 +1910,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 d9f8f488ff9d47fe7bb8838e683bae4fea038f7278ef885ecf292143a0dd88ed -R fc9f9d8e73dcd138412d5e504baa211a -T *branch * tkt-1c24a659-b -T *sym-tkt-1c24a659-b * -T -sym-trunk * +P a2adae907a28e169e64cfe69d97d7b68cb94e6ba07d2dfa995e3fbc6672fafdd +R 7efc992597193ee315e52dfcbc967a14 U drh -Z edd18b4182e47ec8e1ea3e607922fbaf +Z 11c283259a83f4e587c2a4c2c63c3389 diff --git a/manifest.uuid b/manifest.uuid index 74fded19ca..9d276acda2 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -a2adae907a28e169e64cfe69d97d7b68cb94e6ba07d2dfa995e3fbc6672fafdd \ No newline at end of file +7e2d7ca15a84e5bd9f2b1360232607d15c2dbcc9d30b0f1a7cdbf2865e6b1af5 \ No newline at end of file diff --git a/test/quote.test b/test/quote.test index e23a4ffcd3..212885c05c 100644 --- a/test/quote.test +++ b/test/quote.test @@ -172,5 +172,12 @@ do_catchsql_test 3.4 { INSERT INTO t1 VALUES(1,2,3),(1,4,5); ALTER TABLE t1 DROP COLUMN b; } {1 {error in index x1 after drop column: no such column: b}} +do_catchsql_test 3.5 { + DROP TABLE t1; + CREATE TABLE t1(a, b, c); + CREATE INDEX x1 ON t1("a"||"x"); + INSERT INTO t1 VALUES(1,2,3),(1,4,5); + ALTER TABLE t1 DROP COLUMN b; +} {0 {}} finish_test From d8b4befdef7ed3eebe9f3176e65f6ecb28252c5a Mon Sep 17 00:00:00 2001 From: larrybr Date: Mon, 15 Mar 2021 12:32:35 +0000 Subject: [PATCH 3/6] Create new branch named "cli-tweaks" FossilOrigin-Name: 4cf056a571cae6fded8136bc12f3a2787da37c6b52383cbf7b918827654ba4e7 --- manifest | 11 +++++++---- manifest.uuid | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/manifest b/manifest index ea6ec02745..25fc7ec5ef 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Update\sgenerated\sautoconf/Makefile.msc\sto\sreflect\sits\ssource. -D 2021-03-12T23:15:08.537 +C Create\snew\sbranch\snamed\s"cli-tweaks" +D 2021-03-15T12:32:35.330 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -1910,7 +1910,10 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115500b +P d9f8f488ff9d47fe7bb8838e683bae4fea038f7278ef885ecf292143a0dd88ed R 17f134cb27374fc63f087829be8f2d98 +T *branch * cli-tweaks +T *sym-cli-tweaks * +T -sym-trunk * U larrybr -Z f38b52cd66603df216d7879edb7bd2e5 +Z 7dd24244732ab00ad5e51c4adb0e0e4b diff --git a/manifest.uuid b/manifest.uuid index 214626662f..f2b8a5b667 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -d9f8f488ff9d47fe7bb8838e683bae4fea038f7278ef885ecf292143a0dd88ed \ No newline at end of file +4cf056a571cae6fded8136bc12f3a2787da37c6b52383cbf7b918827654ba4e7 \ No newline at end of file From 7bdbe5982905a707d7bef795bd7ed4f227231111 Mon Sep 17 00:00:00 2001 From: larrybr Date: Mon, 15 Mar 2021 12:56:00 +0000 Subject: [PATCH 4/6] Make shell's .help output for .dump more accurate as to what can be dumped. FossilOrigin-Name: f91d8c09a02f7a7ab354c49cd193d422074daa5eb908f17d1907a8c2b38f96a5 --- manifest | 15 ++++++--------- manifest.uuid | 2 +- src/shell.c.in | 4 ++-- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/manifest b/manifest index 25fc7ec5ef..0e4437ad54 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Create\snew\sbranch\snamed\s"cli-tweaks" -D 2021-03-15T12:32:35.330 +C Make\sshell's\s.help\soutput\sfor\s.dump\smore\saccurate\sas\sto\swhat\scan\sbe\sdumped. +D 2021-03-15T12:56:00.432 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -543,7 +543,7 @@ F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384 F src/resolve.c d95db73d3e6a5c689e5f6604b4d2521350e45f2a0f0f84f5a2dc2bfee56580a0 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92 F src/select.c fc904a7aa7ebfd5c7a57a0141d829c9f5388ac7773e0d1d9668768c1bbc87fc3 -F src/shell.c.in 35adf1212d759069b00e468a9304a05a67710c8f8f50e7312335e23cac985d8c +F src/shell.c.in 8df3912a7ca4873a1443d4adef1b25baee8c086ab479fd9c4f13ab03f98049ab F src/sqlite.h.in 3426a080ea1f222a73e3bd91e7eacbd30570a0117c03d42c6dde606f33e5e318 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 F src/sqlite3ext.h 61b38c073d5e1e96a3d45271b257aef27d0d13da2bea5347692ae579475cd95e @@ -1910,10 +1910,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 d9f8f488ff9d47fe7bb8838e683bae4fea038f7278ef885ecf292143a0dd88ed -R 17f134cb27374fc63f087829be8f2d98 -T *branch * cli-tweaks -T *sym-cli-tweaks * -T -sym-trunk * +P 4cf056a571cae6fded8136bc12f3a2787da37c6b52383cbf7b918827654ba4e7 +R e304182e76dc2dd24dfecb3be8679386 U larrybr -Z 7dd24244732ab00ad5e51c4adb0e0e4b +Z 6c1fe4e748a0aa23d7ad41000997334c diff --git a/manifest.uuid b/manifest.uuid index f2b8a5b667..9a52c1ae97 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -4cf056a571cae6fded8136bc12f3a2787da37c6b52383cbf7b918827654ba4e7 \ No newline at end of file +f91d8c09a02f7a7ab354c49cd193d422074daa5eb908f17d1907a8c2b38f96a5 \ No newline at end of file diff --git a/src/shell.c.in b/src/shell.c.in index 9339d09396..980fa6e6f2 100644 --- a/src/shell.c.in +++ b/src/shell.c.in @@ -3891,13 +3891,13 @@ static const char *(azHelp[]) = { ".databases List names and files of attached databases", ".dbconfig ?op? ?val? List or change sqlite3_db_config() options", ".dbinfo ?DB? Show status information about the database", - ".dump ?TABLE? Render database content as SQL", + ".dump ?OBJECTS? Render database content as SQL", " Options:", " --data-only Output only INSERT statements", " --newlines Allow unescaped newline characters in output", " --nosys Omit system tables (ex: \"sqlite_stat1\")", " --preserve-rowids Include ROWID values in the output", - " TABLE is a LIKE pattern for the tables to dump", + " OBJECTS is a LIKE pattern for tables, indexes, triggers or views to dump", " Additional LIKE patterns can be given in subsequent arguments", ".echo on|off Turn command echo on or off", ".eqp on|off|full|... Enable or disable automatic EXPLAIN QUERY PLAN", From c9f1a7d1dfc44954817c992f20f05f544afaaaea Mon Sep 17 00:00:00 2001 From: drh <> Date: Mon, 15 Mar 2021 15:02:38 +0000 Subject: [PATCH 5/6] Bump the version number to 3.35.1. FossilOrigin-Name: 184d5a352f098459cfb0cc029713d5d43fefc83f6cc95ce5666bd07591aaac2f --- VERSION | 2 +- configure | 18 +++++++++--------- manifest | 15 +++++++-------- manifest.uuid | 2 +- 4 files changed, 18 insertions(+), 19 deletions(-) diff --git a/VERSION b/VERSION index b2f5d1d153..42fdf5185c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.35.0 +3.35.1 diff --git a/configure b/configure index 50792db785..d92c8d5d7d 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for sqlite 3.35.0. +# Generated by GNU Autoconf 2.69 for sqlite 3.35.1. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -726,8 +726,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='sqlite' PACKAGE_TARNAME='sqlite' -PACKAGE_VERSION='3.35.0' -PACKAGE_STRING='sqlite 3.35.0' +PACKAGE_VERSION='3.35.1' +PACKAGE_STRING='sqlite 3.35.1' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1467,7 +1467,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures sqlite 3.35.0 to adapt to many kinds of systems. +\`configure' configures sqlite 3.35.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1532,7 +1532,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sqlite 3.35.0:";; + short | recursive ) echo "Configuration of sqlite 3.35.1:";; esac cat <<\_ACEOF @@ -1660,7 +1660,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sqlite configure 3.35.0 +sqlite configure 3.35.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2079,7 +2079,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by sqlite $as_me 3.35.0, which was +It was created by sqlite $as_me 3.35.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -12378,7 +12378,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by sqlite $as_me 3.35.0, which was +This file was extended by sqlite $as_me 3.35.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -12444,7 +12444,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -sqlite config.status 3.35.0 +sqlite config.status 3.35.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/manifest b/manifest index e587f7465a..151f890277 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Improved\sdetection\sof\sconflicting\sindexes\swhen\sdoing\sDROP\sCOLUMN\son\sa\scolumn\nwhose\sname\sis\squoted\sin\sthe\sindex\sdefinition.\nFix\sfor\sticket\s[1c24a659e6d7f3a1]. -D 2021-03-15T14:58:12.255 +C Bump\sthe\sversion\snumber\sto\s3.35.1. +D 2021-03-15T15:02:38.295 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -7,7 +7,7 @@ F Makefile.in fe6cc1db11e02b308f3ab0ec2504344697b9eaaa410fa73f48d16a143462e5d3 F Makefile.linux-gcc f609543700659711fbd230eced1f01353117621dccae7b9fb70daa64236c5241 F Makefile.msc 6b5428cef2af1288e02faeb602dabe68fbf2de7bc8a8e29c7299778ee08cd35c F README.md 1514a365ffca3c138e00c5cc839906108a01011a6b082bad19b09781e3aa498a -F VERSION 92f3e4c5cdee6f0779aef1eae857dfc21d0eabb1f2af169dc90e63cd76b15bb2 +F VERSION 370d0120d7353c276a7c1ff568347d937267543bd54883f9efe0d859df7f7079 F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50 F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2 F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90 @@ -34,7 +34,7 @@ F autoconf/tea/win/rules.vc c511f222b80064096b705dbeb97060ee1d6b6d63 F config.guess 883205ddf25b46f10c181818bf42c09da9888884af96f79e1719264345053bd6 F config.h.in 6376abec766e9a0785178b1823b5a587e9f1ccbc F config.sub c2d0260f17f3e4bc0b6808fccf1b291cb5e9126c14fc5890efc77b9fd0175559 -F configure e8b5dc901c21f76a169d673bbfdee33350e68de59c0eaaade6d2de87884319db x +F configure bdf7d9a9192514a07ab2e56eaf927729ea548cfabee3eac080079492014fbfce x F configure.ac 4e4b58b32f88c8da9914a2f2c3158f80e69907eccc019fcc7e3ba14ffd91c640 F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad F doc/F2FS.txt c1d4a0ae9711cfe0e1d8b019d154f1c29e0d3abfe820787ba1e9ed7691160fcd @@ -1910,8 +1910,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 d9f8f488ff9d47fe7bb8838e683bae4fea038f7278ef885ecf292143a0dd88ed 7e2d7ca15a84e5bd9f2b1360232607d15c2dbcc9d30b0f1a7cdbf2865e6b1af5 -R 7efc992597193ee315e52dfcbc967a14 -T +closed 7e2d7ca15a84e5bd9f2b1360232607d15c2dbcc9d30b0f1a7cdbf2865e6b1af5 +P c450d0ad6b39db4bf93015d629e25f7af0d7a9779f7a987e2fc38a5ef064a182 +R d7ae7ff2fd5570b9c893a885790b9e95 U drh -Z 0db085b35c83a129196feb29998a65ef +Z 2e140af3f290875ecbcb34ec6a78b61c diff --git a/manifest.uuid b/manifest.uuid index 7b3ac8c0b0..7cc60c24a3 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -c450d0ad6b39db4bf93015d629e25f7af0d7a9779f7a987e2fc38a5ef064a182 \ No newline at end of file +184d5a352f098459cfb0cc029713d5d43fefc83f6cc95ce5666bd07591aaac2f \ No newline at end of file From a7eaa518f83d1ff4660b720038ccba45c1f4c758 Mon Sep 17 00:00:00 2001 From: drh <> Date: Mon, 15 Mar 2021 16:53:57 +0000 Subject: [PATCH 6/6] Version 3.35.1 FossilOrigin-Name: aea12399bf1fdc76af43499d4624c3afa17c3e6c2459b71c195804bb98def66a --- manifest | 11 ++++++----- manifest.uuid | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/manifest b/manifest index 37acab16b2..f2db2d8e7a 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Improvements\sto\sthe\sbuilt-in\s".dump"\sdocumentation\sin\sthe\sCLI. -D 2021-03-15T15:12:10.138 +C Version\s3.35.1 +D 2021-03-15T16:53:57.484 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -1910,8 +1910,9 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 184d5a352f098459cfb0cc029713d5d43fefc83f6cc95ce5666bd07591aaac2f f91d8c09a02f7a7ab354c49cd193d422074daa5eb908f17d1907a8c2b38f96a5 +P 0915f969f429a8d0b594e937e0128d5476774d9bbe4a24081dbc60273cb5bb9a R 2b3598619c1684078c28a748b557717f -T +closed f91d8c09a02f7a7ab354c49cd193d422074daa5eb908f17d1907a8c2b38f96a5 +T +sym-release * +T +sym-version-3.35.1 * U drh -Z 1043e07583e2736c93e2d1b238a78051 +Z b6e46b43ad7d89d09a3fbf23443eb714 diff --git a/manifest.uuid b/manifest.uuid index 4920928912..8d134baaf5 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -0915f969f429a8d0b594e937e0128d5476774d9bbe4a24081dbc60273cb5bb9a \ No newline at end of file +aea12399bf1fdc76af43499d4624c3afa17c3e6c2459b71c195804bb98def66a \ No newline at end of file