o
    ˜»áfÜ  ã                   @   s   d d„ Z dS )c                 c   sJ   |   ¡ }dV  d}| |¡}g }| ¡ D ]h\}}}|dkr2| d¡ ¡ }dg}|dd„ |D ƒ7 }q|dkr:d	V  n| d
¡r@qd |¡V  | dd¡}	| d |	¡¡}
dd„ |
 ¡ D ƒ}d |	d dd„ |D ƒ¡¡}| |¡}|D ]
}d |d ¡V  qrqd}| |¡}| ¡ D ]\}}}d |¡V  q‰|D ]}d |¡V  q—dV  dS )a/  
    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().
    zBEGIN TRANSACTION;zª
        SELECT "name", "type", "sql"
        FROM "sqlite_master"
            WHERE "sql" NOT NULL AND
            "type" == 'table'
            ORDER BY "name"
        Úsqlite_sequencez SELECT * FROM "sqlite_sequence";zDELETE FROM "sqlite_sequence"c                 S   s&   g | ]}d |d › d|d › d‘qS )z&INSERT INTO "sqlite_sequence" VALUES('é    z',é   ú)© )Ú.0Úrowr   r   ú#/usr/lib/python3.10/sqlite3/dump.pyÚ
<listcomp>$   s    ÿÿz_iterdump.<locals>.<listcomp>Úsqlite_stat1zANALYZE "sqlite_master";Úsqlite_z{0};ú"ú""zPRAGMA table_info("{0}")c                 S   s   g | ]}t |d  ƒ‘qS )r   )Ústr)r   Ú
table_infor   r   r   r	   :   s    z2SELECT 'INSERT INTO "{0}" VALUES({1})' FROM "{0}";ú,c                 s   s"    | ]}d   | dd¡¡V  qdS )z'||quote("{0}")||'r   r   N)ÚformatÚreplace)r   Úcolr   r   r   Ú	<genexpr>=   s   €  z_iterdump.<locals>.<genexpr>r   z£
        SELECT "name", "type", "sql"
        FROM "sqlite_master"
            WHERE "sql" NOT NULL AND
            "type" IN ('index', 'trigger', 'view')
        zCOMMIT;N)ÚcursorÚexecuteÚfetchallÚ
startswithr   r   Újoin)Ú
connectionÚcuÚqÚ
schema_resr   Ú
table_nameÚtypeÚsqlÚrowsÚtable_name_identÚresÚcolumn_namesÚ	query_resr   Únamer   r   r   Ú	_iterdump
   sJ   €	
þ
	þ
ÿ

r'   N)r'   r   r   r   r   Ú<module>   s   	