diff --git a/.gitattributes b/.gitattributes index 551819aa2f6654118ed28f11dcbb6726b54e2d3e..17f1e10a86eeb80b75b5eac025a9106c8e28a864 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1112,6 +1112,7 @@ tools/ps_validate_ss.deprecated.sh -text tools/run_one_test.sh -text tools/run_stratafied.tmpl.sh -text tools/set_dyna_link.sh -text +tools/signatures/sqlite.sigs -text tools/test_controller.sh -text tools/update_env_var.sh -text tools/validate.sh -text diff --git a/tools/signatures/sqlite.sigs b/tools/signatures/sqlite.sigs new file mode 100644 index 0000000000000000000000000000000000000000..cf0bf5a41444a2ef382db81c9e0abed3d9c4d53e --- /dev/null +++ b/tools/signatures/sqlite.sigs @@ -0,0 +1,25 @@ +CREATE INDEX +CREATE TABLE +CREATE TABLE %Q.sqlite_sequence(name,seq) +CREATE TABLE %Q.%s(%s) +CREATE TABLE sqlite_master( +CREATE TEMP TABLE sqlite_temp_master( +CREATE VIRTUAL TABLE %T +DELETE FROM %Q.sqlite_sequence WHERE name=%Q +DELETE FROM %Q.%s WHERE name=%Q AND type='index' +DELETE FROM %Q.%s WHERE %s=%Q +DELETE FROM %Q.%s WHERE tbl_name=%Q and type!='trigger' +INSERT INTO %Q.%s VALUES('index',%Q,%Q,#%d,%Q); +INSERT INTO %Q.%s VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q') +INSERT INTO vacuum_db.sqlite_master +SELECT name, rootpage, sql FROM +SELECT type, name, tbl_name, rootpage, sql FROM main.sqlite_master WHERE type='view' OR type='trigger' OR (type='table' AND rootpage=0) +UPDATE %Q.%s SET rootpage=%d WHERE #%d AND rootpage=#%d +UPDATE %Q.%s SET sql = CASE WHEN type = 'trigger' THEN sqlite_rename_trigger(sql, %Q)ELSE sqlite_rename_table(sql, %Q) END, tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqlite_autoindex%%' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger'); +UPDATE %Q.%s SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d +UPDATE %Q.%s SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d +UPDATE sqlite_temp_master SET sql = sqlite_rename_trigger(sql, %Q), tbl_name = %Q WHERE %s; +UPDATE "%w".sqlite_sequence set name = %Q WHERE name = %Q +UPDATE "%w".%s SET sql = sqlite_rename_parent(sql, %Q, %Q) WHERE %s; +UPDATE "%w".%s SET sql = substr(sql,1,%d) || ', ' || %Q || substr(sql,%d) WHERE type = 'table' AND name = %Q +.sqlite_master ORDER BY rowid