Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(226)

Side by Side Diff: third_party/sqlite/src/test/pragma.test

Issue 2765553002: [sql] Import SQLite 3.17.0. (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # 2002 March 6 1 # 2002 March 6
2 # 2 #
3 # The author disclaims copyright to this source code. In place of 3 # The author disclaims copyright to this source code. In place of
4 # a legal notice, here is a blessing: 4 # a legal notice, here is a blessing:
5 # 5 #
6 # May you do good and not evil. 6 # May you do good and not evil.
7 # May you find forgiveness for yourself and forgive others. 7 # May you find forgiveness for yourself and forgive others.
8 # May you share freely, never taking more than you give. 8 # May you share freely, never taking more than you give.
9 # 9 #
10 #*********************************************************************** 10 #***********************************************************************
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 } {123 123 2} 179 } {123 123 2}
180 } 180 }
181 do_test pragma-1.10 { 181 do_test pragma-1.10 {
182 execsql { 182 execsql {
183 PRAGMA synchronous=NORMAL; 183 PRAGMA synchronous=NORMAL;
184 PRAGMA cache_size; 184 PRAGMA cache_size;
185 PRAGMA default_cache_size; 185 PRAGMA default_cache_size;
186 PRAGMA synchronous; 186 PRAGMA synchronous;
187 } 187 }
188 } {123 123 1} 188 } {123 123 1}
189 do_test pragma-1.11 { 189 do_test pragma-1.11.1 {
190 execsql {
191 PRAGMA synchronous=EXTRA;
192 PRAGMA cache_size;
193 PRAGMA default_cache_size;
194 PRAGMA synchronous;
195 }
196 } {123 123 3}
197 do_test pragma-1.11.2 {
190 execsql { 198 execsql {
191 PRAGMA synchronous=FULL; 199 PRAGMA synchronous=FULL;
192 PRAGMA cache_size; 200 PRAGMA cache_size;
193 PRAGMA default_cache_size; 201 PRAGMA default_cache_size;
194 PRAGMA synchronous; 202 PRAGMA synchronous;
195 } 203 }
196 } {123 123 2} 204 } {123 123 2}
197 do_test pragma-1.12 { 205 do_test pragma-1.12 {
198 db close 206 db close
199 sqlite3 db test.db; set ::DB [sqlite3_connection_pointer db] 207 sqlite3 db test.db; set ::DB [sqlite3_connection_pointer db]
(...skipping 17 matching lines...) Expand all
217 execsql { 225 execsql {
218 PRAGMA synchronous=2; 226 PRAGMA synchronous=2;
219 PRAGMA synchronous; 227 PRAGMA synchronous;
220 } 228 }
221 } {2} 229 } {2}
222 do_test pragma-1.14.1 { 230 do_test pragma-1.14.1 {
223 execsql { 231 execsql {
224 PRAGMA synchronous=4; 232 PRAGMA synchronous=4;
225 PRAGMA synchronous; 233 PRAGMA synchronous;
226 } 234 }
227 } {0} 235 } {4}
228 do_test pragma-1.14.2 { 236 do_test pragma-1.14.2 {
229 execsql { 237 execsql {
230 PRAGMA synchronous=3; 238 PRAGMA synchronous=3;
231 PRAGMA synchronous; 239 PRAGMA synchronous;
232 } 240 }
241 } {3}
242 do_test pragma-1.14.3 {
243 execsql {
244 PRAGMA synchronous=8;
245 PRAGMA synchronous;
246 }
233 } {0} 247 } {0}
234 do_test pragma-1.14.3 { 248 do_test pragma-1.14.4 {
235 execsql { 249 execsql {
236 PRAGMA synchronous=10; 250 PRAGMA synchronous=10;
237 PRAGMA synchronous; 251 PRAGMA synchronous;
238 } 252 }
239 } {2} 253 } {2}
240 } ;# ifcapable pager_pragmas 254 } ;# ifcapable pager_pragmas
241 255
242 # Test turning "flag" pragmas on and off. 256 # Test turning "flag" pragmas on and off.
243 # 257 #
244 ifcapable debug { 258 ifcapable debug {
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 set res {} 621 set res {}
608 execsql {SELECT * FROM sqlite_temp_master} 622 execsql {SELECT * FROM sqlite_temp_master}
609 foreach {idx name file} [execsql {pragma database_list}] { 623 foreach {idx name file} [execsql {pragma database_list}] {
610 lappend res $idx $name 624 lappend res $idx $name
611 } 625 }
612 set res 626 set res
613 } {0 main 1 temp 2 aux} 627 } {0 main 1 temp 2 aux}
614 } 628 }
615 do_test pragma-6.2 { 629 do_test pragma-6.2 {
616 execsql { 630 execsql {
617 CREATE TABLE t2(a,b,c); 631 CREATE TABLE t2(a TYPE_X, b [TYPE_Y], c "TYPE_Z");
618 pragma table_info(t2) 632 pragma table_info(t2)
619 } 633 }
620 } {0 a {} 0 {} 0 1 b {} 0 {} 0 2 c {} 0 {} 0} 634 } {0 a TYPE_X 0 {} 0 1 b TYPE_Y 0 {} 0 2 c TYPE_Z 0 {} 0}
621 do_test pragma-6.2.1 { 635 do_test pragma-6.2.1 {
622 execsql { 636 execsql {
623 pragma table_info; 637 pragma table_info;
624 } 638 }
625 } {} 639 } {}
626 db nullvalue <<NULL>> 640 db nullvalue <<NULL>>
627 do_test pragma-6.2.2 { 641 do_test pragma-6.2.2 {
628 execsql { 642 execsql {
629 CREATE TABLE t5( 643 CREATE TABLE t5(
630 a TEXT DEFAULT CURRENT_TIMESTAMP, 644 a TEXT DEFAULT CURRENT_TIMESTAMP,
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after
1062 execsql { 1076 execsql {
1063 PRAGMA user_version; 1077 PRAGMA user_version;
1064 } 1078 }
1065 } {-450} 1079 } {-450}
1066 } ; # ifcapable schema_version 1080 } ; # ifcapable schema_version
1067 1081
1068 # Check to see if TEMP_STORE is memory or disk. Return strings 1082 # Check to see if TEMP_STORE is memory or disk. Return strings
1069 # "memory" or "disk" as appropriate. 1083 # "memory" or "disk" as appropriate.
1070 # 1084 #
1071 proc check_temp_store {} { 1085 proc check_temp_store {} {
1072 db eval {CREATE TEMP TABLE IF NOT EXISTS a(b)} 1086 db eval {
1087 PRAGMA temp.cache_size = 1;
1088 CREATE TEMP TABLE IF NOT EXISTS a(b);
1089 DELETE FROM a;
1090 INSERT INTO a VALUES(randomblob(1000));
1091 INSERT INTO a SELECT * FROM a;
1092 INSERT INTO a SELECT * FROM a;
1093 INSERT INTO a SELECT * FROM a;
1094 INSERT INTO a SELECT * FROM a;
1095 INSERT INTO a SELECT * FROM a;
1096 INSERT INTO a SELECT * FROM a;
1097 INSERT INTO a SELECT * FROM a;
1098 INSERT INTO a SELECT * FROM a;
1099 }
1073 db eval {PRAGMA database_list} { 1100 db eval {PRAGMA database_list} {
1074 if {$name=="temp"} { 1101 if {$name=="temp"} {
1075 set bt [btree_from_db db 1] 1102 set bt [btree_from_db db 1]
1076 if {[btree_ismemdb $bt]} { 1103 if {[btree_ismemdb $bt]} {
1077 return "memory" 1104 return "memory"
1078 } 1105 }
1079 return "disk" 1106 return "disk"
1080 } 1107 }
1081 } 1108 }
1082 return "unknown" 1109 return "unknown"
(...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after
1720 catchsql "PRAGMA data_store_directory='';" 1747 catchsql "PRAGMA data_store_directory='';"
1721 } {0 {}} 1748 } {0 {}}
1722 do_test pragma-20.8 { 1749 do_test pragma-20.8 {
1723 catchsql {PRAGMA data_store_directory} 1750 catchsql {PRAGMA data_store_directory}
1724 } {0 {}} 1751 } {0 {}}
1725 1752
1726 forcedelete data_dir 1753 forcedelete data_dir
1727 } ;# endif windows 1754 } ;# endif windows
1728 1755
1729 database_may_be_corrupt 1756 database_may_be_corrupt
1757 if {![nonzero_reserved_bytes]} {
1730 1758
1731 do_test 21.1 { 1759 do_test 21.1 {
1732 # Create a corrupt database in testerr.db. And a non-corrupt at test.db. 1760 # Create a corrupt database in testerr.db. And a non-corrupt at test.db.
1733 # 1761 #
1734 db close 1762 db close
1735 forcedelete test.db 1763 forcedelete test.db
1736 sqlite3 db test.db 1764 sqlite3 db test.db
1737 execsql { 1765 execsql {
1738 PRAGMA page_size = 1024; 1766 PRAGMA page_size = 1024;
1739 PRAGMA auto_vacuum = 0; 1767 PRAGMA auto_vacuum = 0;
1740 CREATE TABLE t1(a PRIMARY KEY, b); 1768 CREATE TABLE t1(a PRIMARY KEY, b);
1741 INSERT INTO t1 VALUES(1, 1); 1769 INSERT INTO t1 VALUES(1, 1);
1742 } 1770 }
1743 for {set i 0} {$i < 10} {incr i} { 1771 for {set i 0} {$i < 10} {incr i} {
1744 execsql { INSERT INTO t1 SELECT a + (1 << $i), b + (1 << $i) FROM t1 } 1772 execsql { INSERT INTO t1 SELECT a + (1 << $i), b + (1 << $i) FROM t1 }
1745 } 1773 }
1746 db close 1774 db close
1747 forcecopy test.db testerr.db 1775 forcecopy test.db testerr.db
1748 hexio_write testerr.db 15000 [string repeat 55 100] 1776 hexio_write testerr.db 15000 [string repeat 55 100]
1749 } {100} 1777 } {100}
1750 1778
1751 set mainerr {*** in database main *** 1779 set mainerr {*** in database main ***
1752 Multiple uses for byte 672 of page 15} 1780 Multiple uses for byte 672 of page 15}
1753 set auxerr {*** in database aux *** 1781 set auxerr {*** in database aux ***
1754 Multiple uses for byte 672 of page 15} 1782 Multiple uses for byte 672 of page 15}
1755 1783
1756 set mainerr {/{\*\*\* in database main \*\*\* 1784 set mainerr {/{\*\*\* in database main \*\*\*
1757 Multiple uses for byte 672 of page 15}.*/} 1785 Multiple uses for byte 672 of page 15}.*/}
1758 set auxerr {/{\*\*\* in database aux \*\*\* 1786 set auxerr {/{\*\*\* in database aux \*\*\*
1759 Multiple uses for byte 672 of page 15}.*/} 1787 Multiple uses for byte 672 of page 15}.*/}
1760 1788
1761 do_test 22.2 { 1789 do_test 22.2 {
1762 catch { db close } 1790 catch { db close }
1763 sqlite3 db testerr.db 1791 sqlite3 db testerr.db
1764 execsql { PRAGMA integrity_check } 1792 execsql { PRAGMA integrity_check }
1765 } $mainerr 1793 } $mainerr
1766 1794
1767 do_test 22.3.1 { 1795 do_test 22.3.1 {
1768 catch { db close } 1796 catch { db close }
1769 sqlite3 db test.db 1797 sqlite3 db test.db
1770 execsql { 1798 execsql {
1771 ATTACH 'testerr.db' AS 'aux'; 1799 ATTACH 'testerr.db' AS 'aux';
1772 PRAGMA integrity_check; 1800 PRAGMA integrity_check;
1773 } 1801 }
1774 } $auxerr 1802 } $auxerr
1775 do_test 22.3.2 { 1803 do_test 22.3.2 {
1776 execsql { PRAGMA main.integrity_check; } 1804 execsql { PRAGMA main.integrity_check; }
1777 } {ok} 1805 } {ok}
1778 do_test 22.3.3 { 1806 do_test 22.3.3 {
1779 execsql { PRAGMA aux.integrity_check; } 1807 execsql { PRAGMA aux.integrity_check; }
1780 } $auxerr 1808 } $auxerr
1781 1809
1782 do_test 22.4.1 { 1810 do_test 22.4.1 {
1783 catch { db close } 1811 catch { db close }
1784 sqlite3 db testerr.db 1812 sqlite3 db testerr.db
1785 execsql { 1813 execsql {
1786 ATTACH 'test.db' AS 'aux'; 1814 ATTACH 'test.db' AS 'aux';
1787 PRAGMA integrity_check; 1815 PRAGMA integrity_check;
1788 } 1816 }
1789 } $mainerr 1817 } $mainerr
1790 do_test 22.4.2 { 1818 do_test 22.4.2 {
1791 execsql { PRAGMA main.integrity_check; } 1819 execsql { PRAGMA main.integrity_check; }
1792 } $mainerr 1820 } $mainerr
1793 do_test 22.4.3 { 1821 do_test 22.4.3 {
1794 execsql { PRAGMA aux.integrity_check; } 1822 execsql { PRAGMA aux.integrity_check; }
1795 } {ok} 1823 } {ok}
1796 1824 }
1825
1797 db close 1826 db close
1798 forcedelete test.db test.db-wal test.db-journal 1827 forcedelete test.db test.db-wal test.db-journal
1799 sqlite3 db test.db 1828 sqlite3 db test.db
1800 sqlite3 db2 test.db 1829 sqlite3 db2 test.db
1801 do_test 23.1 { 1830 do_test 23.1 {
1802 db eval { 1831 db eval {
1803 CREATE TABLE t1(a INTEGER PRIMARY KEY,b,c,d); 1832 CREATE TABLE t1(a INTEGER PRIMARY KEY,b,c,d);
1804 CREATE INDEX i1 ON t1(b,c); 1833 CREATE INDEX i1 ON t1(b,c);
1805 CREATE INDEX i2 ON t1(c,d); 1834 CREATE INDEX i2 ON t1(c,d);
1806 CREATE INDEX i2x ON t1(d COLLATE nocase, c DESC); 1835 CREATE INDEX i2x ON t1(d COLLATE nocase, c DESC);
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
1899 DROP TABLE t2; 1928 DROP TABLE t2;
1900 CREATE TABLE t2(x, y INTEGER REFERENCES t1); 1929 CREATE TABLE t2(x, y INTEGER REFERENCES t1);
1901 } 1930 }
1902 db2 eval { 1931 db2 eval {
1903 PRAGMA foreign_key_list(t2); 1932 PRAGMA foreign_key_list(t2);
1904 } 1933 }
1905 } {0 0 t1 y {} {NO ACTION} {NO ACTION} NONE} 1934 } {0 0 t1 y {} {NO ACTION} {NO ACTION} NONE}
1906 1935
1907 database_never_corrupt 1936 database_never_corrupt
1908 finish_test 1937 finish_test
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698