diff options
author | monster <monster@ydb.tech> | 2022-07-07 14:41:37 +0300 |
---|---|---|
committer | monster <monster@ydb.tech> | 2022-07-07 14:41:37 +0300 |
commit | 06e5c21a835c0e923506c4ff27929f34e00761c2 (patch) | |
tree | 75efcbc6854ef9bd476eb8bf00cc5c900da436a2 /contrib/tools/python3/src/Lib/sqlite3/dump.py | |
parent | 03f024c4412e3aa613bb543cf1660176320ba8f4 (diff) | |
download | ydb-06e5c21a835c0e923506c4ff27929f34e00761c2.tar.gz |
fix ya.make
Diffstat (limited to 'contrib/tools/python3/src/Lib/sqlite3/dump.py')
-rw-r--r-- | contrib/tools/python3/src/Lib/sqlite3/dump.py | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/contrib/tools/python3/src/Lib/sqlite3/dump.py b/contrib/tools/python3/src/Lib/sqlite3/dump.py deleted file mode 100644 index de9c368be3..0000000000 --- a/contrib/tools/python3/src/Lib/sqlite3/dump.py +++ /dev/null @@ -1,70 +0,0 @@ -# Mimic the sqlite3 console shell's .dump command -# Author: Paul Kippes <kippesp@gmail.com> - -# Every identifier in sql is quoted based on a comment in sqlite -# documentation "SQLite adds new keywords from time to time when it -# takes on new features. So to prevent your code from being broken by -# future enhancements, you should normally quote any identifier that -# is an English language word, even if you do not have to." - -def _iterdump(connection): - """ - Returns an iterator to the dump of the database in an SQL text format. - - Used to produce an SQL dump of the database. Useful to save an in-memory - database for later restoration. This function should not be called - directly but instead called from the Connection method, iterdump(). - """ - - cu = connection.cursor() - yield('BEGIN TRANSACTION;') - - # sqlite_master table contains the SQL CREATE statements for the database. - q = """ - SELECT "name", "type", "sql" - FROM "sqlite_master" - WHERE "sql" NOT NULL AND - "type" == 'table' - ORDER BY "name" - """ - schema_res = cu.execute(q) - for table_name, type, sql in schema_res.fetchall(): - if table_name == 'sqlite_sequence': - yield('DELETE FROM "sqlite_sequence";') - elif table_name == 'sqlite_stat1': - yield('ANALYZE "sqlite_master";') - elif table_name.startswith('sqlite_'): - continue - # NOTE: Virtual table support not implemented - #elif sql.startswith('CREATE VIRTUAL TABLE'): - # qtable = table_name.replace("'", "''") - # yield("INSERT INTO sqlite_master(type,name,tbl_name,rootpage,sql)"\ - # "VALUES('table','{0}','{0}',0,'{1}');".format( - # qtable, - # sql.replace("''"))) - else: - yield('{0};'.format(sql)) - - # Build the insert statement for each row of the current table - table_name_ident = table_name.replace('"', '""') - res = cu.execute('PRAGMA table_info("{0}")'.format(table_name_ident)) - column_names = [str(table_info[1]) for table_info in res.fetchall()] - q = """SELECT 'INSERT INTO "{0}" VALUES({1})' FROM "{0}";""".format( - table_name_ident, - ",".join("""'||quote("{0}")||'""".format(col.replace('"', '""')) for col in column_names)) - query_res = cu.execute(q) - for row in query_res: - yield("{0};".format(row[0])) - - # Now when the type is 'index', 'trigger', or 'view' - q = """ - SELECT "name", "type", "sql" - FROM "sqlite_master" - WHERE "sql" NOT NULL AND - "type" IN ('index', 'trigger', 'view') - """ - schema_res = cu.execute(q) - for name, type, sql in schema_res.fetchall(): - yield('{0};'.format(sql)) - - yield('COMMIT;') |