Fossil SCM
Fix a bug in the "fossil undo" command, introduced when the sqlite3_table_column_metadata() function was used to reimplement the db_table_exists() routine, just a few days ago.
Commit
b6ed6241e1710a9775cb2c3df625258fb12e4e85
Parent
31b5dffa768db70…
1 file changed
+1
-2
+1
-2
| --- src/undo.c | ||
| +++ src/undo.c | ||
| @@ -127,11 +127,10 @@ | ||
| 127 | 127 | ** Undo or redo all undoable or redoable changes. |
| 128 | 128 | */ |
| 129 | 129 | static void undo_all(int redoFlag){ |
| 130 | 130 | int ucid; |
| 131 | 131 | int ncid; |
| 132 | - const char *zDb = db_name("localdb"); | |
| 133 | 132 | undo_all_filesystem(redoFlag); |
| 134 | 133 | db_multi_exec( |
| 135 | 134 | "CREATE TEMP TABLE undo_vfile_2 AS SELECT * FROM vfile;" |
| 136 | 135 | "DELETE FROM vfile;" |
| 137 | 136 | "INSERT INTO vfile SELECT * FROM undo_vfile;" |
| @@ -143,11 +142,11 @@ | ||
| 143 | 142 | "INSERT INTO vmerge SELECT * FROM undo_vmerge;" |
| 144 | 143 | "DELETE FROM undo_vmerge;" |
| 145 | 144 | "INSERT INTO undo_vmerge SELECT * FROM undo_vmerge_2;" |
| 146 | 145 | "DROP TABLE undo_vmerge_2;" |
| 147 | 146 | ); |
| 148 | - if( db_table_exists(zDb, "undo_stash") ){ | |
| 147 | + if( db_table_exists("localdb", "undo_stash") ){ | |
| 149 | 148 | if( redoFlag ){ |
| 150 | 149 | db_multi_exec( |
| 151 | 150 | "DELETE FROM stash WHERE stashid IN (SELECT stashid FROM undo_stash);" |
| 152 | 151 | "DELETE FROM stashfile" |
| 153 | 152 | " WHERE stashid NOT IN (SELECT stashid FROM stash);" |
| 154 | 153 |
| --- src/undo.c | |
| +++ src/undo.c | |
| @@ -127,11 +127,10 @@ | |
| 127 | ** Undo or redo all undoable or redoable changes. |
| 128 | */ |
| 129 | static void undo_all(int redoFlag){ |
| 130 | int ucid; |
| 131 | int ncid; |
| 132 | const char *zDb = db_name("localdb"); |
| 133 | undo_all_filesystem(redoFlag); |
| 134 | db_multi_exec( |
| 135 | "CREATE TEMP TABLE undo_vfile_2 AS SELECT * FROM vfile;" |
| 136 | "DELETE FROM vfile;" |
| 137 | "INSERT INTO vfile SELECT * FROM undo_vfile;" |
| @@ -143,11 +142,11 @@ | |
| 143 | "INSERT INTO vmerge SELECT * FROM undo_vmerge;" |
| 144 | "DELETE FROM undo_vmerge;" |
| 145 | "INSERT INTO undo_vmerge SELECT * FROM undo_vmerge_2;" |
| 146 | "DROP TABLE undo_vmerge_2;" |
| 147 | ); |
| 148 | if( db_table_exists(zDb, "undo_stash") ){ |
| 149 | if( redoFlag ){ |
| 150 | db_multi_exec( |
| 151 | "DELETE FROM stash WHERE stashid IN (SELECT stashid FROM undo_stash);" |
| 152 | "DELETE FROM stashfile" |
| 153 | " WHERE stashid NOT IN (SELECT stashid FROM stash);" |
| 154 |
| --- src/undo.c | |
| +++ src/undo.c | |
| @@ -127,11 +127,10 @@ | |
| 127 | ** Undo or redo all undoable or redoable changes. |
| 128 | */ |
| 129 | static void undo_all(int redoFlag){ |
| 130 | int ucid; |
| 131 | int ncid; |
| 132 | undo_all_filesystem(redoFlag); |
| 133 | db_multi_exec( |
| 134 | "CREATE TEMP TABLE undo_vfile_2 AS SELECT * FROM vfile;" |
| 135 | "DELETE FROM vfile;" |
| 136 | "INSERT INTO vfile SELECT * FROM undo_vfile;" |
| @@ -143,11 +142,11 @@ | |
| 142 | "INSERT INTO vmerge SELECT * FROM undo_vmerge;" |
| 143 | "DELETE FROM undo_vmerge;" |
| 144 | "INSERT INTO undo_vmerge SELECT * FROM undo_vmerge_2;" |
| 145 | "DROP TABLE undo_vmerge_2;" |
| 146 | ); |
| 147 | if( db_table_exists("localdb", "undo_stash") ){ |
| 148 | if( redoFlag ){ |
| 149 | db_multi_exec( |
| 150 | "DELETE FROM stash WHERE stashid IN (SELECT stashid FROM undo_stash);" |
| 151 | "DELETE FROM stashfile" |
| 152 | " WHERE stashid NOT IN (SELECT stashid FROM stash);" |
| 153 |