
    4hh#                         S SK r SSKJr  SSKJr  SSKJr   " S S\\ R
                  5      r\S:X  a  \ R                  " 5         gg)	    N   )memory_database)MemoryDatabaseMixin)requires_virtual_tablec                   T    \ rS rSrS rS rS rS rS rS r	\
" S5      S	 5       rS
rg)	DumpTests
   c                 Z   / SQnU Vs/ s H  o R                   R                  U5      PM       nU R                  R                  5       nU Vs/ s H  o"PM     nnSS/USS  QSPn[	        [        U5      5       Vs/ s H  nU R                  X   XC   5      PM       ng s  snf s  snf s  snf )N)PRAGMA foreign_keys=OFF;z#CREATE TABLE "index"("index" blob);z"INSERT INTO "index" VALUES(X'01');z3CREATE TABLE "quoted""table"("quoted""field" text);z4INSERT INTO "quoted""table" VALUES('quoted''value');zCREATE TABLE t1(id integer primary key, s1 text, t1_i1 integer not null, i2 integer, unique (s1), constraint t1_idx1 unique (i2), constraint t1_i1_idx1 unique (t1_i1));z'INSERT INTO "t1" VALUES(1,'foo',10,20);z(INSERT INTO "t1" VALUES(2,'foo2',30,30);ztCREATE TABLE t2(id integer, t2_i1 integer, t2_i2 integer, primary key (id),foreign key(t2_i1) references t1(t1_i1));zINSERT INTO "t2" VALUES(1,2,3);zrCREATE TRIGGER trigger_1 update of t1_i1 on t1 begin update t2 set t2_i1 = new.t1_i1 where t2_i1 = old.t1_i1; end;z;CREATE VIEW v1 as select * from t1 left join t2 using (id);r   BEGIN TRANSACTION;r   COMMIT;)cuexecutecxiterdumprangelenassertEqual)selfexpected_sqlssiactual_sqlss        D/opt/python-3.13.8/usr/lib/python3.13/test/test_sqlite3/test_dump.pytest_table_dumpDumpTests.test_table_dump   s    !D &33]	]3GG"#n!Qq!n& 
 12
 	
 3}-.	0. 
		-*KN	;.	0 	4$	0s   $BB#; B(c                    / SQnSS/n/ UQUQ H  nU R                   R                  U5        M      [        U R                  R	                  SS95      nU R                  US/UQSP5        [        U R                  R	                  SS95      nU R                  US/UQSP5        [        U R                  R	                  S	S95      nU R                  U/ S
Q5        [        U R                  R	                  SS95      nU R                  U/ SQ5        [        U R                  R	                  SS95      nU R                  U/ SQ5        [        U R                  R	                  SS95      nU R                  US/UQUQSP5        g )N)-CREATE TABLE "some_table_2" ("id_1" INTEGER);%INSERT INTO "some_table_2" VALUES(3);%INSERT INTO "some_table_2" VALUES(4);-CREATE TABLE "test_table_1" ("id_2" INTEGER);%INSERT INTO "test_table_1" VALUES(1);%INSERT INTO "test_table_1" VALUES(2);5CREATE VIEW "view_1" AS SELECT * FROM "some_table_2";5CREATE VIEW "view_2" AS SELECT * FROM "test_table_1";z	%_table_%)filterr   r   zview_%z%_1)r   r!   r"   r#   r$   r   zsome_%)r   r   r   r    r   view_2)r   r%   r   %r   r   listr   r   r   )r   all_table_sqlsall_views_sqlssql	dump_sqlss        r   test_table_dump_filter DumpTests.test_table_dump_filter;   s   
 HG

 6^5n5CGGOOC  6 )))=>	!>N>I>	

 ))):;	!>N>I>	

 )))78	
	
 ))):;			
 ))):;		
 )))56	!ONO^OYO	
    c                 X   / SQnU R                   R                  SR                  U5      5        US   R                  SS5      US'   UR	                  SS5        UR                  / SQ5        U R                  R                  5        Vs/ s H  o"PM     nnU R                  X5        g s  snf )	N)z9CREATE TABLE "t1" (id integer primary key autoincrement);zINSERT INTO "t1" VALUES(NULL);z9CREATE TABLE "t2" (id integer primary key autoincrement); r   NULL1r   r   )zDELETE FROM "sqlite_sequence";z-INSERT INTO "sqlite_sequence" VALUES('t1',1);r   )	r   executescriptjoinreplaceinsertextendr   r   r   )r   expectedstmtactuals       r   test_dump_autoincrement!DumpTests.test_dump_autoincrement   s    

 	bggh/0 qk))&#6/0 
 	 $(77#3#3#56#54$#56* 7s   B'c                 J   U R                   R                  S5        U R                   R                  S5        U R                   R                  S5        U R                   R                  SS [        S5       5       5        U R                   R                  SS [        S	5       5       5        U R                  R                  5         [        5        nS
R                  U R                  R                  5       5      nUR                  U5        UR                  5       nSnU HX  u  pVU R                  XVS9   UR                  SU45      nUR                  5       nU R                  US   S   U5        S S S 5        MZ     S S S 5        g ! , (       d  f       Mt  = f! , (       d  f       g = f)NzBEGIN TRANSACTIONz6CREATE TABLE t1 (id integer primary key autoincrement)z6CREATE TABLE t2 (id integer primary key autoincrement)zINSERT INTO t1 VALUES(?)c              3   &   #    U  H  nS v   M	     g7fNN .0_s     r   	<genexpr>BDumpTests.test_dump_autoincrement_create_new_db.<locals>.<genexpr>        8S(Q(   	   zINSERT INTO t2 VALUES(?)c              3   &   #    U  H  nS v   M	     g7frB   rD   rE   s     r   rH   rI      rJ   rK      r3   ))t1rL   )t2rN   )tableseqzc
                        SELECT "seq" FROM "sqlite_sequence" WHERE "name" == ?
                    r   )r   r   executemanyr   r   commitr   r7   r   r6   cursorsubTestfetchallr   )	r   cx2querycu2datasetrQ   rR   resrowss	            r   %test_dump_autoincrement_create_new_db/DumpTests.test_dump_autoincrement_create_new_db   sA   +,PQPQ68S%PQ(8ST68S%PQ(8ST#GGDGG,,./Ee$**,CG &
\\\7++ '#C <<>D$$T!WQZ5 87 &  87 s%   A#F1<F-F
FF
F"c                      " S S5      nXR                   l        SnSnSUUS/nU R                  R                  U5        U R                  R                  U5        [	        U R                   R                  5       5      nU R                  XE5        g )Nc                        \ rS rSrS rS rSrg)6DumpTests.test_unorderable_row.<locals>.UnorderableRow   c                     X l         g rC   row)r   rU   rf   s      r   __init__?DumpTests.test_unorderable_row.<locals>.UnorderableRow.__init__   s    r1   c                      U R                   U   $ rC   re   )r   indexs     r   __getitem__BDumpTests.test_unorderable_row.<locals>.UnorderableRow.__getitem__   s    xx&r1   re   N)__name__
__module____qualname____firstlineno__rg   rk   __static_attributes__rD   r1   r   UnorderableRowrb      s    'r1   rr   zCREATE TABLE "alpha" ("one");zCREATE TABLE "beta" ("two");r   r   r   row_factoryr   r   r*   r   r   )r   rr   CREATE_ALPHACREATE_BETAr;   gots         r   test_unorderable_rowDumpTests.test_unorderable_row   s|    	' 	'
 -:8 	 	$%477##%&'r1   c                 "   S nXR                   l        SnSUS/nU R                  R                  U5        [	        U R                   R                  5       5      nU R                  X45        U R                  U R                   R                  U5        g )Nc                 p    U R                    Vs/ s H  o"S   PM	     nn[        [        X15      5      $ s  snf )Nr   )descriptiondictzip)r   rf   colfieldss       r   dict_factory<DumpTests.test_dump_custom_row_factory.<locals>.dict_factory   s1    (*7!fF7F()) 8s   3zCREATE TABLE test(t);r   r   rs   )r   r   CREATE_TABLEr;   r=   s        r   test_dump_custom_row_factory&DumpTests.test_dump_custom_row_factory   ss    	* +.(,	B%dgg&&()*,,l;r1   fts4c                     / SQnU R                   R                  S5        [        U R                  R	                  5       5      nU R                  X5        g )N)
r   zPRAGMA writable_schema=ON;zINSERT INTO sqlite_master(type,name,tbl_name,rootpage,sql)VALUES('table','test','test',0,'CREATE VIRTUAL TABLE test USING fts4(example)');zDCREATE TABLE 'test_content'(docid INTEGER PRIMARY KEY, 'c0example');zBCREATE TABLE 'test_docsize'(docid INTEGER PRIMARY KEY, size BLOB);zCREATE TABLE 'test_segdir'(level INTEGER,idx INTEGER,start_block INTEGER,leaves_end_block INTEGER,end_block INTEGER,root BLOB,PRIMARY KEY(level, idx));zFCREATE TABLE 'test_segments'(blockid INTEGER PRIMARY KEY, block BLOB);z=CREATE TABLE 'test_stat'(id INTEGER PRIMARY KEY, value BLOB);zPRAGMA writable_schema=OFF;r   z-CREATE VIRTUAL TABLE test USING fts4(example)r)   )r   r;   r=   s      r   test_dump_virtual_tables"DumpTests.test_dump_virtual_tables   sA    
 	GHdgg&&()*r1   rD   N)rm   rn   ro   rp   r   r/   r>   r^   rx   r   r   r   rq   rD   r1   r   r   r   
   s<    -0^D
L+(62(*< F#+ $+r1   r   __main__)	unittestutilr   r   r   TestCaser   rm   mainrD   r1   r   <module>r      sC     ! % ([+#X%6%6 [+| zMMO r1   