parameters: (connection)
docstring: 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().
docstring_summary: Returns an iterator to the dump of the database in an SQL text format.
docstring_tokens: Returns an iterator to the dump of the database in an SQL text format .
function: 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;')
function_tokens: def _iterdump ( connection ) : 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;' )