summaryrefslogtreecommitdiff
path: root/lib/python2.7/sqlite3/dump.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/sqlite3/dump.py')
-rw-r--r--lib/python2.7/sqlite3/dump.py70
1 files changed, 0 insertions, 70 deletions
diff --git a/lib/python2.7/sqlite3/dump.py b/lib/python2.7/sqlite3/dump.py
deleted file mode 100644
index e5c5ef2..0000000
--- a/lib/python2.7/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('%s;' % 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("%s;" % 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('%s;' % sql)
-
- yield('COMMIT;')