xref: /sqlite-3.40.0/test/corruptL.test (revision 4868a865)
1e6370e9cSdan# 2019-01-11
2e6370e9cSdan#
3e6370e9cSdan# The author disclaims copyright to this source code.  In place of
4e6370e9cSdan# a legal notice, here is a blessing:
5e6370e9cSdan#
6e6370e9cSdan#    May you do good and not evil.
7e6370e9cSdan#    May you find forgiveness for yourself and forgive others.
8e6370e9cSdan#    May you share freely, never taking more than you give.
9e6370e9cSdan#
10e6370e9cSdan#***********************************************************************
11e6370e9cSdan#
12e6370e9cSdan
13e6370e9cSdanset testdir [file dirname $argv0]
14e6370e9cSdansource $testdir/tester.tcl
15e6370e9cSdanset testprefix corruptL
16e6370e9cSdan
17e6370e9cSdandatabase_may_be_corrupt
18e6370e9cSdan
19e6370e9cSdan#-------------------------------------------------------------------------
20e6370e9cSdanreset_db
21e6370e9cSdando_test 1.0 {
22e6370e9cSdan  sqlite3 db {}
23e6370e9cSdan  db deserialize [decode_hexdb {
24e6370e9cSdan| size 356352 pagesize 4096 filename crash-acaae0347204ae.db
25e6370e9cSdan| page 1 offset 0
26e6370e9cSdan|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
27e6370e9cSdan|     16: 10 00 01 01 00 40 20 20 00 00 00 00 d0 00 00 00   .....@  ........
28e6370e9cSdan|     32: 40 00 ea 00 00 00 00 00 00 40 00 00 00 40 00 00   @........@...@..
29e6370e9cSdan|     96: 00 00 00 00 0d 00 00 00 04 0e 9c 00 0f ad 0f 4f   ...............O
30e6370e9cSdan|    112: 0e fc 0e 9c 00 00 00 00 00 00 00 00 00 00 00 00   ................
31e6370e9cSdan|   3728: 00 00 00 00 00 00 00 00 00 00 00 00 5e 04 07 17   ............^...
32e6370e9cSdan|   3744: 1f 1f 01 81 0b 74 61 62 6c 65 74 31 5f 70 61 72   .....tablet1_par
33e6370e9cSdan|   3760: 65 6e 74 74 31 5f 70 61 72 65 6e 74 04 43 52 45   entt1_parent.CRE
34e6370e9cSdan|   3776: 41 54 45 20 54 41 42 4c 45 20 22 74 31 5f 70 61   ATE TABLE .t1_pa
35e6370e9cSdan|   3792: 72 65 6e 74 22 28 6e 6f 64 65 6e 6f 20 49 4e 54   rent.(nodeno INT
36e6370e9cSdan|   3808: 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59   EGER PRIMARY KEY
37e6370e9cSdan|   3824: 2c 70 61 72 65 6e 74 6e 6f 64 65 29 51 03 06 17   ,parentnode)Q...
38e6370e9cSdan|   3840: 1b 1b 01 7b 74 61 62 6c 65 74 31 5f 6e 6f 64 65   ....tablet1_node
39e6370e9cSdan|   3856: 74 31 5f 6e 6f 64 65 03 43 52 45 41 54 45 20 54   t1_node.CREATE T
40e6370e9cSdan|   3872: 41 42 4c 45 20 22 74 31 5f 6e 6f 64 65 22 28 6e   ABLE .t1_node.(n
41e6370e9cSdan|   3888: 6f 64 65 6e 6f 20 49 4e 54 45 47 45 52 20 50 52   odeno INTEGER PR
42e6370e9cSdan|   3904: 49 4d 41 52 59 20 4b 45 59 2c 64 61 74 61 29 5c   IMARY KEY,data).
43e6370e9cSdan|   3920: 02 07 17 1d 1d 01 81 0b 74 61 62 6c 65 74 31 5f   ........tablet1_
44e6370e9cSdan|   3936: 72 6f 77 69 64 74 31 5f 72 6f 77 69 64 02 43 52   rowidt1_rowid.CR
45e6370e9cSdan|   3952: 45 41 54 45 20 54 41 42 4c 45 20 22 74 31 5f 72   EATE TABLE .t1_r
46e6370e9cSdan|   3968: 6f 77 69 64 22 28 72 6f 77 69 64 20 49 4e 54 45   owid.(rowid INTE
47e6370e9cSdan|   3984: 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c   GER PRIMARY KEY,
48e6370e9cSdan|   4000: 6e 6f 64 65 6e 6f 2c 61 30 2c 61 31 29 51 01 07   nodeno,a0,a1)Q..
49e6370e9cSdan|   4016: 17 11 11 08 81 0f 74 61 62 6c 65 74 31 74 31 43   ......tablet1t1C
50e6370e9cSdan|   4032: 52 45 41 54 45 20 56 49 52 54 55 41 4c 20 54 41   REATE VIRTUAL TA
51e6370e9cSdan|   4048: 42 4c 45 20 74 31 20 55 53 49 4e 47 20 72 74 72   BLE t1 USING rtr
52e6370e9cSdan|   4064: 65 65 28 69 64 2c 78 30 20 50 52 49 4d 41 52 59   ee(id,x0 PRIMARY
53e6370e9cSdan|   4080: 20 4b 45 59 2c 70 61 72 65 6e 74 6e 6f 64 65 29    KEY,parentnode)
54e6370e9cSdan| page 2 offset 4096
55e6370e9cSdan|      0: 51 03 06 17 1b 1b 01 7b 74 61 62 6c 65 74 31 5f   Q.......tablet1_
56e6370e9cSdan|     16: 6e 6f 64 65 74 31 5f 6e 6f 64 65 03 43 52 45 41   nodet1_node.CREA
57e6370e9cSdan|     32: 54 45 20 54 41 42 4c 45 20 22 74 31 5f 6e 6f 64   TE TABLE .t1_nod
58e6370e9cSdan|     48: 65 22 28 6e 6f 64 65 6e 6f 20 49 4e 54 45 47 45   e.(nodeno INTEGE
59e6370e9cSdan|     64: 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 64 61   R PRIMARY KEY,da
60e6370e9cSdan|     80: 74 61 29 5c 02 07 17 1d 1d 01 81 0b 74 61 62 6c   ta).........tabl
61e6370e9cSdan|     96: 65 74 31 5f 72 6f 77 69 64 74 31 5f 72 6f 77 69   et1_rowidt1_rowi
62e6370e9cSdan|    112: 64 02 43 52 45 41 54 45 20 54 41 42 4c 45 00 00   d.CREATE TABLE..
63e6370e9cSdan|    128: 01 0a 02 00 00 00 01 0e 0d 00 00 00 00 24 0e 0d   .............$..
64e6370e9cSdan|    144: 0c 1a 06 85 50 46 60 27 70 08 00 00 00 00 00 00   ....PF`'p.......
65e6370e9cSdan|   3824: 00 00 00 00 00 00 00 0d 0e 05 00 09 1d 00 74 6f   ..............to
66e6370e9cSdan|   3840: 79 20 68 61 6c 66 10 0d 05 00 09 23 00 62 6f 74   y half.....#.bot
67e6370e9cSdan|   3856: 74 6f 6d 20 68 61 6c 66 0f 0c 05 00 09 21 00 72   tom half.....!.r
68e6370e9cSdan|   3872: 69 67 68 74 20 68 61 6c 66 0e 0b 05 00 09 1f 00   ight half.......
69e6370e9cSdan|   3888: 6c 65 66 74 20 43 15 f6 e6 f6 46 50 34 35 24 54   left C....FP45$T
70e6370e9cSdan|   3904: 15 44 52 05 44 14 24 c4 52 02 27 43 15 f6 e6 f6   .DR.D.$.R.'C....
71e6370e9cSdan|   3920: 46 52 22 8e 6f 64 65 6e 6f 20 49 4e 54 45 47 45   FR..odeno INTEGE
72e6370e9cSdan|   3936: 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 64 61   R PRIMARY KEY,da
73e6370e9cSdan|   3952: 74 61 29 5c 02 07 17 1d 1d 01 81 0b 74 61 62 6c   ta).........tabl
74e6370e9cSdan|   3968: 65 74 31 5f 72 6f 74 74 6f 6d 20 65 64 67 65 0f   et1_rottom edge.
75e6370e9cSdan|   3984: 07 05 00 09 21 00 72 69 67 68 74 20 65 64 67 65   ....!.right edge
76e6370e9cSdan|   4000: 0e 06 05 00 09 1f 00 6c 65 66 74 20 65 64 67 65   .......left edge
77e6370e9cSdan|   4016: 0b 05 05 00 09 19 00 63 65 6e 74 65 72 17 04 05   .......center...
78e6370e9cSdan|   4032: 00 09 31 00 75 70 70 65 72 2d 72 69 67 68 74 20   ..1.upper-right
79e6370e9cSdan|   4048: 63 6f 72 6e 65 72 17 03 05 00 09 31 00 6c 6f 77   corner.....1.low
80e6370e9cSdan|   4064: 65 72 2d 72 69 67 68 74 20 63 6f 72 6e 65 72 16   er-right corner.
81e6370e9cSdan|   4080: 02 05 00 09 2f 00 75 70 70 65 72 2d 6c 65 66 74   ..../.upper-left
82e6370e9cSdan| page 3 offset 8192
83e6370e9cSdan|      0: 20 63 6f 72 6e 65 72 16 01 05 00 09 2f 01 8c 6f    corner...../..o
84e6370e9cSdan|     16: 77 65 72 2d 6c 53 51 4c 69 74 65 20 66 6f 72 6d   wer-lSQLite form
85e6370e9cSdan|     32: 61 74 20 33 00 10 00 01 01 00 40 20 20 00 00 00   at 3......@  ...
86e6370e9cSdan|     48: 00 00 00 00 2f 00 00 0d eb 13 00 00 00 03 00 00   ..../...........
87e6370e9cSdan|     64: 00 04 00 00 00 00 00 00 00 06 00 00 00 01 00 00   ................
88e6370e9cSdan|     80: 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00   ................
89e6370e9cSdan| page 6 offset 20480
90e6370e9cSdan|    128: 00 00 00 00 00 00 00 00 97 3d 04 ae 7c 01 00 00   .........=..|...
91e6370e9cSdan|    624: 00 00 00 00 00 00 21 97 3d 04 ae 7c 01 00 00 00   ......!.=..|....
92e6370e9cSdan|   1120: 00 00 00 00 00 20 97 3d 04 ae 7c 01 00 00 00 00   ..... .=..|.....
93e6370e9cSdan|   1616: 00 00 00 00 1f 97 3d 04 ae 7c 01 00 00 00 00 00   ......=..|......
94e6370e9cSdan|   2112: 00 00 00 1e 97 3d 04 ae 7c 01 00 00 00 00 00 00   .....=..|.......
95e6370e9cSdan|   2608: 00 00 1d 97 d3 d0 4a e7 c0 00 00 00 00 00 00 00   ......J.........
96e6370e9cSdan|   3088: 00 00 00 00 00 00 00 00 00 00 00 00 01 f3 00 00   ................
97e6370e9cSdan|   3600: 23 97 3d 04 ae 7c 01 00 00 00 00 00 00 00 00 00   #.=..|..........
98e6370e9cSdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26   ...............&
99e6370e9cSdan| page 8 offset 28672
100e6370e9cSdan|      0: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00   ......0..0......
101e6370e9cSdan|   1072: 97 4d 1e 14 00 ae 7c 00 00 00 00 00 00 00 00 00   .M....|.........
102e6370e9cSdan|   1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00   ................
103e6370e9cSdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03   ................
104e6370e9cSdan| page 10 offset 36864
105e6370e9cSdan|      0: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00   ......0..0......
106e6370e9cSdan|   1072: 9a ee c1 80 fd 78 1f ce 1b ae eb b4 00 00 00 00   .....x..........
107e6370e9cSdan|   1088: 13 20 ff 20 00 70 00 00 00 60 50 00 00 00 11 e0   . . .p...`P.....
108e6370e9cSdan|   1104: 00 00 00 70 00 00 00 60 50 05 35 14 c6 97 46 52   ...p...`P.5...FR
109e6370e9cSdan|   1120: 06 66 f7 26 d6 17 42 03 30 01 00 00 10 10 04 02   .f.&..B.0.......
110e6370e9cSdan|   1136: 02 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00   .........@......
111e6370e9cSdan|   1152: 00 00 00 00 00 40 00 00 00 40 00 00 00 00 00 00   .....@...@......
112e6370e9cSdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05   ................
113e6370e9cSdan| page 12 offset 45056
114e6370e9cSdan|      0: 0d 00 00 00 01 04 30 00 04 30 e1 b4 30 97 4d 46   ......0..0..0.MF
115e6370e9cSdan|     16: 14 00 ae 7c 00 00 00 00 00 00 00 03 00 00 43 00   ...|..........C.
116e6370e9cSdan| page 47 offset 188416
117e6370e9cSdan|   2512: 00 00 00 00 00 00 00 00 be 00 00 00 00 00 00 00   ................
118e6370e9cSdan| page 87 offset 352256
119e6370e9cSdan|   2512: 00 00 00 00 00 00 00 00 aa 00 00 00 00 00 00 00   ................
120e6370e9cSdan| end crash-acaae0347204ae.db
121e6370e9cSdan}]} {}
122e6370e9cSdan
123e6370e9cSdando_catchsql_test 1.1 {
124e6370e9cSdan  PRAGMA cell_size_check = off;
125e6370e9cSdan  DROP INDEX t1x1;
126fcb02429Sdan} {1 {database disk image is malformed}}
127e6370e9cSdan
128e6370e9cSdando_catchsql_test 1.2 {
129e6370e9cSdan  SELECT sum(s+length(b)) FROM t1 WHERE a IN (110,10,150) AND q IS NULL;
130fcb02429Sdan} {1 {database disk image is malformed}}
131e6370e9cSdan
132e6370e9cSdando_catchsql_test 1.3 {
133e6370e9cSdan  REINDEX t1;
134fcb02429Sdan} {1 {database disk image is malformed}}
135fcb02429Sdan
136fcb02429Sdando_catchsql_test 1.4 {
137fcb02429Sdan  PRAGMA integrity_check
138fcb02429Sdan} {1 {database disk image is malformed}}
139fcb02429Sdan
140e6370e9cSdan
141b4738ddbSdan#-------------------------------------------------------------------------
142b4738ddbSdanreset_db
143b4738ddbSdando_test 2.0 {
144b4738ddbSdan  sqlite3 db {}
145b4738ddbSdan  db deserialize [decode_hexdb {
146b4738ddbSdan| size 20480 pagesize 4096 filename crash.txt.db
147b4738ddbSdan| page 1 offset 0
148b4738ddbSdan|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
149b4738ddbSdan|     16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 05   .....@  ........
150b4738ddbSdan|     32: 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 04   ................
151b4738ddbSdan|     48: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00   ................
152b4738ddbSdan|     96: 00 00 00 00 0d 00 00 00 05 0e 55 00 0f 74 0f 3c   ..........U..t.<
153b4738ddbSdan|    112: 0e f9 0e d1 0e 55 00 00 00 00 00 00 00 00 00 00   .....U..........
154b4738ddbSdan|   3664: 00 00 00 00 00 7a 05 07 15 11 11 08 81 63 76 69   .....z.......cvi
155b4738ddbSdan|   3680: 65 77 76 31 76 31 43 52 45 41 54 45 20 56 49 45   ewv1v1CREATE VIE
156b4738ddbSdan|   3696: 57 20 76 31 28 78 2c 79 29 20 41 53 0a 53 45 4c   W v1(x,y) AS.SEL
157b4738ddbSdan|   3712: 45 43 54 20 74 31 2e 62 2c 74 32 2e 62 20 46 52   ECT t1.b,t2.b FR
158b4738ddbSdan|   3728: 4f 4d 20 74 31 2c 74 32 20 57 48 45 52 45 20 74   OM t1,t2 WHERE t
159b4738ddbSdan|   3744: 31 2e 61 3d 74 32 2e 61 20 47 52 4f 55 50 20 42   1.a=t2.a GROUP B
160b4738ddbSdan|   3760: 59 20 31 20 48 41 56 49 4e 47 20 74 32 2e 63 20   Y 1 HAVING t2.c
161b4738ddbSdan|   3776: 4e 4f 54 20 4e 55 4c 4c 0a 4c 49 4d 49 54 20 31   NOT NULL.LIMIT 1
162b4738ddbSdan|   3792: 30 26 04 06 17 11 11 01 39 74 61 62 6c 65 74 32   0&......9tablet2
163b4738ddbSdan|   3808: 74 32 05 43 52 45 41 54 45 20 54 41 42 4c 45 20   t2.CREATE TABLE
164b4738ddbSdan|   3824: 74 32 28 61 2c 62 2c 63 29 41 03 06 17 15 11 01   t2(a,b,c)A......
165b4738ddbSdan|   3840: 6b 69 6e 64 65 78 74 31 78 31 74 31 04 43 52 45   kindext1x1t1.CRE
166b4738ddbSdan|   3856: 41 54 45 20 49 4e 44 45 58 20 73 31 78 31 20 4f   ATE INDEX s1x1 O
167b4738ddbSdan|   3872: 4e 20 74 31 28 64 29 20 57 48 45 52 45 20 65 65   N t1(d) WHERE ee
168b4738ddbSdan|   3888: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 36 02 06 17    IS NOT NULL6...
169b4738ddbSdan|   3904: 17 11 01 53 69 6e 64 65 78 74 31 61 62 63 74 31   ...Sindext1abct1
170b4738ddbSdan|   3920: 03 43 52 45 41 54 45 20 49 4e 44 45 58 20 74 31   .CREATE INDEX t1
171b4738ddbSdan|   3936: 61 62 63 20 4f 4e 20 74 31 28 61 2c 62 2c 63 2b   abc ON t1(a,b,c+
172b4738ddbSdan|   3952: 64 2b 65 29 81 09 01 07 17 11 11 01 81 7d 74 61   d+e)..........ta
173b4738ddbSdan|   3968: 62 6c 65 74 31 74 31 02 43 52 45 41 54 45 20 54   blet1t1.CREATE T
174b4738ddbSdan|   3984: 41 42 4c 45 20 74 31 28 61 2c 62 2c 63 2c 64 2c   ABLE t1(a,b,c,d,
175b4738ddbSdan|   4000: 65 2c 66 2c 67 2c 68 2c 6a 2c 6a 6a 2c 6a 6a 6a   e,f,g,h,j,jj,jjj
176b4738ddbSdan|   4016: 2c 6b 2c 61 61 2c 62 62 2c 63 63 2c 64 64 2c 65   ,k,aa,bb,cc,dd,e
177b4738ddbSdan|   4032: 65 20 44 45 46 41 55 4c 54 20 33 2e 31 34 2c 0a   e DEFAULT 3.14,.
178b4738ddbSdan|   4048: 66 66 20 44 45 46 41 55 4c 54 28 27 68 69 63 63   ff DEFAULT('hicc
179b4738ddbSdan|   4064: 75 70 27 29 2c 67 67 20 4e 4f 54 20 4e 55 4c 4c   up'),gg NOT NULL
180b4738ddbSdan|   4080: 20 44 45 46 41 55 4c 54 28 66 61 6c 73 65 29 29    DEFAULT(false))
181b4738ddbSdan| page 2 offset 4096
182b4738ddbSdan|      0: 0d 00 00 00 0a 0e 7b 00 0f dc 0f b6 0f 8f 0f 68   ...............h
183b4738ddbSdan|     16: 0f 41 0f 1a 0e f3 0e cb 0e a3 0e 7b 00 00 00 00   .A..............
184b4738ddbSdan|   3696: 00 00 00 00 00 00 00 00 00 00 00 26 0a 14 01 01   ...........&....
185b4738ddbSdan|   3712: 02 08 00 00 00 00 00 00 00 00 00 00 00 00 07 19   ................
186b4738ddbSdan|   3728: 08 09 5a 00 b4 40 09 1e b8 51 eb 85 1f 68 69 63   [email protected]
187b4738ddbSdan|   3744: 63 75 70 26 09 14 01 01 02 08 00 00 00 00 00 00   cup&............
188b4738ddbSdan|   3760: 00 00 00 00 00 00 07 19 08 08 50 00 a0 40 09 1e   ..........P..@..
189b4738ddbSdan|   3776: b8 51 eb 85 1f 68 69 63 63 75 70 26 08 14 01 01   .Q...hiccup&....
190b4738ddbSdan|   3792: 02 08 00 00 00 00 00 00 00 00 00 00 00 00 07 19   ................
191b4738ddbSdan|   3808: 08 07 46 00 8c 40 09 1e b8 51 eb 85 1f 68 69 63   [email protected]
192b4738ddbSdan|   3824: 63 75 70 25 07 14 01 01 01 08 00 00 00 00 00 00   cup%............
193b4738ddbSdan|   3840: 00 00 00 00 00 00 07 b9 08 06 3c 78 40 09 1e b8   ..........<x@...
194b4738ddbSdan|   3856: 51 eb 85 1f 68 69 63 63 75 70 25 06 14 01 00 01   Q...hiccup%.....
195b4738ddbSdan|   3872: 08 00 00 00 00 00 00 00 00 00 00 00 00 07 19 08   ................
196b4738ddbSdan|   3888: 05 32 64 40 09 1e b8 51 eb 85 1f 68 69 63 63 75   [email protected]
197b4738ddbSdan|   3904: 70 25 05 14 01 01 01 08 00 00 00 00 00 00 00 00   p%..............
198b4738ddbSdan|   3920: 00 00 00 00 07 19 08 04 28 50 40 09 1e b8 51 eb   ........([email protected].
199b4738ddbSdan|   3936: 85 1f 68 69 63 63 75 70 25 04 14 01 01 01 08 00   ..hiccup%.......
200b4738ddbSdan|   3952: 00 00 00 00 00 00 00 00 00 00 00 07 19 08 03 1e   ................
201b4738ddbSdan|   3968: 3c 40 09 1e b8 51 eb 85 1f 68 69 63 63 75 70 25   <@...Q...hiccup%
202b4738ddbSdan|   3984: 03 14 01 01 01 08 00 00 00 00 00 00 00 00 00 00   ................
203b4738ddbSdan|   4000: 00 00 07 19 08 02 14 28 40 09 1e b8 51 eb 85 1f   .......(@...Q...
204b4738ddbSdan|   4016: 68 69 63 63 75 70 24 02 14 09 01 01 08 00 00 00   hiccup$.........
205b4738ddbSdan|   4032: 00 00 00 00 00 00 00 00 00 07 19 08 0a 14 40 09   ..............@.
206b4738ddbSdan|   4048: 1e b8 51 eb 85 1f 68 69 63 63 75 70 22 01 14 08   ..Q...hiccup....
207b4738ddbSdan|   4064: 08 08 07 ff ff ff ff ff ff 00 00 00 00 00 00 07   ................
208b4738ddbSdan|   4080: 19 08 40 09 1e b8 51 eb 85 1f 68 69 63 63 75 70   [email protected]
209b4738ddbSdan| page 3 offset 8192
210b4738ddbSdan|      0: 0a 00 00 00 0a 0f aa 00 0f fa 0f f2 0f e9 0f e0   ................
211b4738ddbSdan|     16: 0f d7 0f ce 0f c5 0f bc 0e b3 0f aa 00 00 00 00   ................
212b4738ddbSdan|   4000: 00 00 00 00 00 00 00 00 00 00 08 05 01 01 00 01   ................
213b4738ddbSdan|   4016: 09 5a 0a 08 05 01 01 00 01 08 50 09 08 05 01 01   .Z........P.....
214b4738ddbSdan|   4032: 00 01 07 46 08 08 05 01 01 00 01 06 3c 07 08 05   ...F........<...
215b4738ddbSdan|   4048: 01 01 00 01 05 32 06 08 05 01 01 00 01 04 28 05   .....2........(.
216b4738ddbSdan|   4064: 08 05 01 01 00 01 03 1e 04 08 05 01 01 00 01 02   ................
217b4738ddbSdan|   4080: 14 03 07 05 09 01 00 01 0a 02 05 05 08 08 00 09   ................
218b4738ddbSdan| page 4 offset 12288
219b4738ddbSdan|      0: 0a 00 00 00 0a 0f cf 00 0f fc 0f f7 0f f2 0f ed   ................
220b4738ddbSdan|     16: 0f e8 0f e3 0f de 0f d9 0f d4 0f cf 00 00 00 00   ................
221b4738ddbSdan|   4032: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04   ................
222b4738ddbSdan|   4048: 03 08 01 0a 04 03 08 01 09 04 03 08 01 08 04 03   ................
223b4738ddbSdan|   4064: 08 01 07 04 03 08 01 06 04 03 08 01 05 04 03 08   ................
224b4738ddbSdan|   4080: 01 04 04 03 08 01 13 04 03 08 01 02 03 03 08 09   ................
225b4738ddbSdan| page 5 offset 16384
226b4738ddbSdan|      0: 0d 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00   ................
227b4738ddbSdan| end crash.txt.db
228b4738ddbSdan}]} {}
229b4738ddbSdan
230b4738ddbSdando_execsql_test 2.1 {
231c5a93d4cSdrh  PRAGMA writable_schema=ON; -- bypass improved sqlite_master consistency checking
232b4738ddbSdan  INSERT INTO t1(b) VALUES(X'a0fee3669f9fddefc5cba913e4225d4b6ce2b04f26b87fad3ee6f9b7d90a1ea62a169bf41e5d32707a6ca5c3d05e4bde05c9d89eaaa8c50e74333d2e9fcd7dfe95528a3a016aac1102d825c5cd70cf99d8a88e0ea7f798d4334386518b7ad359beb168b93aba059a2a3bd93112d65b44c12b9904ea786b204d80531cdf0504bf9b203dbe927061974caf7b9f30cbc3397b61f802e732012a6663d41c3607d6f1c0dbcfd489adac05ca500c0b04439d894cd93a840159225ef73b627e178b9f84b3ffe66cf22a963a8368813ff7961fc47f573211ccec95e0220dcbb3bf429f4a50ba54d7a53784ac51bfef346e6ac8ae0d0e7c3175946e62ba2b');
233b4738ddbSdan}
234b4738ddbSdan
235b4738ddbSdando_catchsql_test 2.2 {
236b4738ddbSdan  SELECT b,c FROM t1 ORDER BY a;
237b4738ddbSdan} {1 {database disk image is malformed}}
238b4738ddbSdan
239b0c4c949Sdan#-------------------------------------------------------------------------
240b0c4c949Sdanreset_db
241b0c4c949Sdando_execsql_test 3.0 {
242b0c4c949Sdan  CREATE TABLE t1(a, b, c, d INTEGER PRIMARY KEY);
243b0c4c949Sdan  CREATE TABLE t2(a, b, c, d INTEGER PRIMARY KEY);
244b0c4c949Sdan
245b0c4c949Sdan  INSERT INTO t1(a, b, c, d) VALUES (1, 2, 3, 100), (4, 5, 6, 101);
246b0c4c949Sdan  INSERT INTO t2(a, b, c, d) VALUES (1, 100, 3, 1000), (4, 101, 6, 1001);
247b0c4c949Sdan
248b0c4c949Sdan  CREATE INDEX t1a ON t1(a);
249b0c4c949Sdan  CREATE INDEX t2a ON t2(a, b, c);
250b0c4c949Sdan
251b0c4c949Sdan  PRAGMA writable_schema = 1;
252b0c4c949Sdan  UPDATE sqlite_master SET sql = 'CREATE INDEX t2a ON t2(a)' WHERE name='t2a';
253b0c4c949Sdan}
254b0c4c949Sdan
255b0c4c949Sdandb close
256b0c4c949Sdansqlite3 db test.db
257b0c4c949Sdan
258b0c4c949Sdando_catchsql_test 3.1 {
259b0c4c949Sdan  INSERT INTO t1 SELECT * FROM t2;
260b0c4c949Sdan} {1 {database disk image is malformed}}
261b0c4c949Sdan
262b0c4c949Sdan#-------------------------------------------------------------------------
263b0c4c949Sdanreset_db
264b0c4c949Sdando_test 4.0 {
265b0c4c949Sdan  sqlite3 db {}
266b0c4c949Sdan  db deserialize [decode_hexdb {
267b0c4c949Sdan| size 4096 pagesize 512 filename crash-6b48ba69806134.db
268b0c4c949Sdan| page 1 offset 0
269b0c4c949Sdan|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
270b0c4c949Sdan|     16: 02 00 01 01 00 40 20 20 00 ff ff ff ff 00 00 07   .....@  ........
271b0c4c949Sdan|     32: 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 04   ................
272b0c4c949Sdan|     48: 00 00 00 00 00 00 00 05 00 eb 00 01 00 00 00 00   ................
273b0c4c949Sdan|     80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c   ................
274b0c4c949Sdan|     96: 00 2e 2c 50 0d 00 00 00 06 01 06 00 01 da 01 b0   ..,P............
275b0c4c949Sdan|    112: 05 56 01 86 01 2a 01 06 00 00 00 00 00 00 00 00   .V...*..........
276b0c4c949Sdan|    128: 00 ff 00 00 ff ff ff e1 00 00 00 00 00 00 00 00   ................
277b0c4c949Sdan|    144: 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00   ................
278b0c4c949Sdan|    160: 00 00 00 00 00 00 00 00 f2 00 00 00 00 00 00 00   ................
279b0c4c949Sdan|    176: 00 00 f9 ff ff ff ff ff ff ff 00 00 00 00 00 fb   ................
280b0c4c949Sdan|    208: 00 00 00 00 00 00 00 00 1e 00 00 00 fe 00 00 00   ................
281b0c4c949Sdan|    224: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ca 00   ................
282b0c4c949Sdan|    256: 00 00 00 00 ef ff 22 07 06 17 11 11 01 31 74 61   .............1ta
283b0c4c949Sdan|    272: 62 6c 65 74 38 38 74 04 43 52 45 41 54 45 20 54   blet88t.CREATE T
284b0c4c949Sdan|    288: 41 42 4c 45 20 74 34 28 87 29 2a 06 06 17 13 11   ABLE t4(.)*.....
285b0c4c949Sdan|    304: 01 3f 69 4f 64 65 78 74 33 78 74 33 05 43 52 45   .?iOdext3xt3.CRE
286b0c4c949Sdan|    320: 41 54 45 20 49 6e 44 45 58 20 74 33 78 20 4f 4e   ATE InDEX t3x ON
287b0c4c949Sdan|    336: 20 74 33 28 78 29 2e 04 06 17 15 11 01 45 69 6e    t3(x).......Ein
288b0c4c949Sdan|    352: 64 65 2e 74 32 63 64 74 3d 05 43 52 45 41 54 45   de.t2cdt=.CREATE
289b0c4c949Sdan|    368: 20 49 4e 44 45 58 20 74 32 63 64 20 4f 4e 20 74    INDEX t2cd ON t
290b0c4c949Sdan|    384: 32 28 0a 0c 44 29 28 05 06 17 11 11 01 3d 74 61   2(..D)(......=ta
291b0c4c949Sdan|    400: 62 6c 65 d4 33 74 33 04 43 52 45 41 54 45 20 54   ble.3t3.CREATE T
292b0c4c949Sdan|    416: 41 42 4c 45 20 74 33 28 63 2c 78 2c 65 2c 66 29   ABLE t3(c,x,e,f)
293b0c4c949Sdan|    432: 28 02 06 17 11 11 01 3d 74 61 62 6c 65 74 32 74   (......=tablet2t
294b0c4c949Sdan|    448: 32 03 43 52 45 41 54 45 20 54 41 42 4c 45 20 74   2.CREATE TABLE t
295b0c4c949Sdan|    464: 32 28 63 2c 64 2c 65 2c 66 29 24 01 06 17 11 11   2(c,d,e,f)$.....
296b0c4c949Sdan|    480: 01 35 74 60 62 6c 65 74 31 74 31 02 43 52 45 41   .5t`blet1t1.CREA
297b0c4c949Sdan|    496: 54 45 20 54 41 42 4c 45 20 74 30 28 61 2c 62 29   TE TABLE t0(a,b)
298b0c4c949Sdan| page 2 offset 512
299b0c4c949Sdan|      0: 0d 00 ff 11 04 01 cf 00 01 fa 01 f3 01 de 01 cf   ................
300b0c4c949Sdan|     32: 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 13   ................
301b0c4c949Sdan|     48: 00 00 00 00 00 00 00 00 00 00 00 01 00 20 00 00   ............. ..
302b0c4c949Sdan|     64: 00 00 00 00 00 00 f8 ff ff ff 00 00 00 00 00 00   ................
303b0c4c949Sdan|    160: 01 64 00 00 00 00 00 80 ff ff ff 00 00 00 00 00   .d..............
304b0c4c949Sdan|    176: 00 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 03   ................
305b0c4c949Sdan|    192: 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00   ..@.............
306b0c4c949Sdan|    288: 00 00 00 00 00 00 ff ff ff e9 00 00 00 00 00 00   ................
307b0c4c949Sdan|    336: 01 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00   ................
308b0c4c949Sdan|    368: 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ...............
309b0c4c949Sdan|    384: 00 de ff 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
310b0c4c949Sdan|    464: 00 00 00 00 00 13 76 65 6e 65 69 67 68 74 13 03   ......veneight..
311b0c4c949Sdan|    480: 03 40 07 07 14 00 54 45 20 49 4e 44 45 58 20 74   [email protected] INDEX t
312b0c4c949Sdan|    496: 32 63 64 20 4f 4e 20 74 32 28 0a 0c 44 09 01 02   2cd ON t2(..D...
313b0c4c949Sdan| page 3 offset 1024
314b0c4c949Sdan|      0: 0d 00 00 00 48 01 54 00 01 f7 01 ec 01 c5 01 aa   ....H.T.........
315b0c4c949Sdan|     16: 30 34 28 87 29 2a 06 06 17 13 11 01 3f 69 4f 64   04(.)*......?iOd
316b0c4c949Sdan|     32: 65 79 74 33 78 74 33 6d 6d 6d 6d 6d 6d 7d 6d 6d   eyt3xt3mmmmmm.mm
317b0c4c949Sdan|     48: 6d 41 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d   mAmmmmmmmmmmmmmm
318b0c4c949Sdan|     64: 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 66 6d 6d 6d 6d   mmmmmmmmmmmfmmmm
319b0c4c949Sdan|     80: 6d 4e 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d   mNmmmmmmmmmmmmmm
320b0c4c949Sdan|     96: 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d   mmmmmmmmmmmmmmmm
321b0c4c949Sdan|    112: 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d   mmmmmmmmmmmmmmmm
322b0c4c949Sdan|    128: 6d 6d 6d 6d 6d 00 00 00 00 00 00 00 00 00 00 00   mmmmm...........
323b0c4c949Sdan|    160: 80 00 00 00 00 00 00 03 00 00 00 ff e4 00 00 00   ................
324b0c4c949Sdan|    208: 00 00 00 00 00 00 00 00 00 00 00 00 00 c5 00 00   ................
325b0c4c949Sdan|    240: 14 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00   ................
326b0c4c949Sdan|    256: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f ec   ................
327b0c4c949Sdan|    304: 00 00 00 00 19 08 05 17 17 17 17 65 69 67 68 74   ...........eight
328b0c4c949Sdan|    320: 65 69 67 68 74 73 65 00 00 00 00 00 00 00 00 00   eightse.........
329b0c4c949Sdan|    336: 00 00 00 00 19 08 05 17 17 17 17 65 69 67 68 74   ...........eight
330b0c4c949Sdan|    352: 65 69 67 68 74 73 65 01 65 6e 00 00 00 10 25 07   eightse.en....%.
331b0c4c949Sdan|    368: 07 6e 25 07 07 07 40 18 00 00 00 00 00 00 40 18   .n%...@.......@.
332b0c4c949Sdan|    384: 00 00 00 00 00 00 40 14 00 00 00 00 00 00 40 14   ......@.......@.
333b0c4c949Sdan|    400: 00 00 00 00 00 00 09 06 05 01 01 01 01 04 04 03   ................
334b0c4c949Sdan|    416: 03 07 05 05 01 01 09 09 02 02 19 04 05 17 17 17   ................
335b0c4c949Sdan|    432: 17 10 65 76 65 6e 65 69 67 68 74 65 69 67 68 74   ..eveneighteight
336b0c4c949Sdan|    448: 73 65 76 65 6e 25 03 05 07 07 07 07 40 14 00 00   seven%......@...
337b0c4c949Sdan|    464: 00 00 00 00 40 18 00 00 00 00 00 00 40 18 00 00   ....@.......@...
338b0c4c949Sdan|    480: 00 00 00 00 40 14 00 00 00 00 e8 f6 09 02 00 00   ....@...........
339b0c4c949Sdan|    496: 00 00 00 00 00 00 00 00 00 00 64 00 00 00 00 02   ..........d.....
340b0c4c949Sdan| page 4 offset 1536
341b0c4c949Sdan|      0: 0d 00 00 00 00 02 00 00 00 00 00 00 00 00 00 fa   ................
342b0c4c949Sdan|     16: 1f a1 07 00 00 00 00 00 01 00 00 00 00 00 00 00   ................
343b0c4c949Sdan|     32: 00 00 00 00 00 00 00 00 00 00 00 00 00 73 69 6d   .............sim
344b0c4c949Sdan|     48: 70 6c 65 00 00 00 00 00 00 00 00 00 00 00 00 00   ple.............
345b0c4c949Sdan|     80: 00 00 00 00 00 10 00 00 00 00 00 00 01 00 00 00   ................
346b0c4c949Sdan|     96: 00 00 00 00 00 00 00 00 00 00 00 00 00 fe ff ff   ................
347b0c4c949Sdan|    112: ff 00 00 00 00 00 00 00 00 00 00 00 4a 00 00 00   ............J...
348b0c4c949Sdan|    144: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00   ................
349b0c4c949Sdan|    176: e5 ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00   ................
350b0c4c949Sdan|    208: 00 00 00 00 00 00 00 00 00 00 36 36 00 00 00 00   ..........66....
351b0c4c949Sdan|    240: 00 00 00 6c 00 00 00 00 00 00 00 00 00 00 00 00   ...l............
352b0c4c949Sdan|    256: 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
353b0c4c949Sdan|    320: 00 00 00 00 00 00 00 00 01 00 00 02 00 80 00 00   ................
354b0c4c949Sdan|    336: 00 00 00 00 00 19 08 05 17 17 17 17 65 69 67 68   ............eigh
355b0c4c949Sdan|    352: 74 65 69 67 68 74 73 65 76 65 6e 73 65 76 65 6e   teightsevenseven
356b0c4c949Sdan|    368: 25 07 05 07 07 07 07 40 18 00 00 00 00 00 00 40   %......@.......@
357b0c4c949Sdan|    384: 18 00 20 00 00 00 40 00 14 00 00 00 00 00 00 40   .. ...@........@
358b0c4c949Sdan|    400: 14 00 00 00 00 00 1c 09 06 05 01 01 01 01 04 04   ................
359b0c4c949Sdan|    416: 03 03 07 05 05 01 01 00 00 00 00 00 00 00 00 00   ................
360b0c4c949Sdan|    448: 74 73 65 76 65 6e 00 80 ff ff 00 00 00 00 00 aa   tseven..........
361b0c4c949Sdan|    464: 00 9e 00 00 00 00 00 00 00 00 00 00 00 70 6f 72   .............por
362b0c4c949Sdan|    480: 74 65 72 00 00 00 00 00 00 00 00 00 00 00 00 00   ter.............
363b0c4c949Sdan|    496: 00 00 00 00 00 00 29 00 00 00 00 00 00 00 00 00   ......).........
364b0c4c949Sdan| page 5 offset 2048
365b0c4c949Sdan|      0: 0a 00 00 00 08 01 96 00 01 fa 01 c5 01 f2 01 bc   ................
366b0c4c949Sdan|     16: 01 dc 01 a6 01 96 01 cc 00 00 00 00 00 00 00 00   ................
367b0c4c949Sdan|    112: 00 00 00 09 00 00 00 00 01 00 00 00 00 00 00 00   ................
368b0c4c949Sdan|    160: 74 72 69 67 62 ff ff ff ff fc 00 00 00 00 00 00   trigb...........
369b0c4c949Sdan|    240: 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 00 00   ................
370b0c4c949Sdan|    256: e5 ff ff ff 00 00 54 00 00 00 00 00 00 00 00 00   ......T.........
371b0c4c949Sdan|    304: 00 00 00 00 00 00 09 00 00 00 00 00 00 00 00 00   ................
372b0c4c949Sdan|    400: 00 00 00 00 00 09 00 00 00 00 01 00 00 00 00 00   ................
373b0c4c949Sdan|    448: 00 00 74 72 69 67 62 ff ff ff ff fc 00 00 07 05   ..trigb.........
374b0c4c949Sdan|    464: 05 01 01 09 09 02 02 19 04 05 17 17 17 17 10 65   ...............e
375b0c4c949Sdan|    480: 76 65 6e 65 69 67 68 74 65 40 18 00 00 00 00 01   veneighte@......
376b0c4c949Sdan|    496: 02 03 07 04 01 01 01 03 04 02 05 04 09 01 ff fd   ................
377b0c4c949Sdan| end crash-6b48ba69806134.db
378b0c4c949Sdan}]} {}
379b0c4c949Sdan
3807971b7feSdanset res {1 {database disk image is malformed}}
3817971b7feSdanifcapable oversize_cell_check {
3827971b7feSdan  set res {1 {no such table: t3}}
3837971b7feSdan}
384b0c4c949Sdando_catchsql_test 4.1 {
385c5a93d4cSdrh  PRAGMA writable_schema=ON; -- bypass improved sqlite_master consistency checking
386b0c4c949Sdan  INSERT INTO t3 SELECT * FROM t2;
3877971b7feSdan} $res
388b0c4c949Sdan
389ba14c69bSdan#-------------------------------------------------------------------------
390ba14c69bSdanreset_db
391ba14c69bSdando_test 5.0 {
392ba14c69bSdan  sqlite3 db {}
393ba14c69bSdan  db deserialize [decode_hexdb {
394ba14c69bSdan| size 192512 pagesize 4096 filename crash-9ae5502296c949.db
395ba14c69bSdan| page 1 offset 0
396ba14c69bSdan|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
397ba14c69bSdan|     16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 2f   .....@  ......./
398ba14c69bSdan|     32: 00 00 00 1b 00 00 00 13 00 00 00 03 00 00 00 04   ................
399ba14c69bSdan|     48: 00 00 00 00 00 00 00 06 00 00 00 01 00 00 00 00   ................
400ba14c69bSdan|     64: 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00   ................
401ba14c69bSdan|     96: 00 00 00 00 0d 00 00 00 04 0e e2 00 0f 96 0f 44   ...............D
402ba14c69bSdan|    112: 0f 10 0e e2 00 00 00 00 00 00 00 00 00 00 00 00   ................
403ba14c69bSdan|   3808: 00 00 2c 04 06 17 15 11 01 41 69 6e 64 65 78 74   ..,......Aindext
404ba14c69bSdan|   3824: 31 78 32 74 31 06 43 52 45 41 54 45 20 49 4e 44   1x2t1.CREATE IND
405ba14c69bSdan|   3840: 45 58 20 74 31 78 32 20 4f 4e 20 74 31 28 62 29   EX t1x2 ON t1(b)
406ba14c69bSdan|   3856: 32 03 06 17 15 11 01 4d 69 6e 64 65 78 74 31 78   2......Mindext1x
407ba14c69bSdan|   3872: 31 74 31 05 43 52 45 41 54 45 20 49 4e 44 45 58   1t1.CREATE INDEX
408ba14c69bSdan|   3888: 20 74 31 78 31 20 4f 4e 20 74 31 28 67 2b 68 2c    t1x1 ON t1(g+h,
409ba14c69bSdan|   3904: 6a 2c 6b 29 50 02 06 17 2b 2b 01 59 74 61 62 6c   j,k)P...++.Ytabl
410ba14c69bSdan|   3920: 65 73 71 6c 69 74 65 5f 73 65 71 75 65 6e 63 65   esqlite_sequence
411ba14c69bSdan|   3936: 73 71 6c 69 74 65 5f 73 65 71 75 65 6e 63 65 04   sqlite_sequence.
412ba14c69bSdan|   3952: 43 52 45 41 54 45 20 54 41 42 4c 45 20 73 71 6c   CREATE TABLE sql
413ba14c69bSdan|   3968: 69 74 65 5f 73 65 71 75 65 6e 63 65 28 6e 61 6d   ite_sequence(nam
414ba14c69bSdan|   3984: 65 2c 73 65 71 29 68 01 07 17 11 11 01 81 3b 74   e,seq)h.......;t
415ba14c69bSdan|   4000: 61 62 6c 65 74 31 74 31 03 43 52 45 41 54 45 20   ablet1t1.CREATE
416ba14c69bSdan|   4016: 54 41 42 4c 45 20 74 31 28 61 20 49 4e 54 45 47   TABLE t1(a INTEG
417ba14c69bSdan|   4032: 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20 41   ER PRIMARY KEY A
418ba14c69bSdan|   4048: 55 54 4f 49 4e 43 52 45 4d 45 4e 54 2c 0a 62 2c   UTOINCREMENT,.b,
419ba14c69bSdan|   4064: 63 2c 64 2c 65 2c 66 2c 67 2c 68 2c 6a 2c 6b 2c   c,d,e,f,g,h,j,k,
420ba14c69bSdan|   4080: 6c 2c 6d 2c 6e 2c 6f 2c 70 2c 71 2c 72 2c 73 29   l,m,n,o,p,q,r,s)
421ba14c69bSdan| page 2 offset 4096
422ba14c69bSdan|      0: 01 00 00 00 00 01 00 00 00 00 01 00 00 00 00 01   ................
423ba14c69bSdan|     16: 00 00 00 00 02 10 00 00 00 05 00 00 00 03 02 00   ................
424ba14c69bSdan|     32: 00 00 00 05 00 00 00 03 02 00 00 00 00 05 00 00   ................
425ba14c69bSdan|     48: 00 03 02 00 00 00 00 05 00 00 00 03 02 00 00 00   ................
426ba14c69bSdan|     64: 00 05 00 00 00 03 02 00 00 00 00 05 00 00 00 03   ................
427ba14c69bSdan|     80: 02 00 00 00 00 05 00 00 00 03 02 00 00 00 00 05   ................
428ba14c69bSdan|     96: 00 00 00 03 02 00 00 00 00 05 00 00 00 03 05 00   ................
429ba14c69bSdan|    112: 00 00 03 03 00 00 00 23 02 00 00 00 00 03 00 00   .......#........
430ba14c69bSdan|    128: 00 23 02 00 00 00 00 03 00 00 00 23 02 00 00 00   .#.........#....
431ba14c69bSdan|    144: 00 03 00 00 00 23 02 00 00 00 00 03 00 00 00 23   .....#.........#
432ba14c69bSdan|    160: 05 00 00 00 06 05 00 00 00 06 02 00 00 00 00 03   ................
433ba14c69bSdan|    176: 00 00 00 06 02 00 00 00 00 03 00 00 00 24 02 00   .............$..
434ba14c69bSdan|    192: 00 00 00 03 00 00 00 24 02 00 00 00 00 03 00 00   .......$........
435ba14c69bSdan|    208: 00 24 02 00 00 00 00 02 00 00 00 00 03 00 00 00   .$..............
436ba14c69bSdan|    224: 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   $...............
437ba14c69bSdan| page 3 offset 8192
438ba14c69bSdan|      0: 05 00 00 00 09 0f d0 00 00 00 00 19 0f fb 0f f6   ................
439ba14c69bSdan|     16: 0f f1 0f ec 0f e7 0f e2 0f dc 0f d6 0f d0 0f a0   ................
440ba14c69bSdan|     32: 0f a0 0f a0 0f a0 0f a0 0f a0 0f a0 0f a0 0f a0   ................
441ba14c69bSdan|   1072: 00 97 4c 0a 14 00 ae 7c 00 00 00 00 00 00 00 00   ..L....|........
442ba14c69bSdan|   1088: 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 00   ................
443ba14c69bSdan|   4000: 0f ac 00 06 00 00 00 00 00 30 00 00 00 00 00 00   .........0......
444ba14c69bSdan|   4048: 00 00 00 16 81 2a 00 00 00 14 81 16 00 00 00 12   .....*..........
445ba14c69bSdan|   4064: 81 02 00 00 00 10 6e 00 00 00 0e 5a 00 00 00 0c   ......n....Z....
446ba14c69bSdan|   4080: 46 00 00 00 0a 32 00 00 00 08 1e 00 00 00 18 0a   F....2..........
447ba14c69bSdan| page 4 offset 12288
448ba14c69bSdan|      0: 0d 00 00 00 01 0f f7 00 0f f7 00 00 00 00 00 00   ................
449ba14c69bSdan|   4080: 00 00 00 00 00 00 00 07 01 03 11 02 74 31 00 be   ............t1..
450ba14c69bSdan| page 5 offset 16384
451ba14c69bSdan|      0: 0a 0f 7c 00 0a 0f 74 00 0f f9 0f eb 0f dd 0f cf   ..|...t.........
452ba14c69bSdan|     16: 0f c1 0f b3 0f a4 0f 94 0f 84 0f 74 0f 74 0f 74   ...........t.t.t
453ba14c69bSdan|     32: 0f 74 0f 74 0f 74 0f 74 0f 74 0f 74 0f 74 00 00   .t.t.t.t.t.t.t..
454ba14c69bSdan|   3952: 00 00 00 00 07 05 00 00 00 02 00 be 0f 8c 00 08   ................
455ba14c69bSdan|   3968: 00 00 00 00 07 05 00 00 00 02 00 aa 0f 9c 00 08   ................
456ba14c69bSdan|   3984: 00 00 00 00 07 05 00 00 00 02 00 96 0f ac 00 08   ................
457ba14c69bSdan|   4000: 00 00 00 00 07 05 00 00 00 02 00 82 0f ba 00 07   ................
458ba14c69bSdan|   4016: 00 00 00 06 05 00 00 00 01 6e 0f c8 00 07 00 00   .........n......
459ba14c69bSdan|   4032: 00 06 05 00 00 00 01 5a 0f d6 00 07 00 00 00 06   .......Z........
460ba14c69bSdan|   4048: 05 00 00 00 01 46 0f e4 00 07 00 00 00 06 05 00   .....F..........
461ba14c69bSdan|   4064: 00 00 01 32 0f f2 00 07 00 00 00 06 05 00 00 00   ...2............
462ba14c69bSdan|   4080: 01 1e 00 00 00 07 00 00 00 06 05 00 00 00 01 0a   ................
463ba14c69bSdan| page 6 offset 20480
464ba14c69bSdan|      0: 02 00 00 00 01 0e 0d 00 00 00 00 24 0e 0d 0c 1a   ...........$....
465ba14c69bSdan|     16: 06 55 04 66 02 77 00 88 00 00 00 00 00 00 00 00   .U.f.w..........
466ba14c69bSdan|    128: 00 00 00 00 00 00 00 00 97 3d 04 ae 7c 01 00 00   .........=..|...
467ba14c69bSdan|    624: 00 00 00 00 00 00 21 97 3d 04 ae 7c 01 00 00 00   ......!.=..|....
468ba14c69bSdan|   1120: 00 00 00 00 00 20 97 3d 04 ae 7c 01 00 00 00 00   ..... .=..|.....
469ba14c69bSdan|   1616: 00 00 00 00 1f 97 3d 04 ae 7c 01 00 00 00 00 00   ......=..|......
470ba14c69bSdan|   2112: 00 00 00 1e 97 3d 04 ae 7c 01 00 00 00 00 00 00   .....=..|.......
471ba14c69bSdan|   2608: 00 00 1d 97 3d 04 ae 7c 01 00 00 00 00 00 00 00   ....=..|........
472ba14c69bSdan|   3088: 00 00 00 00 00 00 00 00 00 00 00 00 01 f3 00 00   ................
473ba14c69bSdan|   3600: 23 97 3d 04 ae 7c 01 00 00 00 00 00 00 00 00 00   #.=..|..........
474ba14c69bSdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26   ...............&
475ba14c69bSdan| page 8 offset 28672
476ba14c69bSdan|      0: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00   ......0..0......
477ba14c69bSdan|   1072: 97 4d 1e 14 00 ae 7c 00 00 00 00 00 00 00 00 00   .M....|.........
478ba14c69bSdan|   1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00   ................
479ba14c69bSdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03   ................
480ba14c69bSdan| page 10 offset 36864
481ba14c69bSdan|    256: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00   ......0..0......
482ba14c69bSdan|   1072: 97 4d 32 14 00 ae 7c 00 00 00 00 00 00 00 00 00   .M2...|.........
483ba14c69bSdan|   1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00   ................
484ba14c69bSdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05   ................
485ba14c69bSdan| page 12 offset 45056
486ba14c69bSdan|      0: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00   ......0..0......
487ba14c69bSdan|   1072: 97 4d 46 14 00 ae 7c 00 00 00 00 00 00 00 00 00   .MF...|.........
488ba14c69bSdan|   1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00   ................
489ba14c69bSdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07   ................
490ba14c69bSdan| page 14 offset 53248
491ba14c69bSdan|      0: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00   ......0..0......
492ba14c69bSdan|   1072: 97 4d 5a 14 00 ae 7c 00 00 00 00 00 00 00 00 00   .MZ...|.........
493ba14c69bSdan|   1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00   ................
494ba14c69bSdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09   ................
495ba14c69bSdan| page 16 offset 61440
496ba14c69bSdan|      0: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00   ......0..0......
497ba14c69bSdan|   1072: 97 4d 6e 14 00 ae 7c 00 00 00 00 00 00 00 00 00   .Mn...|.........
498ba14c69bSdan|   1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00   ................
499ba14c69bSdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b   ................
500ba14c69bSdan| page 18 offset 69632
501ba14c69bSdan|      0: 0d 00 00 00 01 04 2f 00 04 2f 00 00 00 00 00 00   ....../../......
502ba14c69bSdan|   1056: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97   ................
503ba14c69bSdan|   1072: 4d 81 02 14 00 ae 7c 00 00 00 00 00 00 00 00 00   M.....|.........
504ba14c69bSdan|   1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00   ................
505ba14c69bSdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d   ................
506ba14c69bSdan| page 20 offset 77824
507ba14c69bSdan|      0: 0d 00 00 00 01 04 2f 00 04 2f 00 00 00 00 00 00   ....../../......
508ba14c69bSdan|   1056: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97   ................
509ba14c69bSdan|   1072: 4d 81 16 14 00 ae 7c 00 00 00 00 00 00 00 00 00   M.....|.........
510ba14c69bSdan|   1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00   ................
511ba14c69bSdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f   ................
512ba14c69bSdan| page 22 offset 86016
513ba14c69bSdan|      0: 0d 00 00 00 01 04 2f 00 04 2f 00 00 00 00 00 00   ....../../......
514ba14c69bSdan|   1056: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97   ................
515ba14c69bSdan|   1072: 4d 81 2a 14 00 ae 7c 00 00 00 00 00 00 00 00 00   M.*...|.........
516ba14c69bSdan|   1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00   ................
517ba14c69bSdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11   ................
518ba14c69bSdan| page 24 offset 94208
519ba14c69bSdan|      0: 0d 00 00 00 01 04 31 00 04 31 00 00 00 00 00 00   ......1..1......
520ba14c69bSdan|   1072: 00 97 4c 0a 14 00 ae 7c 00 00 00 00 00 00 00 00   ..L....|........
521ba14c69bSdan|   1088: 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 00   ................
522ba14c69bSdan| page 25 offset 98304
523ba14c69bSdan|      0: 0d 00 00 00 01 04 2f 00 04 2f 00 00 00 00 00 00   ....../../......
524ba14c69bSdan|   1056: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97   ................
525ba14c69bSdan|   1072: 4d 81 3e 14 00 ae 7c 00 00 00 00 00 00 00 00 00   M.>...|.........
526ba14c69bSdan|   1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00   ................
527ba14c69bSdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13   ................
528ba14c69bSdan| page 26 offset 102400
529ba14c69bSdan|   2512: 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 00   ................
530ba14c69bSdan| page 27 offset 106496
531ba14c69bSdan|      0: 00 00 00 00 00 00 00 12 00 00 00 07 00 00 00 1d   ................
532ba14c69bSdan|     16: 00 00 00 09 00 00 00 1f 00 00 00 0b 00 00 00 21   ...............!
533ba14c69bSdan|     32: 00 00 00 0d 00 00 00 25 00 00 00 0f 00 00 00 19   .......%........
534ba14c69bSdan|     48: 00 00 00 11 00 00 00 29 00 00 00 13 00 00 00 2b   .......).......+
535ba14c69bSdan|     64: 00 00 00 15 00 00 00 2d 00 00 00 2e 00 00 00 17   .......-........
536ba14c69bSdan| page 28 offset 110592
537ba14c69bSdan|   2512: 00 00 00 00 00 00 00 1e 00 00 00 00 00 00 00 00   ................
538ba14c69bSdan| page 30 offset 118784
539ba14c69bSdan|   2512: 00 00 00 00 00 00 00 32 00 00 00 00 00 00 00 00   .......2........
540ba14c69bSdan| page 32 offset 126976
541ba14c69bSdan|   2512: 00 00 00 00 00 00 00 46 00 00 00 00 00 00 00 00   .......F........
542ba14c69bSdan| page 34 offset 135168
543ba14c69bSdan|   2512: 00 00 00 00 00 00 00 5a 00 00 00 00 00 00 00 00   .......Z........
544ba14c69bSdan| page 35 offset 139264
545ba14c69bSdan|      0: 0a 08 44 00 05 02 77 00 0e 11 0a 33 06 55 02 77   ..D...w....3.U.w
546ba14c69bSdan|     16: 04 66 00 88 00 88 00 88 00 00 00 00 00 00 00 00   .f..............
547ba14c69bSdan|    128: 00 00 00 00 00 00 00 00 04 66 01 ef 00 00 00 00   .........f......
548ba14c69bSdan|    624: 00 00 00 00 00 00 00 97 3d 04 ae 7c 01 00 00 00   ........=..|....
549ba14c69bSdan|   1120: 00 00 00 00 00 20 97 3d 04 ae 7c 01 00 00 00 00   ..... .=..|.....
550ba14c69bSdan|   1616: 00 00 00 00 22 97 3d 04 ae 7c 01 00 00 00 00 00   ......=..|......
551ba14c69bSdan|   2112: 00 00 00 1e 0c 22 01 ef 00 00 00 00 00 00 00 00   ................
552ba14c69bSdan|   2608: 00 00 00 97 3d 04 ae 7c 01 00 00 00 00 00 00 00   ....=..|........
553ba14c69bSdan|   3104: 00 1c 00 00 01 ef 00 00 00 00 00 00 00 00 00 00   ................
554ba14c69bSdan|   3600: 00 97 3d 04 ae 7c 01 00 00 00 00 00 00 00 00 00   ..=..|..........
555ba14c69bSdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a   ................
556ba14c69bSdan| page 36 offset 143360
557ba14c69bSdan|      0: 0a 08 44 00 04 02 77 00 06 55 02 77 04 66 0e 11   ..D...w..U.w.f..
558ba14c69bSdan|     16: 00 88 00 88 00 88 0e 11 00 00 00 00 00 00 00 00   ................
559ba14c69bSdan|    128: 00 00 00 00 00 00 00 00 04 76 01 ef 00 00 00 00   .........v......
560ba14c69bSdan|    624: 00 00 00 00 00 00 00 97 3e 04 ae 7c 02 00 00 00   ........>..|....
561ba14c69bSdan|   1120: 00 00 00 00 00 2a 97 3e 04 ae 7c 02 00 00 00 00   .....*.>..|.....
562ba14c69bSdan|   1616: 00 00 00 00 2c 97 3e 04 ae 7c 02 00 00 00 00 00   ....,.>..|......
563ba14c69bSdan|   2112: 00 00 00 28 00 00 05 cd 00 00 00 00 00 00 00 00   ...(............
564ba14c69bSdan|   3600: 00 97 3e 04 ae 7c 02 00 00 00 00 00 00 00 00 00   ..>..|..........
565ba14c69bSdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2f   .............../
566ba14c69bSdan| page 38 offset 151552
567ba14c69bSdan|   2512: 00 00 00 00 00 00 00 6e 00 00 00 00 00 00 00 00   .......n........
568ba14c69bSdan| page 40 offset 159744
569ba14c69bSdan|   2512: 00 00 00 00 00 00 00 00 82 00 00 00 00 00 00 00   ................
570ba14c69bSdan| page 42 offset 167936
571ba14c69bSdan|   2512: 00 00 00 00 00 00 00 00 96 00 00 00 00 00 00 00   ................
572ba14c69bSdan| page 44 offset 176128
573ba14c69bSdan|   2512: 00 00 00 00 00 00 00 00 aa 00 00 00 00 00 00 00   ................
574ba14c69bSdan| page 47 offset 188416
575ba14c69bSdan|   2512: 00 00 00 00 00 00 00 00 be 00 00 00 00 00 00 00   ................
576ba14c69bSdan| end crash-9ae5502296c949.db
577ba14c69bSdan}]} {}
578ba14c69bSdan
579ba14c69bSdando_catchsql_test 5.1 {
580ba14c69bSdan  INSERT INTO t1(b) VALUES(zeroblob(40000));
581ba14c69bSdan} {1 {database disk image is malformed}}
582ba14c69bSdan
583ba14c69bSdando_catchsql_test 5.2 {
584ba14c69bSdan  DROP INDEX t1x2;
585ba14c69bSdan} {0 {}}
586ba14c69bSdan
587ba14c69bSdando_catchsql_test 5.3 {
588ba14c69bSdan  INSERT INTO t1(b) VALUES(zeroblob(40000));
589ba14c69bSdan} {1 {database disk image is malformed}}
590ba14c69bSdan
59156b99ebcSdan#-------------------------------------------------------------------------
59256b99ebcSdanreset_db
59356b99ebcSdando_test 6.0 {
59456b99ebcSdan  sqlite3 db {}
59556b99ebcSdan  db deserialize [decode_hexdb {
59656b99ebcSdan| size 20480 pagesize 4096 filename crash-d260f001fa015c.db
59756b99ebcSdan| page 1 offset 0
59856b99ebcSdan|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
59956b99ebcSdan|     16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 05   .....@  ........
60056b99ebcSdan|     32: 00 00 00 00 00 ff ff f0 00 00 00 02 00 00 00 04   ................
60156b99ebcSdan|     48: 00 00 00 00 00 00 00 64 00 00 00 01 00 00 00 00   .......d........
60256b99ebcSdan|     96: 00 00 00 00 0d 0f f8 00 04 0e ce 00 0f 4c 0f d3   .............L..
60356b99ebcSdan|    112: 0e fa 0e ce 00 00 00 00 00 00 00 00 00 00 00 00   ................
60456b99ebcSdan|   3776: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2a 04   ..............*.
60556b99ebcSdan|   3792: 06 17 13 11 01 3f 69 6e 64 65 78 74 31 62 74 31   .....?indext1bt1
60656b99ebcSdan|   3808: 05 43 52 45 41 54 45 20 49 4e 44 45 58 20 74 31   .CREATE INDEX t1
60756b99ebcSdan|   3824: 62 20 4f 4e 20 74 31 28 62 29 50 03 06 17 2b 2b   b ON t1(b)P...++
60856b99ebcSdan|   3840: 01 59 74 61 62 6c 65 73 71 6c 69 74 65 5f 73 65   .Ytablesqlite_se
60956b99ebcSdan|   3856: 71 75 65 6e 63 65 73 71 6c 69 74 65 5f 73 65 71   quencesqlite_seq
61056b99ebcSdan|   3872: 75 65 6e 63 65 04 43 52 45 41 54 45 20 54 41 42   uence.CREATE TAB
61156b99ebcSdan|   3888: 4c 45 20 73 71 6c 69 74 65 5f 73 65 71 75 65 6e   LE sqlite_sequen
61256b99ebcSdan|   3904: 63 65 28 6e 61 6d 65 2c 73 65 71 29 81 04 01 07   ce(name,seq)....
613c5a93d4cSdrh|   3920: 17 11 11 01 81 73 74 61 62 6c 65 74 31 74 31 02   .....stablet1t1.
61456b99ebcSdan|   3936: 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 31 28   CREATE TABLE t1(
61556b99ebcSdan|   3952: 61 20 52 45 41 4c 20 4e 4f 54 20 4e 55 4c 4c 20   a REAL NOT NULL
61656b99ebcSdan|   3968: 44 45 46 41 55 4c 54 28 32 35 2b 33 32 29 2c 62   DEFAULT(25+32),b
61756b99ebcSdan|   3984: 20 46 4c 4f 41 54 2c 63 20 44 4f 55 42 4c 45 20    FLOAT,c DOUBLE
61856b99ebcSdan|   4000: 55 4e 49 51 55 45 2c 0a 64 20 43 4c 4f 42 2c 65   UNIQUE,.d CLOB,e
61956b99ebcSdan|   4016: 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59    INTEGER PRIMARY
62056b99ebcSdan|   4032: 20 4b 45 59 20 41 55 54 4f 49 4e 43 52 45 4d 45    KEY AUTOINCREME
62156b99ebcSdan|   4048: 4e 54 29 23 02 06 17 37 11 01 00 69 6e 64 65 78   NT)#...7...index
62256b99ebcSdan|   4064: 73 71 6c 69 74 65 5f 61 75 74 6f 69 6e 64 65 78   sqlite_autoindex
62356b99ebcSdan|   4080: 5f 74 31 5f 31 74 31 05 00 00 00 08 00 00 00 00   _t1_1t1.........
62456b99ebcSdan| page 2 offset 4096
62556b99ebcSdan|      0: 0d 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00   ................
62656b99ebcSdan| page 3 offset 8192
62756b99ebcSdan|      0: 0a 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00   ................
62856b99ebcSdan| page 4 offset 12288
62956b99ebcSdan|      0: 0d 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00   ................
63056b99ebcSdan| page 5 offset 16384
63156b99ebcSdan|      0: 0a 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00   ................
63256b99ebcSdan| end crash-d260f001fa015c.db
63356b99ebcSdan}]} {}
634ba14c69bSdan
63556b99ebcSdando_catchsql_test 6.1 {
63656b99ebcSdan  BEGIN;
63756b99ebcSdan    INSERT INTO t1(b) VALUES(1);
63856b99ebcSdan    INSERT INTO t1(b) VALUES(2);
63956b99ebcSdan  COMMIT;
64056b99ebcSdan} {1 {malformed database schema (t1b) - invalid rootpage}}
641ba14c69bSdan
642da7a4c0fSdan#-------------------------------------------------------------------------
643da7a4c0fSdanreset_db
644da7a4c0fSdando_test 7.0 {
645da7a4c0fSdan  sqlite3 db {}
646da7a4c0fSdan  db deserialize [decode_hexdb {
647da7a4c0fSdan| size 20480 pagesize 4096 filename crash-8391315d75edff.db
648da7a4c0fSdan| page 1 offset 0
649da7a4c0fSdan|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
650da7a4c0fSdan|     16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 05   .....@  ........
651da7a4c0fSdan|     32: 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 04   ................
652da7a4c0fSdan|     48: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00   ................
653da7a4c0fSdan|     96: 00 00 00 00 0d 00 00 00 05 0e 55 00 0f 74 0f 3c   ..........U..t.<
654da7a4c0fSdan|    112: 0e f9 0e d1 0e 55 00 00 00 00 00 00 00 00 00 00   .....U..........
655da7a4c0fSdan|   3664: 00 00 00 00 00 7a 05 07 15 11 11 08 81 63 76 69   .....z.......cvi
656da7a4c0fSdan|   3680: 65 77 76 31 76 31 43 52 45 41 54 45 20 56 49 45   ewv1v1CREATE VIE
657da7a4c0fSdan|   3696: 57 20 76 31 28 78 2c 69 29 20 41 53 0a 53 45 4c   W v1(x,i) AS.SEL
658da7a4c0fSdan|   3712: 45 43 54 20 74 31 2e 62 2c 74 32 2e 62 20 46 52   ECT t1.b,t2.b FR
659da7a4c0fSdan|   3728: 4f 4d 20 74 31 2c 74 32 20 57 48 45 52 45 20 74   OM t1,t2 WHERE t
660da7a4c0fSdan|   3744: 31 2e 61 3d 74 32 2e 61 20 47 52 4f 55 50 20 42   1.a=t2.a GROUP B
661da7a4c0fSdan|   3760: 59 20 31 20 48 41 56 49 4e 47 20 74 32 2e 63 20   Y 1 HAVING t2.c
662da7a4c0fSdan|   3776: 4e 4f 54 20 4e 55 4c 4c 0a 4c 49 4d 49 54 20 31   NOT NULL.LIMIT 1
663da7a4c0fSdan|   3792: 30 26 04 06 17 11 11 01 39 74 61 62 6c 65 74 32   0&......9tablet2
664da7a4c0fSdan|   3808: 74 32 05 43 52 45 41 54 45 20 54 41 42 4c 45 20   t2.CREATE TABLE
665da7a4c0fSdan|   3824: 74 32 28 61 2c 62 2c 63 29 41 03 06 17 15 11 01   t2(a,b,c)A......
666da7a4c0fSdan|   3840: 6b 69 6e 64 65 78 74 31 78 31 74 31 03 43 52 45   kindext1x1t1.CRE
667da7a4c0fSdan|   3856: 41 54 45 20 49 4e 44 45 58 20 74 31 78 31 20 4f   ATE INDEX t1x1 O
668da7a4c0fSdan|   3872: 4e 20 74 31 28 64 29 20 57 48 45 52 45 20 65 65   N t1(d) WHERE ee
669da7a4c0fSdan|   3888: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 36 02 06 17    IS NOT NULL6...
670da7a4c0fSdan|   3904: 17 11 01 53 69 6e 64 65 78 74 31 61 62 63 74 31   ...Sindext1abct1
671da7a4c0fSdan|   3920: 03 43 52 45 41 54 45 20 49 4e 44 45 58 20 74 31   .CREATE INDEX t1
672da7a4c0fSdan|   3936: 61 62 63 20 4f 4e 20 74 31 28 61 2c 62 2c 63 2b   abc ON t1(a,b,c+
673da7a4c0fSdan|   3952: 64 2b 65 29 81 09 01 07 17 11 11 01 81 7d 74 61   d+e)..........ta
674da7a4c0fSdan|   3968: 62 6c 65 74 31 74 31 02 43 52 45 41 54 45 20 54   blet1t1.CREATE T
675da7a4c0fSdan|   3984: 41 42 4c 45 20 74 31 28 61 2c 62 2c 63 2c 64 2c   ABLE t1(a,b,c,d,
676da7a4c0fSdan|   4000: 65 2c 66 2c 67 2c 68 2c 6a 2c 6a 6a 2c 6a 6a 6a   e,f,g,h,j,jj,jjj
677da7a4c0fSdan|   4016: 2c 6b 2c 61 61 2c 62 69 8c 63 63 2c 64 64 2c 65   ,k,aa,bi.cc,dd,e
678da7a4c0fSdan|   4032: 65 20 44 45 46 41 55 4c 54 20 33 2e 31 34 2c 0a   e DEFAULT 3.14,.
679da7a4c0fSdan|   4048: 66 66 20 44 45 46 41 55 4c 54 28 27 68 69 63 63   ff DEFAULT('hicc
680da7a4c0fSdan|   4064: 75 70 27 29 2c 67 67 20 4e 4f 54 20 4e 55 4c 4c   up'),gg NOT NULL
681da7a4c0fSdan|   4080: 20 44 45 46 41 55 4c 54 28 66 61 6c 73 65 29 29    DEFAULT(false))
682da7a4c0fSdan| page 2 offset 4096
683da7a4c0fSdan|      0: 0d 00 00 00 0a 0e 7b 00 0f dc 0f b6 0f 8f 0f 68   ...............h
684da7a4c0fSdan|     16: 0f 41 0f 1a 0e f3 0e cb 0e a3 0e 22 00 00 00 00   .A..............
685da7a4c0fSdan|   3696: 00 00 00 00 00 00 00 00 00 00 00 26 0a 14 01 01   ...........&....
686da7a4c0fSdan|   3712: 02 08 00 00 00 00 00 00 00 00 00 00 00 00 07 19   ................
687da7a4c0fSdan|   3728: 08 09 5a 00 b4 40 09 1e b8 51 eb 95 1f 68 69 63   [email protected]
688da7a4c0fSdan|   3744: 63 75 70 26 09 14 01 01 02 08 00 00 00 00 00 00   cup&............
689da7a4c0fSdan|   3760: 00 00 00 00 00 00 07 19 08 08 50 00 a0 40 09 1e   ..........P..@..
690da7a4c0fSdan|   3776: b8 51 eb 85 1f 68 69 63 63 74 70 26 08 14 01 01   .Q...hicctp&....
691da7a4c0fSdan|   3792: 03 08 00 00 00 00 00 00 00 00 00 00 00 00 07 19   ................
692da7a4c0fSdan|   3808: 08 07 46 00 8c 40 09 1e b8 51 eb 85 1f 68 69 63   [email protected]
693da7a4c0fSdan|   3824: 63 75 70 25 07 14 01 01 01 08 00 00 00 00 00 00   cup%............
694da7a4c0fSdan|   3840: 00 00 00 00 00 10 07 19 08 06 3c 78 40 09 1e b8   ..........<x@...
695da7a4c0fSdan|   3856: 51 eb 85 1f 68 69 63 63 75 70 25 06 14 01 01 01   Q...hiccup%.....
696da7a4c0fSdan|   3872: 08 00 00 00 00 00 00 00 00 00 00 00 00 07 19 08   ................
697da7a4c0fSdan|   3888: 05 32 64 40 09 1e b8 51 eb 85 1f 68 69 63 63 75   [email protected]
698da7a4c0fSdan|   3904: 70 25 05 14 01 01 01 08 00 00 00 00 00 00 00 00   p%..............
699da7a4c0fSdan|   3920: 00 00 00 00 07 19 08 04 28 50 40 09 1e b8 51 eb   ........([email protected].
700da7a4c0fSdan|   3936: 85 1f 68 69 63 63 75 70 25 04 14 01 00 f1 08 00   ..hiccup%.......
701da7a4c0fSdan|   3952: 00 00 00 00 00 00 00 00 00 00 00 07 19 08 03 1e   ................
702da7a4c0fSdan|   3968: 3c 40 09 1e b8 51 eb 85 1f 68 69 63 63 75 70 25   <@...Q...hiccup%
703da7a4c0fSdan|   3984: 03 14 01 01 01 08 00 00 00 00 00 00 00 00 00 00   ................
704da7a4c0fSdan|   4000: 00 00 07 19 08 02 14 28 40 09 1e b8 51 eb 85 1f   .......(@...Q...
705da7a4c0fSdan|   4016: 68 69 63 63 75 70 24 02 14 09 01 01 08 00 00 00   hiccup$.........
706da7a4c0fSdan|   4032: 00 00 00 00 00 00 00 00 00 07 19 08 0a 14 40 09   ..............@.
707da7a4c0fSdan|   4048: 1e b8 51 eb 85 1f 68 69 63 63 75 70 22 01 14 08   ..Q...hiccup....
708da7a4c0fSdan|   4064: 08 08 08 00 00 00 00 00 00 00 00 00 00 00 00 07   ................
709da7a4c0fSdan|   4080: 19 08 40 09 1e b8 51 eb 85 1f 68 69 63 63 75 70   [email protected]
710da7a4c0fSdan| page 3 offset 8192
711da7a4c0fSdan|      0: 0a 00 00 00 0a 0f aa 00 0f fa 0f f2 0f e9 0f e0   ................
712da7a4c0fSdan|     16: 0f d7 0f ce 0f c5 0f bc 0f b3 0f aa 00 00 00 00   ................
713da7a4c0fSdan|   4000: 00 00 00 00 00 00 00 00 00 00 08 05 01 01 00 01   ................
714da7a4c0fSdan|   4016: 09 5a 0a d8 05 01 01 00 01 08 50 09 08 05 01 01   .Z........P.....
715da7a4c0fSdan|   4032: 00 01 07 46 08 08 05 01 01 00 01 06 3c 07 08 05   ...F........<...
716da7a4c0fSdan|   4048: 01 01 00 01 05 32 06 08 05 01 01 00 01 04 28 05   .....2........(.
717da7a4c0fSdan|   4064: 08 05 01 02 60 01 03 1e 04 08 05 01 01 00 01 02   ....`...........
718da7a4c0fSdan|   4080: 14 03 07 05 09 01 00 01 0a 02 05 05 08 08 00 09   ................
719da7a4c0fSdan| page 4 offset 12288
720da7a4c0fSdan|      0: 0a 00 00 00 0a 0f cf 00 0f fc 0f f7 0f f2 0f ed   ................
721da7a4c0fSdan|     16: 0f e8 0f e3 0f de 0f d9 0f d4 0f cf 00 00 00 00   ................
722da7a4c0fSdan|   4032: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04   ................
723da7a4c0fSdan|   4048: 03 08 01 0a 04 03 08 01 09 04 03 08 01 08 04 03   ................
724da7a4c0fSdan|   4064: 08 01 07 04 03 08 01 06 04 03 08 01 05 04 03 08   ................
725da7a4c0fSdan|   4080: 01 04 04 03 08 01 03 04 03 08 01 02 03 03 08 09   ................
726da7a4c0fSdan| page 5 offset 16384
727da7a4c0fSdan|      0: 0d 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00   ................
728da7a4c0fSdan| end crash-8391315d75edff.db
729da7a4c0fSdan}]} {}
730da7a4c0fSdan
731da7a4c0fSdando_catchsql_test 7.1 {
732da7a4c0fSdan  SELECT * FROM sqlite_master;
733da7a4c0fSdan} {1 {malformed database schema (t1x1) - invalid rootpage}}
734da7a4c0fSdan
735dcc427cfSdan#-------------------------------------------------------------------------
736dcc427cfSdanreset_db
737dcc427cfSdando_test 8.0 {
738dcc427cfSdan  sqlite3 db {}
739dcc427cfSdan  db deserialize [decode_hexdb {
740dcc427cfSdan| size 2048 pagesize 512 filename a.db
741dcc427cfSdan| page 1 offset 0
742dcc427cfSdan|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
743dcc427cfSdan|     16: 02 00 01 01 00 40 20 20 ff ff 00 0c 00 00 00 07   .....@  ........
744dcc427cfSdan|     32: 0b 00 00 00 00 00 00 00 00 00 00 08 9c 00 00 04   ................
745dcc427cfSdan|     48: 00 00 00 e0 09 00 00 01 00 00 00 01 00 00 00 00   ................
746dcc427cfSdan|     64: 00 00 00 00 f2 ff 00 00 00 00 00 00 00 00 00 00   ................
747dcc427cfSdan|     80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c   ................
748dcc427cfSdan|     96: 00 2e 2c 50 0d 00 00 00 06 01 06 00 01 da 01 b0   ..,P............
749dcc427cfSdan|    112: 05 56 01 86 01 2a 01 06 00 00 00 00 00 06 00 00   .V...*..........
750dcc427cfSdan|    128: 00 ff 00 00 ff ff ff e1 00 00 00 00 00 00 00 00   ................
751dcc427cfSdan|    144: 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00   ................
752dcc427cfSdan|    160: 00 00 00 00 00 00 00 00 f2 00 00 00 00 00 00 00   ................
753dcc427cfSdan|    176: 00 00 f9 ff ff ff ff ff ff ff 00 00 00 5f 00 fb   ............._..
754dcc427cfSdan|    192: 00 00 00 00 00 00 00 00 00 e1 ff 00 00 00 00 00   ................
755dcc427cfSdan|    208: 00 00 10 00 00 00 00 00 1e 00 00 00 fe 00 00 00   ................
756dcc427cfSdan|    224: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ca 00   ................
757dcc427cfSdan|    240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35   ...............5
758dcc427cfSdan|    256: 00 00 00 00 ef ff 22 07 06 17 11 11 01 30 39 38   .............098
759dcc427cfSdan|    272: 62 6c 65 74 38 38 74 04 43 52 45 41 54 45 20 54   blet88t.CREATE T
760dcc427cfSdan|    288: 41 42 4c 45 20 74 34 28 87 29 2a 06 06 17 13 11   ABLE t4(.)*.....
761dcc427cfSdan|    304: 01 3f 69 4f 64 65 78 74 33 78 74 40 05 43 52 45   [email protected]
762dcc427cfSdan|    320: 41 54 45 20 49 6e 44 45 58 20 74 33 78 20 4f 4e   ATE InDEX t3x ON
763dcc427cfSdan|    336: 20 74 33 28 78 29 2e 04 06 17 15 11 01 45 69 6e    t3(x).......Ein
764dcc427cfSdan|    352: 00 04 00 00 34 63 64 74 3d 05 43 52 45 41 54 45   ....4cdt=.CREATE
765dcc427cfSdan|    368: 20 49 4e 44 45 58 20 63 74 64 32 20 4f 4e 20 74    INDEX ctd2 ON t
766dcc427cfSdan|    384: 32 28 0a 0c 44 29 28 05 06 17 11 11 01 3d 74 6c   2(..D)(......=tl
767dcc427cfSdan|    400: 62 61 d4 65 33 74 33 04 43 52 45 41 54 45 20 54   ba.e3t3.CREATE T
768dcc427cfSdan|    416: 41 42 4c 45 20 74 33 28 63 2c 78 2c 65 2c 66 29   ABLE t3(c,x,e,f)
769dcc427cfSdan|    432: 28 02 06 17 11 11 01 3d 74 61 62 6c 65 74 32 74   (......=tablet2t
770dcc427cfSdan|    448: 32 03 43 52 45 41 54 45 20 54 41 42 4c 45 20 74   2.CREATE TABLE t
771dcc427cfSdan|    464: 32 28 63 2c 64 2c 65 2c 66 29 24 01 06 17 11 11   2(c,d,e,f)$.....
772dcc427cfSdan|    480: 01 35 74 60 62 6c 65 74 31 74 31 02 43 52 45 41   .5t`blet1t1.CREA
773dcc427cfSdan|    496: 54 45 20 54 41 42 4c 45 20 74 30 28 61 2c 62 29   TE TABLE t0(a,b)
774dcc427cfSdan| page 2 offset 512
775dcc427cfSdan|      0: 0d 00 ff 11 04 01 cf 80 01 fa 01 09 00 de 01 cf   ................
776dcc427cfSdan|     16: 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00   ................
777dcc427cfSdan|     32: 00 00 08 00 00 00 00 00 00 11 00 00 00 00 00 13   ................
778dcc427cfSdan|     48: 00 00 00 00 00 00 00 00 00 00 00 01 00 e0 ff ff   ................
779dcc427cfSdan|     64: ff d2 ff ff ff 00 f8 ff ff ff 00 00 00 00 00 00   ................
780dcc427cfSdan|     80: 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
781dcc427cfSdan|     96: 00 00 00 00 ff de 00 00 00 00 00 00 00 00 00 00   ................
782dcc427cfSdan|    112: 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00   .............@..
783dcc427cfSdan|    128: 2a 00 00 00 00 00 00 00 00 f7 00 00 00 00 00 00   *...............
784dcc427cfSdan|    144: 00 00 00 00 00 21 00 00 00 00 00 00 00 00 00 00   .....!..........
785dcc427cfSdan|    160: 01 64 00 00 00 00 04 80 ff ff ff 00 00 00 00 00   .d..............
786dcc427cfSdan|    176: 00 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 00   ................
787dcc427cfSdan|    192: 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00   ..@.............
788dcc427cfSdan|    208: b5 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00   .......@........
789dcc427cfSdan|    224: 00 00 00 f6 00 ee ff ff ff 00 00 00 00 00 00 00   ................
790dcc427cfSdan|    272: f2 00 00 00 00 00 00 00 00 00 f9 ff ff ff ff ff   ................
791dcc427cfSdan|    288: ff ff 00 00 00 5f 00 fb 00 00 00 00 00 00 00 00   ....._..........
792dcc427cfSdan|    320: 1e 00 00 00 fe 00 00 00 00 00 00 00 00 00 00 00   ................
793dcc427cfSdan|    336: 00 00 00 00 00 00 ca 00 00 00 00 00 00 00 ff ec   ................
794dcc427cfSdan|    352: 00 00 00 00 00 00 00 32 00 00 00 00 ef ff 22 07   .......2........
795dcc427cfSdan|    368: 06 17 11 11 01 30 74 61 62 6c 65 74 38 38 74 04   .....0tablet88t.
796dcc427cfSdan|    384: 43 52 45 41 54 45 20 54 41 42 4c 45 20 8c cb d7   CREATE TABLE ...
797dcc427cfSdan|    400: 78 d6 d5 f9 f9 17 13 11 01 3f 69 4f 64 65 78 74   x........?iOdext
798dcc427cfSdan|    416: 33 78 74 33 05 43 52 45 41 54 45 26 49 6e 44 45   3xt3.CREATE&InDE
799dcc427cfSdan|    432: 58 20 74 33 78 00 00 00 00 00 00 00 00 00 00 00   X t3x...........
800dcc427cfSdan|    464: 00 00 00 00 00 13 76 65 6e 65 69 67 68 74 13 03   ......veneight..
801dcc427cfSdan|    480: 03 40 07 07 15 00 54 45 20 49 4e 44 45 58 20 74   [email protected] INDEX t
802dcc427cfSdan|    496: 31 63 64 20 4f 4e 20 74 ce d7 f5 f0 44 09 01 02   1cd ON t....D...
803dcc427cfSdan| page 3 offset 1024
804dcc427cfSdan|      0: 0d 00 00 00 48 01 54 00 01 f6 e2 ec 01 c5 01 aa   ....H.T.........
805dcc427cfSdan|     16: 30 34 28 87 29 32 06 f5 16 13 11 01 8e 61 24 64   04(.)2.......a$d
806dcc427cfSdan|     32: 65 78 74 37 78 1f 33 6d 6d 6d 6d 6d 00 00 04 06   ext7x.3mmmmm....
807dcc427cfSdan|     48: 6d 41 6d 6d 6e 6d 6d 00 00 02 00 6d 6d 6d 6d 6d   mAmmnmm....mmmmm
808dcc427cfSdan|     64: 15 11 01 45 45 45 45 45 45 45 45 45 45 45 45 45   ...EEEEEEEEEEEEE
809dcc427cfSdan|     80: 45 45 45 45 45 45 45 45 45 45 45 00 45 63 74 64   EEEEEEEEEEE.Ectd
810dcc427cfSdan|     96: 34 20 4f 4e 20 61 62 6c 5d 74 38 38 74 04 43 52   4 ON abl]t88t.CR
811dcc427cfSdan|    112: 45 41 54 45 20 54 41 42 4c 45 20 74 34 28 87 29   EATE TABLE t4(.)
812dcc427cfSdan|    128: 2a 06 06 13 13 01 00 00 00 4f 64 6e 78 74 33 44   *........Odnxt3D
813dcc427cfSdan|    144: 74 13 05 43 52 45 41 54 45 20 49 6e 44 45 00 00   t..CREATE InDE..
814dcc427cfSdan|    160: 00 00 00 00 00 00 00 f9 ff ff ff ff ff ff ff 00   ................
815dcc427cfSdan|    176: 00 00 5f 00 fb 00 00 2d 00 00 00 00 00 00 00 00   .._....-........
816dcc427cfSdan|    192: 00 00 00 00 00 00 00 00 00 00 00 00 00 1e 00 00   ................
817dcc427cfSdan|    208: 00 fe 00 00 00 00 17 15 11 01 45 69 6e 64 65 2e   ..........Einde.
818dcc427cfSdan|    224: 5b 38 63 64 74 3d 05 43 52 45 41 54 45 20 49 4e   [8cdt=.CREATE IN
819dcc427cfSdan|    240: 44 45 58 20 63 20 64 32 20 4f 4e 20 74 32 28 0a   DEX c d2 ON t2(.
820dcc427cfSdan|    256: 0c 44 32 05 00 10 00 00 11 11 3d 74 6c 62 61 d4   .D2.......=tlba.
821dcc427cfSdan|    272: 65 33 74 33 04 43 52 45 41 54 45 20 54 41 42 4c   e3t3.CREATE TABL
822dcc427cfSdan|    288: 45 20 74 36 ff ff 7f ff 43 52 45 41 54 45 20 49   E t6....CREATE I
823dcc427cfSdan|    304: 73 71 6c 69 74 65 5f 73 65 71 75 65 6e 63 65 28   sqlite_sequence(
824dcc427cfSdan|    320: 0a 0c 44 29 28 05 06 17 11 11 01 3d 74 6c 62 61   ..D)(......=tlba
825dcc427cfSdan|    336: 20 00 00 00 33 04 43 52 45 41 54 45 20 54 41 42    ...3.CREATE TAB
826dcc427cfSdan|    352: 4c 45 20 74 33 28 63 2c 78 2c 65 2c 66 29 28 02   LE t3(c,x,e,f)(.
827dcc427cfSdan|    368: 06 00 00 7f ff 40 41 54 45 20 49 6e 44 45 58 20   .....@ATE InDEX
828dcc427cfSdan|    384: 74 33 78 20 4f 4e 20 74 31 28 78 29 2e 04 06 17   t3x ON t1(x)....
829dcc427cfSdan|    400: 15 11 01 45 69 6e 64 65 2e 74 34 63 64 74 3d 05   ...Einde.t4cdt=.
830dcc427cfSdan|    416: 00 00 00 00 00 00 00 00 00 00 00 4d 00 00 00 00   ...........M....
831dcc427cfSdan|    432: 01 00 00 00 00 00 00 05 00 00 10 00 00 00 00 00   ................
832dcc427cfSdan|    448: 00 01 00 00 00 00 01 00 00 00 00 07 40 14 00 00   ............@...
833dcc427cfSdan|    464: 00 00 21 00 40 18 00 00 00 00 00 00 40 1c 00 00   ..!.@.......@...
834dcc427cfSdan|    480: 00 00 ff ff ff 00 00 00 5f 00 fb 00 00 2d 00 00   ........_....-..
835dcc427cfSdan|    496: 00 00 00 1e 00 00 00 fe 00 00 64 00 00 ff fb 02   ..........d.....
836dcc427cfSdan| page 4 offset 1536
837dcc427cfSdan|      0: 0d 00 39 00 00 02 00 00 00 00 00 00 00 00 00 00   ..9.............
838dcc427cfSdan| end a.db
839dcc427cfSdan}]} {}
840dcc427cfSdan
8417971b7feSdanset res {1 {database disk image is malformed}}
8427971b7feSdanifcapable oversize_cell_check {
8437971b7feSdan  set res {1 {no such table: t3}}
8447971b7feSdan}
845dcc427cfSdando_catchsql_test 8.1 {
846c5a93d4cSdrh  PRAGMA writable_schema=ON; -- bypass improved sqlite_master consistency checking
847dcc427cfSdan  INSERT INTO t3 SELECT * FROM t2;
8487971b7feSdan} $res
849dcc427cfSdan
850a9a5465eSdan#-------------------------------------------------------------------------
851a9a5465eSdanreset_db
852a9a5465eSdando_test 9.0 {
853a9a5465eSdan  sqlite3 db {}
854a9a5465eSdan  db deserialize [decode_hexdb {
855a9a5465eSdan| size 8192 pagesize 4096 filename crash-ab10597e4e1c32.db
856a9a5465eSdan| page 1 offset 0
857a9a5465eSdan|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
858a9a5465eSdan|     16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 00   .....@  ........
859a9a5465eSdan|     96: 00 00 00 00 0d 00 00 00 01 0f d6 00 0f d6 00 00   ................
860a9a5465eSdan|   4048: 00 00 00 00 00 00 28 01 06 17 11 11 01 3d 74 61   ......(......=ta
861a9a5465eSdan|   4064: 62 6c 65 74 31 74 31 02 43 52 45 41 54 45 20 54   blet1t1.CREATE T
862a9a5465eSdan|   4080: 41 42 4c 45 20 74 31 28 61 2c 62 2c 63 2c 64 29   ABLE t1(a,b,c,d)
863a9a5465eSdan| page 2 offset 4096
864a9a5465eSdan|      0: 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
865a9a5465eSdan| end crash-ab10597e4e1c32.db
866a9a5465eSdan}]} {}
867a9a5465eSdan
868a9a5465eSdando_execsql_test 9.1 {
869a9a5465eSdan  SAVEPOINT one;
870a9a5465eSdan}
871a9a5465eSdando_catchsql_test 9.3 {
872a9a5465eSdan  INSERT INTO t1(b,c) VALUES(5,6);
873a9a5465eSdan} {1 {database disk image is malformed}}
874a9a5465eSdando_execsql_test 9.3 {
875a9a5465eSdan  ROLLBACK TO one;
876a9a5465eSdan}
877a9a5465eSdan
878873b0198Sdan#-------------------------------------------------------------------------
879873b0198Sdanreset_db
880873b0198Sdando_test 10.0 {
881873b0198Sdan  sqlite3 db {}
882873b0198Sdan  db deserialize [decode_hexdb {
883873b0198Sdan| size 180224 pagesize 4096 filename crash-41390d95d613b6.db
884873b0198Sdan| page 1 offset 0
885873b0198Sdan|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
886873b0198Sdan|     16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 00   .....@  ........
887873b0198Sdan|     96: 00 00 00 00 0d 00 00 00 04 0e e2 00 0f 96 0f 44   ...............D
888873b0198Sdan|    112: 0f 10 0e e2 00 00 00 00 00 00 00 00 00 00 00 00   ................
889873b0198Sdan|   3808: 00 00 2c 14 06 17 15 11 01 41 69 6e 64 65 78 74   ..,......Aindext
890873b0198Sdan|   3824: 41 78 33 74 31 06 43 52 45 41 54 45 20 49 4e 44   Ax3t1.CREATE IND
891873b0198Sdan|   3840: 45 58 20 74 31 78 32 20 4f 4e 20 74 31 28 62 29   EX t1x2 ON t1(b)
892873b0198Sdan|   3856: 32 03 06 17 15 11 01 4d 69 6e 64 65 78 74 31 88   2......Mindext1.
893873b0198Sdan|   3872: 31 74 31 05 43 52 45 41 54 45 20 49 4e 44 45 58   1t1.CREATE INDEX
894873b0198Sdan|   3888: 20 74 31 78 31 20 4f 4e 20 74 31 28 67 2b 68 2c    t1x1 ON t1(g+h,
895873b0198Sdan|   3904: 6a 2d 6b 29 50 02 06 17 2b 2b 01 59 74 61 62 6c   j-k)P...++.Ytabl
896873b0198Sdan|   3920: 65 73 71 6c 69 74 65 5e 73 65 71 74 65 6e 63 65   esqlite^seqtence
897873b0198Sdan|   3936: 73 71 6c 69 74 65 5f 73 65 71 75 65 6e 63 65 04   sqlite_sequence.
898873b0198Sdan|   3952: 43 52 45 41 54 45 20 54 41 42 4c 45 20 73 71 6c   CREATE TABLE sql
899873b0198Sdan|   3968: 69 74 65 5f 73 65 71 75 65 6e 63 65 28 6e 61 6d   ite_sequence(nam
900873b0198Sdan|   3984: 65 2c 73 65 71 29 68 00 07 17 11 11 01 81 3b 74   e,seq)h.......;t
901873b0198Sdan|   4000: 61 62 6c 65 74 31 74 31 03 43 52 45 41 54 45 20   ablet1t1.CREATE
902873b0198Sdan|   4016: 54 41 42 4c 45 20 74 31 28 61 20 49 4e 54 45 47   TABLE t1(a INTEG
903873b0198Sdan|   4032: 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20 41   ER PRIMARY KEY A
904873b0198Sdan|   4048: 55 54 4f 49 4e 43 52 45 4d 45 4e 54 2c 0a 62 2c   UTOINCREMENT,.b,
905873b0198Sdan|   4064: 63 2c 64 2c 65 2c 66 2c 67 2c 68 2c 6a 2c 6b 2c   c,d,e,f,g,h,j,k,
906873b0198Sdan|   4080: 6c 2c 6d 2c 6e 2c 6f 2c 70 2c 71 2c 72 2c 73 29   l,m,n,o,p,q,r,s)
907873b0198Sdan| page 2 offset 4096
908873b0198Sdan|      0: 01 00 00 00 00 01 00 00 10 00 01 00 00 00 00 01   ................
909873b0198Sdan|     16: 00 00 00 00 02 00 0f f0 00 15 00 00 00 03 02 00   ................
910873b0198Sdan|     32: 00 00 d9 05 00 00 00 03 02 00 00 00 00 05 00 00   ................
911873b0198Sdan|     48: 10 03 02 00 00 00 00 05 00 00 00 03 02 00 00 00   ................
912873b0198Sdan|     64: 00 05 00 00 00 02 62 00 00 00 00 05 00 00 00 03   ......b.........
913873b0198Sdan|     80: 02 00 00 00 00 05 00 00 00 03 02 00 00 00 00 05   ................
914873b0198Sdan|     96: 00 00 00 03 02 00 00 00 00 05 00 00 00 03 05 00   ................
915873b0198Sdan|    112: 00 00 03 03 01 00 00 23 02 00 00 4f 00 02 00 00   .......#...O....
916873b0198Sdan|    128: 10 25 02 00 00 00 00 03 00 00 00 23 02 00 00 00   .%.........#....
917873b0198Sdan|    144: 00 03 00 00 00 23 02 00 00 00 00 03 00 00 00 23   .....#.........#
918873b0198Sdan|    160: 05 00 08 90 06 05 00 00 00 06 01 ff 00 00 00 03   ................
919873b0198Sdan|    176: 00 00 00 06 02 00 00 00 00 02 ff 00 00 00 00 00   ................
920873b0198Sdan| page 3 offset 8192
921873b0198Sdan|      0: 05 00 00 00 09 0f d0 00 00 00 00 19 0f fb 0f f6   ................
922873b0198Sdan|     16: 0f f1 10 ec ec e7 0f e2 0f dc 0f d6 0f 00 00 00   ................
923873b0198Sdan|   1072: 00 97 4c 0a 24 00 ae 00 00 00 00 00 00 00 00 00   ..L.$...........
924873b0198Sdan|   4048: 00 00 00 16 83 39 ff ff ff 14 81 16 00 00 00 12   .....9..........
925873b0198Sdan|   4064: 81 02 00 00 00 10 6e 00 00 00 0e 5a 00 00 00 0c   ......n....Z....
926873b0198Sdan|   4080: 46 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   F...............
927873b0198Sdan| page 4 offset 12288
928873b0198Sdan|   1072: 97 4d 32 14 00 ae 00 00 00 00 00 00 00 00 00 00   .M2.............
929873b0198Sdan|   4080: 00 00 00 00 00 00 00 07 01 03 11 02 74 31 00 bd   ............t1..
930873b0198Sdan| page 5 offset 16384
931873b0198Sdan|      0: fa 0f 7c 00 0a 0f 74 00 0f f9 0f eb 0f dd 0f cf   ..|...t.........
932873b0198Sdan|     16: 0f c1 0f b3 0f a4 0e 94 0f 84 0f 74 0f 74 0f 74   ...........t.t.t
933873b0198Sdan|     32: 0f 74 0f 64 0f 00 00 00 00 00 00 00 00 00 00 00   .t.d............
934873b0198Sdan|   3952: 00 00 00 00 07 05 00 00 00 02 00 be 0f 8c 10 07   ................
935873b0198Sdan|   3968: ff ff 00 00 07 05 00 00 00 02 00 aa 0f 9b f0 08   ................
936873b0198Sdan|   3984: c8 00 00 00 37 06 00 00 00 01 00 96 0f ac 00 08   ....7...........
937873b0198Sdan|   4000: 00 00 00 b3 07 15 00 10 00 02 00 82 0f ba 00 07   ................
938873b0198Sdan|   4016: 00 00 00 06 05 00 00 00 01 6e 0f c8 00 07 00 00   .........n......
939873b0198Sdan|   4032: 00 06 05 00 00 00 01 5a 03 f6 00 07 00 00 00 06   .......Z........
940873b0198Sdan|   4048: 05 00 00 00 01 46 0f e4 00 07 00 00 10 06 05 00   .....F..........
941873b0198Sdan|   4064: 00 00 01 32 10 02 00 07 00 00 00 07 05 00 00 00   ...2............
942873b0198Sdan|   4080: 01 1d ff ff ff 07 10 00 00 06 05 00 00 00 01 0a   ................
943873b0198Sdan| page 6 offset 20480
944873b0198Sdan|    624: 00 00 00 00 00 21 97 00 00 00 00 00 00 00 00 00   .....!..........
945873b0198Sdan|   1120: 00 00 00 00 00 24 57 3e 00 00 00 00 00 00 00 00   .....$W>........
946873b0198Sdan|   1616: 00 00 00 00 1f 97 00 00 00 00 00 00 00 00 00 00   ................
947873b0198Sdan|   2112: 00 00 00 1e 97 3d 00 00 00 00 00 00 00 00 00 00   .....=..........
948873b0198Sdan|   2608: 00 1d 97 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
949873b0198Sdan| page 8 offset 28672
950873b0198Sdan|   1184: 00 00 00 00 00 00 00 00 00 97 4d 1e 13 ff ae 7c   ..........M....|
951873b0198Sdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90   ................
952873b0198Sdan| page 9 offset 32768
953873b0198Sdan|    256: 0d 01 c0 00 01 04 30 00 04 30 00 00 00 00 00 00   ......0..0......
954873b0198Sdan| page 10 offset 36864
955873b0198Sdan|      0: 0d 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
956873b0198Sdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05   ................
957873b0198Sdan| page 12 offset 45056
958873b0198Sdan|      0: 0d 00 00 00 01 04 30 00 00 00 00 00 00 00 00 00   ......0.........
959873b0198Sdan| page 14 offset 53248
960873b0198Sdan|      0: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00   ......0..0......
961873b0198Sdan|   1072: 96 4d 5a 14 00 00 00 00 00 00 00 00 00 00 00 00   .MZ.............
962873b0198Sdan| page 16 offset 61440
963873b0198Sdan|      0: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00   ......0..0......
964873b0198Sdan|   1072: 97 4d 6e 14 00 ae 7b ff ff ff ff 00 00 00 00 00   .Mn.............
965873b0198Sdan| page 18 offset 69632
966873b0198Sdan|   1056: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97   ................
967873b0198Sdan|   1072: 4d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   M...............
968873b0198Sdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d   ................
969873b0198Sdan| page 20 offset 77824
970873b0198Sdan|   1056: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97   ................
971873b0198Sdan|   1072: 4d 81 16 14 00 ae 00 00 00 00 00 00 00 00 00 00   M...............
972873b0198Sdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f   ................
973873b0198Sdan| page 22 offset 86016
974873b0198Sdan|      0: 0d 00 00 00 01 04 2f 00 04 2f 01 00 00 00 00 00   ....../../......
975873b0198Sdan|   1056: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97   ................
976873b0198Sdan|   1072: 4d 81 2a 14 00 00 00 00 00 00 00 00 00 00 00 00   M.*.............
977873b0198Sdan| page 24 offset 94208
978873b0198Sdan|   1072: 00 97 4c 0a 14 00 ae 7c 00 00 00 00 00 00 00 00   ..L....|........
979873b0198Sdan| page 25 offset 98304
980873b0198Sdan|   1056: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97   ................
981873b0198Sdan|   1072: 4d 81 3e 14 00 ae 7c 00 00 18 ff 00 00 00 00 00   M.>...|.........
982873b0198Sdan| page 27 offset 106496
983873b0198Sdan|      0: 00 00 00 00 00 00 00 12 00 00 00 07 00 00 00 1d   ................
984873b0198Sdan|     16: 00 00 00 09 00 00 00 1f 00 00 00 0b 00 00 00 21   ...............!
985873b0198Sdan|     32: 00 00 00 0d 00 10 00 25 00 00 00 0f 00 00 00 27   .......%.......'
986873b0198Sdan|     48: 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00   ................
987873b0198Sdan| page 32 offset 126976
988873b0198Sdan|   2512: 00 00 00 00 00 00 00 45 21 00 00 00 00 00 00 00   .......E!.......
989873b0198Sdan| page 35 offset 139264
990873b0198Sdan|      0: 00 0a 08 44 00 05 02 77 00 0e 11 0a 92 00 00 00   ...D...w........
991873b0198Sdan|   1120: 00 00 00 00 00 20 97 00 00 00 00 00 00 00 00 00   ..... ..........
992873b0198Sdan|   1616: 00 00 00 00 22 00 00 00 00 00 00 00 00 00 00 00   ................
993873b0198Sdan|   2608: 00 00 00 97 3d 04 00 00 00 00 00 00 00 00 00 00   ....=...........
994873b0198Sdan|   3104: 00 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
995873b0198Sdan|   3600: 00 97 3d 04 ae 7c 00 00 00 00 00 00 00 00 00 00   ..=..|..........
996873b0198Sdan|   4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a   ................
997873b0198Sdan| page 36 offset 143360
998873b0198Sdan|      0: 0a 08 44 00 04 02 00 00 00 00 00 00 00 00 00 00   ..D.............
999873b0198Sdan|   1120: 00 00 00 00 00 2a 97 3e 04 00 00 00 00 00 00 00   .....*.>........
1000873b0198Sdan|   1616: 00 00 00 00 2c 97 3e 00 00 00 00 00 00 00 00 00   ....,.>.........
1001873b0198Sdan|   2112: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 38   ...............8
1002873b0198Sdan|   2128: 00 00 05 cd 00 00 00 00 00 00 00 00 00 00 00 00   ................
1003873b0198Sdan|   3600: 00 97 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
1004873b0198Sdan| page 38 offset 151552
1005873b0198Sdan|   2464: 00 00 00 00 00 00 00 00 00 6e 00 00 00 00 00 00   .........n......
1006873b0198Sdan| page 40 offset 159744
1007873b0198Sdan|   2512: 00 00 00 00 00 00 00 00 82 00 00 00 00 00 00 00   ................
1008873b0198Sdan| page 42 offset 167936
1009873b0198Sdan|   2512: 00 00 00 00 00 00 00 96 00 00 00 00 00 00 00 00   ................
1010873b0198Sdan| page 44 offset 176128
1011873b0198Sdan|   2512: 00 00 00 00 00 00 00 00 aa 00 00 00 00 00 00 00   ................
1012873b0198Sdan| end crash-41390d95d613b6.db
1013873b0198Sdan}]} {}
1014873b0198Sdan
1015873b0198Sdando_catchsql_test 10.1 {
1016c5a93d4cSdrh  PRAGMA writable_schema=ON; -- bypass improved sqlite_master consistency checking
1017873b0198Sdan  SELECT * FROM t1 WHERE a<='2019-05-09' ORDER BY a DESC;
1018873b0198Sdan} {1 {database disk image is malformed}}
1019873b0198Sdan
1020873b0198Sdan
10210971ef45Sdan#-------------------------------------------------------------------------
10220971ef45Sdanreset_db
10230971ef45Sdando_test 11.0 {
10240971ef45Sdan  sqlite3 db {}
10250971ef45Sdan  db deserialize [decode_hexdb {
10260971ef45Sdan| size 595 pagesize 512 filename x.db
10270971ef45Sdan| page 1 offset 0
10280971ef45Sdan|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
10290971ef45Sdan|     16: 02 00 00 01 00 40 20 20 00 01 00 0c 00 00 00 07   .....@  ........
10300971ef45Sdan|     32: 00 00 00 05 07 a1 1f fa 00 00 00 08 00 00 00 04   ................
10310971ef45Sdan|     48: 00 00 01 00 00 49 00 00 00 00 00 05 00 00 00 00   .....I..........
10320971ef45Sdan|     80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1c   ................
10330971ef45Sdan|     96: 00 2e 2c 50 0d 00 00 00 06 01 06 00 01 da 01 b0   ..,P............
10340971ef45Sdan|    112: 01 56 01 86 01 2a 01 06 00 00 62 00 00 00 00 00   .V...*....b.....
10350971ef45Sdan|    128: 00 ed e2 78 74 64 33 ff 43 52 45 41 54 45 20 49   ...xtd3.CREATE I
10360971ef45Sdan|    144: 4e 44 45 58 20 74 33 78 20 4f 4e 20 74 33 28 38   NDEX t3x ON t3(8
10370971ef45Sdan|    160: 29 2e 04 06 17 15 11 01 45 69 6e 64 65 68 74 32   ).......Eindeht2
10380971ef45Sdan|    176: 63 64 74 31 e5 43 52 45 41 54 45 20 49 4e 44 45   cdt1.CREATE INDE
10390971ef45Sdan|    192: 58 20 74 32 63 c4 20 4f 4e 20 74 32 28 63 2c 64   X t2c. ON t2(c,d
10400971ef45Sdan|    208: 29 28 05 06 17 01 11 11 3d 74 61 6c 36 74 62 74   )(......=tal6tbt
10410971ef45Sdan|    224: 65 32 04 43 52 45 41 54 45 20 54 41 42 4c 45 20   e2.CREATE TABLE
10420971ef45Sdan|    240: 74 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00   t...............
10430971ef45Sdan|    256: 00 00 00 00 00 00 22 07 06 17 11 11 01 30 e8 03   .............0..
10440971ef45Sdan|    272: 62 6c 65 74 34 74 35 02 43 52 45 41 54 45 20 54   blet4t5.CREATE T
10450971ef45Sdan|    288: 41 42 4c 45 20 74 34 28 94 29 2a 06 06 17 13 11   ABLE t4(.)*.....
10460971ef45Sdan|    304: 01 3f 69 33 74 6e 65 78 78 74 64 33 ff 43 52 45   .?i3tnexxtd3.CRE
10470971ef45Sdan|    320: 41 54 45 20 49 4e 44 45 58 20 74 33 78 20 4f 4e   ATE INDEX t3x ON
10480971ef45Sdan|    336: 20 74 31 28 38 29 2e 04 06 17 15 11 01 45 69 6e    t1(8).......Ein
10490971ef45Sdan|    352: 64 65 68 74 32 63 64 74 31 e5 43 52 45 41 54 45   deht2cdt1.CREATE
10500971ef45Sdan|    368: 20 49 4e 44 45 58 20 74 32 63 c4 20 4f 4e 20 74    INDEX t2c. ON t
10510971ef45Sdan|    384: 32 28 63 2c 64 29 28 05 06 17 01 11 11 3d 74 61   2(c,d)(......=ta
10520971ef45Sdan|    400: 6c 32 74 62 74 65 32 04 43 52 45 41 54 45 20 54   l2tbte2.CREATE T
10530971ef45Sdan|    416: 41 42 4c 45 20 74 33 28 63 2c 78 2c 65 2c 66 29   ABLE t3(c,x,e,f)
10540971ef45Sdan|    432: 28 02 06 17 11 11 01 3d 74 61 9e 93 65 74 32 74   (......=ta..et2t
10550971ef45Sdan|    448: 32 03 43 52 45 41 54 45 20 54 41 42 4c 45 20 74   2.CREATE TABLE t
10560971ef45Sdan|    464: 32 28 63 2c 64 2c 65 2c 66 29 24 01 06 17 11 11   2(c,d,e,f)$.....
10570971ef45Sdan|    480: 01 35 55 61 62 6c 88 74 31 74 31 02 43 52 45 41   .5Uabl.t1t1.CREA
10580971ef45Sdan|    496: 54 45 20 54 41 42 4c 45 20 74 31 28 61 2c 62 29   TE TABLE t1(a,b)
10590971ef45Sdan| page 2 offset 512
10600971ef45Sdan|      0: 0d 00 00 00 0d 25 00 01 cf 00 01 fa 01 f3 01 de   .....%..........
10610971ef45Sdan|     16: 01 00 00 00 fd 00 00 0d 00 00 00 00 45 20 54 41   ............E TA
10620971ef45Sdan|     32: 42 4c 45 20 74 34 28 94 29 2a 06 06 17 13 11 01   BLE t4(.)*......
10630971ef45Sdan|     48: 3f 69 33 74 6e 65 78 78 74 64 33 ff 43 52 45 a0   ?i3tnexxtd3.CRE.
10640971ef45Sdan|     64: a0 a0 a0 a0 a0 a0 a0 a0 a0 a0 a0 a0 74 13 11 01   ............t...
10650971ef45Sdan|     80: 49 45 74 00 00 00 00 00 00 00 00 00 00 00 00 00   IEt.............
10660971ef45Sdan| end x.db
10670971ef45Sdan}]} {}
10680971ef45Sdan
10690971ef45Sdando_catchsql_test 11.1 {
1070c5a93d4cSdrh  PRAGMA writable_schema=ON; -- bypass improved sqlite_master consistency checking
10710971ef45Sdan  DELETE FROM t3 WHERE x IN (SELECT x FROM t4);
10720971ef45Sdan} {1 {database disk image is malformed}}
10730971ef45Sdan
10748451e1faSdan#-------------------------------------------------------------------------
10758451e1faSdanreset_db
10768451e1faSdando_test 12.0 {
10778451e1faSdan  sqlite3 db {}
10788451e1faSdan  db deserialize [decode_hexdb {
10798451e1faSdan| size 12288 pagesize 4096 filename crash-e6d070858a3a85.db
10808451e1faSdan| page 1 offset 0
10818451e1faSdan|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
10828451e1faSdan|     16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 00   .....@  ........
10838451e1faSdan|     96: 00 00 00 00 0d 00 00 00 02 0f 8f 00 0f bf 0f 8f   ................
10848451e1faSdan|   3968: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2e   ................
10858451e1faSdan|   3984: 02 06 17 15 11 01 45 69 6e 64 65 78 74 31 63 62   ......Eindext1cb
10868451e1faSdan|   4000: 74 31 03 43 52 45 41 54 45 20 49 4e 44 45 58 20   t1.CREATE INDEX
10878451e1faSdan|   4016: 74 31 63 62 20 4f 4e 20 74 31 28 63 2c 62 29 3f   t1cb ON t1(c,b)?
10888451e1faSdan|   4032: 01 06 17 11 11 01 6b 74 61 62 6c 65 74 31 74 31   ......ktablet1t1
10898451e1faSdan|   4048: 02 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 31   .CREATE TABLE t1
10908451e1faSdan|   4064: 28 61 20 49 4e 54 2c 20 62 20 49 4e 54 2c 20 43   (a INT, b INT, C
10918451e1faSdan|   4080: 20 49 4e 54 20 44 45 46 41 55 4c 54 20 31 36 29    INT DEFAULT 16)
10928451e1faSdan| page 2 offset 4096
10938451e1faSdan|      0: 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
10948451e1faSdan|   4000: 00 00 00 00 00 00 00 00 07 0b 04 01 01 01 63 63   ..............cc
10958451e1faSdan|   4016: 11 05 0a 04 00 00 01 11 05 09 04 08 08 01 0f 05   ................
10968451e1faSdan|   4032: 08 04 00 00 01 01 56 07 04 01 08 01 07 10 07 06   ......V.........
10978451e1faSdan|   4048: 14 01 01 01 06 08 10 06 05 04 f5 00 01 05 10 07   ................
10988451e1faSdan|   4064: 04 04 01 01 01 04 03 10 06 03 04 01 09 01 03 10   ................
10998451e1faSdan|   4080: 06 02 04 01 00 01 02 10 06 01 04 09 01 01 02 10   ................
11008451e1faSdan| page 3 offset 8192
11018451e1faSdan|      0: 0a 00 00 00 0b 0f b0 00 0f f9 0f f2 0f eb 0f e4   ................
11028451e1faSdan|     16: 0f dd 0f d6 0f 9f 0f c7 0f be 00 00 00 00 00 00   ................
11038451e1faSdan|   4016: 07 04 01 01 01 11 e2 0b 06 04 91 00 01 11 0a 07   ................
11048451e1faSdan|   4032: 04 01 01 01 10 08 06 07 04 01 01 01 10 04 04 06   ................
11058451e1faSdan|   4048: 04 01 01 09 10 02 06 04 01 0a 01 10 00 00 00 00   ................
11068451e1faSdan| end crash-e6d070858a3a85.db
11078451e1faSdan}]} {}
11088451e1faSdan
11098451e1faSdando_catchsql_test 12.1 {
11108451e1faSdan  SELECT CAST((SELECT b FROM t1 WHERE 16=c) AS int) FROM t1 WHERE 16=c;
11118451e1faSdan} {1 {database disk image is malformed}}
11128451e1faSdan
11139a20ea9bSdan#-------------------------------------------------------------------------
11149a20ea9bSdanreset_db
11159a20ea9bSdando_test 13.0 {
11169a20ea9bSdan  sqlite3 db {}
11179a20ea9bSdan  db deserialize [decode_hexdb {
11189a20ea9bSdan| size 8192 pagesize 4096 filename crash-81dd2952aef34f.db
11199a20ea9bSdan| page 1 offset 0
11209a20ea9bSdan|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
11219a20ea9bSdan|     16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 02   .....@  ........
11229a20ea9bSdan|     32: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 04   ................
11239a20ea9bSdan|     48: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00   ................
11249a20ea9bSdan|     96: 00 00 00 00 0d 00 00 00 01 0f c4 00 0f c4 00 00   ................
11259a20ea9bSdan|   4032: 00 00 00 00 3a 11 06 17 11 11 01 61 74 61 62 6c   ....:......atabl
11269a20ea9bSdan|   4048: 65 74 31 74 31 02 43 52 45 41 54 45 20 54 41 42   et1t1.CREATE TAB
11279a20ea9bSdan|   4064: 4c 45 20 74 31 28 61 20 49 4e 54 45 47 45 52 20   LE t1(a INTEGER
11289a20ea9bSdan|   4080: 50 52 49 4d 41 52 59 20 4b 45 59 2c 62 2c 63 29   PRIMARY KEY,b,c)
11299a20ea9bSdan| page 2 offset 4096
11309a20ea9bSdan|      0: 0d 07 70 00 02 0f eb 00 0f fa 00 00 00 00 00 00   ..p.............
11319a20ea9bSdan|   4064: 00 00 00 00 00 00 00 00 00 00 00 05 bf ff ff ff   ................
11329a20ea9bSdan|   4080: ff ff ff ff ff 04 00 01 00 02 04 01 00 00 00 00   ................
11339a20ea9bSdan| end crash-81dd2952aef34f.db
11349a20ea9bSdan}]} {}
11359a20ea9bSdan
11369a20ea9bSdando_catchsql_test 13.1 {
11379a20ea9bSdan  WITH RECURSIVE c(x) AS (VALUES(1) UNION ALL SELECT x-2019 FROM c WHERE x<2)
11389a20ea9bSdan    INSERT INTO t1(b,c) SELECT last_insert_rowid(), x FROM c;
11399a20ea9bSdan} {1 {database disk image is malformed}}
11409a20ea9bSdan
1141759e9cc0Sdan#-------------------------------------------------------------------------
1142759e9cc0Sdanreset_db
1143759e9cc0Sdando_test 14.0 {
1144759e9cc0Sdan  sqlite3 db {}
1145759e9cc0Sdan  db deserialize [decode_hexdb {
1146759e9cc0Sdan| size 512 pagesize 65536 filename clusterfuzz-testcase-minimized-sqlite3_dbfuzz2_fuzzer-4806406219825152
1147759e9cc0Sdan| page 1 offset 0
1148759e9cc0Sdan|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
1149759e9cc0Sdan|     16: 00 01 02 01 00 40 20 20 00 63 2e 78 00 00 00 07   .....@  .c.x....
1150759e9cc0Sdan|     32: 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 04   ................
1151759e9cc0Sdan|     48: 00 00 00 00 00 00 01 00 35 05 43 00 04 00 00 00   ........5.C.....
1152759e9cc0Sdan|     80: 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 0c   ................
1153759e9cc0Sdan|     96: 00 2e 2c 50 0d 00 00 00 03 00 00 00 01 da 01 b0   ..,P............
1154759e9cc0Sdan|    112: 01 56 01 86 01 2a 01 02 00 00 00 00 00 00 00 1c   .V...*..........
1155759e9cc0Sdan|    128: 00 38 80 b2 e6 0e 00 00 00 00 00 00 00 00 00 10   .8..............
1156759e9cc0Sdan|    144: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01   ................
1157759e9cc0Sdan|    160: 00 00 00 00 00 00 00 00 00 00 00 00 45 20 54 41   ............E TA
1158759e9cc0Sdan|    256: 00 00 00 00 00 00 22 07 06 17 11 11 01 35 74 61   .............5ta
1159759e9cc0Sdan|    272: 62 6c 00 10 00 00 34 07 43 52 54 45 20 54 41 42   bl....4.CRTE TAB
1160759e9cc0Sdan|    288: 4c 45 20 74 33 28 63 2e 78 2c 65 2c 66 15 28 3a   LE t3(c.x,e,f.(:
1161759e9cc0Sdan|    304: 06 17 11 11 01 65 78 8c cc 87 85 35 05 43 72 45   .....ex....5.CrE
1162759e9cc0Sdan|    320: 41 54 48 20 49 4e 44 45 58 20 74 33 78 20 4f 4e   ATH INDEX t3x ON
1163759e9cc0Sdan|    336: 20 74 33 28 78 39 2e 04 06 17 15 11 01 45 69 6e    t3(x9.......Ein
1164759e9cc0Sdan|    352: 64 65 78 74 32 63 64 74 32 05 43 52 45 41 54 45   dext2cdt2.CREATE
1165759e9cc0Sdan|    368: 20 49 4e 44 45 58 20 74 32 63 64 20 4f 4e 20 74    INDEX t2cd ON t
1166759e9cc0Sdan|    384: 32 28 63 2a 44 29 28 05 fa e8 ee ed 01 3d 74 63   2(c*D)(......=tc
1167759e9cc0Sdan|    400: 62 6c 65 74 33 74 33 07 43 52 45 41 54 45 20 54   blet3t3.CREATE T
1168759e9cc0Sdan|    416: 41 42 4c 45 20 74 33 28 63 2e 78 2c 65 2c 66 15   ABLE t3(c.x,e,f.
1169759e9cc0Sdan|    432: 28 3a 06 17 11 11 01 3d 74 61 62 6c 65 74 32 74   (:.....=tablet2t
1170759e9cc0Sdan|    448: 32 03 43 52 45 41 54 45 20 54 41 42 4c 45 20 74   2.CREATE TABLE t
1171759e9cc0Sdan|    464: 32 28 63 2c 64 2c 65 2c 66 29 24 01 06 17 11 11   2(c,d,e,f)$.....
1172759e9cc0Sdan|    480: 01 35 74 61 62 6c 65 74 31 74 31 02 43 52 45 41   .5tablet1t1.CREA
1173759e9cc0Sdan|    496: 54 45 20 54 41 42 4c 45 20 74 31 28 61 2c 63 29   TE TABLE t1(a,c)
1174759e9cc0Sdan| end clusterfuzz-testcase-minimized-sqlite3_dbfuzz2_fuzzer-4806406219825152
1175759e9cc0Sdan}]} {}
1176759e9cc0Sdan
1177ca439a49Sdrhextra_schema_checks 0
1178759e9cc0Sdando_catchsql_test 14.1 {
1179759e9cc0Sdan  PRAGMA integrity_check;
1180759e9cc0Sdan} {1 {database disk image is malformed}}
1181759e9cc0Sdan
118237f3ac8fSdan# If SQLITE_OMIT_ALTERTABLE is defined, omit this file.
118337f3ac8fSdanifcapable altertable {
1184759e9cc0Sdan  do_catchsql_test 14.2 {
1185759e9cc0Sdan    ALTER TABLE t1 RENAME TO alkjalkjdfiiiwuer987lkjwer82mx97sf98788s9789s;
1186759e9cc0Sdan  } {1 {database disk image is malformed}}
118737f3ac8fSdan}
1188ca439a49Sdrhextra_schema_checks 1
11899a20ea9bSdan
1190877859f2Sdan#-------------------------------------------------------------------------
1191877859f2Sdanreset_db
1192877859f2Sdando_test 15.0 {
1193877859f2Sdan  sqlite3 db {}
1194877859f2Sdan  db deserialize [decode_hexdb {
1195877859f2Sdan| size 28672 pagesize 4096 filename crash-3afa1ca9e9c1bd.db
1196877859f2Sdan| page 1 offset 0
1197877859f2Sdan|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
1198877859f2Sdan|     16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 07   .....@  ........
1199877859f2Sdan|     32: 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 04   ................
1200877859f2Sdan|     48: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00   ................
1201877859f2Sdan|     96: 00 00 00 00 0d 00 00 00 06 0e 88 00 0f b8 0f 6d   ...............m
1202877859f2Sdan|    112: 0f 3a 0f 0b 0e d5 0e 88 01 00 00 00 00 00 00 00   .:..............
1203877859f2Sdan|   3712: 00 00 00 00 00 00 00 00 4b 06 06 17 25 25 01 5b   ........K...%%.[
1204877859f2Sdan|   3728: 74 61 62 6c 65 73 71 6c 69 74 65 5f 73 74 61 74   tablesqlite_stat
1205877859f2Sdan|   3744: 31 73 71 6c 69 74 65 5f 73 74 61 74 31 07 43 52   1sqlite_stat1.CR
1206877859f2Sdan|   3760: 45 41 54 45 20 54 41 42 4c 45 20 73 71 6c 69 74   EATE TABLE sqlit
1207877859f2Sdan|   3776: 65 5f 73 74 61 74 31 28 74 62 6c 2c 69 64 78 2c   e_stat1(tbl,idx,
1208877859f2Sdan|   3792: 73 74 61 74 29 34 05 06 17 13 11 01 53 69 6e 64   stat)4......Sind
1209877859f2Sdan|   3808: 65 78 63 31 63 63 31 06 43 52 45 41 54 45 20 55   exc1cc1.CREATE U
1210877859f2Sdan|   3824: 4e 49 51 55 45 20 49 4e 44 45 58 20 63 31 63 20   NIQUE INDEX c1c
1211877859f2Sdan|   3840: 4f 4e 20 63 31 28 63 2c 20 62 29 2d 04 06 17 13   ON c1(c, b)-....
1212877859f2Sdan|   3856: 11 01 45 69 6e 64 65 78 63 31 64 63 31 05 43 52   ..Eindexc1dc1.CR
1213877859f2Sdan|   3872: 45 41 54 45 20 49 4e 44 45 58 20 63 31 64 20 4f   EATE INDEX c1d O
1214877859f2Sdan|   3888: 4e 20 63 31 28 64 2c 20 62 29 31 03 06 17 13 11   N c1(d, b)1.....
1215877859f2Sdan|   3904: 01 4d 69 6e 64 65 78 62 31 63 62 31 05 43 52 45   .Mindexb1cb1.CRE
1216877859f2Sdan|   3920: 41 54 45 20 55 4e 49 51 55 45 20 49 4e 44 45 58   ATE UNIQUE INDEX
1217877859f2Sdan|   3936: 20 62 31 63 20 4f 4e 20 62 31 28 63 29 49 02 06    b1c ON b1(c)I..
1218877859f2Sdan|   3952: 17 11 11 0f 7f 74 61 62 6c 65 63 31 63 31 03 43   .....tablec1c1.C
1219877859f2Sdan|   3968: 52 45 41 54 45 20 54 41 42 4c 45 20 63 31 28 61   REATE TABLE c1(a
1220877859f2Sdan|   3984: 20 49 4e 54 20 50 52 49 4d 41 52 59 20 4b 45 59    INT PRIMARY KEY
1221877859f2Sdan|   4000: 2c 20 62 2c 20 63 2c 20 64 29 20 57 49 54 48 4f   , b, c, d) WITHO
1222877859f2Sdan|   4016: 55 54 20 52 4f 57 49 44 46 01 06 17 11 11 01 79   UT ROWIDF......y
1223877859f2Sdan|   4032: 74 61 62 6c 65 62 31 62 31 02 43 52 45 41 54 45   tableb1b1.CREATE
1224877859f2Sdan|   4048: 20 54 41 42 4c 45 20 62 31 28 61 20 49 4e 54 20    TABLE b1(a INT
1225877859f2Sdan|   4064: 50 52 49 4d 41 52 59 20 4b 45 59 2c 20 62 2c 20   PRIMARY KEY, b,
1226877859f2Sdan|   4080: 63 29 20 57 49 54 48 4f 55 54 20 52 4f 57 49 44   c) WITHOUT ROWID
1227877859f2Sdan| page 2 offset 4096
1228877859f2Sdan|      0: 0a 00 00 00 07 0f ca 00 0f fa 0f f2 0f ea 0f e2   ................
1229877859f2Sdan|     16: 0f da 00 00 00 01 00 00 00 00 00 00 00 00 00 00   ................
1230877859f2Sdan|   4032: 00 00 00 00 00 00 00 00 00 00 07 04 01 0f 01 06   ................
1231877859f2Sdan|   4048: 67 07 07 04 01 0f 01 06 66 06 07 04 01 0f 01 05   g.......f.......
1232877859f2Sdan|   4064: 65 05 07 04 01 0f 01 04 64 04 07 04 01 0f 01 03   e.......d.......
1233877859f2Sdan|   4080: 63 03 07 04 01 0f 01 02 62 0f 05 04 09 0f 09 61   c.......b......a
1234877859f2Sdan| page 3 offset 8192
1235877859f2Sdan|      0: 0a 00 00 00 07 0f bd 00 0f f9 0f ef 0f e5 0f db   ................
1236877859f2Sdan|     16: 0f d1 0f c7 0f bd 00 00 00 00 01 00 00 00 00 00   ................
1237877859f2Sdan|   4016: 00 00 00 00 00 00 00 00 00 00 00 00 00 09 05 01   ................
1238877859f2Sdan|   4032: 0f 01 01 07 61 07 07 09 05 01 0f 01 01 06 61 06   ....a.........a.
1239877859f2Sdan|   4048: 06 09 05 01 0f 01 01 05 61 05 05 09 05 01 0f 01   ........a.......
1240877859f2Sdan|   4064: 01 04 61 04 04 09 05 01 0f 01 01 03 61 03 03 09   ..a.........a...
1241877859f2Sdan|   4080: 05 01 0f 01 01 02 61 0f 02 06 05 09 0f 09 09 61   ......a........a
1242877859f2Sdan| page 4 offset 12288
1243877859f2Sdan|      0: 0a 00 00 00 07 0f d8 00 0f fc 0f f0 0f ea 0f e4   ................
1244877859f2Sdan|     16: 0f de 0f d8 0f f6 00 00 00 00 00 00 00 00 00 00   ................
1245877859f2Sdan|   4048: 00 00 00 00 00 00 00 00 05 03 01 01 07 07 05 03   ................
1246877859f2Sdan|   4064: 01 01 06 06 05 03 01 01 05 05 05 03 01 01 04 04   ................
1247877859f2Sdan|   4080: 05 03 01 01 03 03 05 03 01 01 0f 02 03 03 09 09   ................
1248877859f2Sdan| page 5 offset 16384
1249877859f2Sdan|      0: 0a 00 00 00 07 0f ca 00 0f fa 0f f2 0f ea 0f 00   ................
1250877859f2Sdan|   4032: 00 00 00 00 00 00 00 00 00 00 07 04 01 0f 01 07   ................
1251877859f2Sdan|   4048: 61 07 07 04 01 0f 01 06 61 06 07 04 01 0f 01 05   a.......a.......
1252877859f2Sdan|   4064: 61 05 07 04 01 1f 01 04 61 04 07 04 01 0f 01 03   a.......a.......
1253877859f2Sdan|   4080: 61 03 07 04 01 0f 01 02 61 02 05 04 09 0f 09 61   a.......a......a
1254877859f2Sdan| page 6 offset 20480
1255877859f2Sdan|      0: 0a 00 00 00 07 0f ca 00 0f fa 0f ea 0f e2 00 00   ................
1256877859f2Sdan|   4032: 00 00 00 00 00 00 00 00 00 00 07 04 01 0f 01 07   ................
1257877859f2Sdan|   4048: 61 07 07 04 01 0f 01 06 61 06 07 04 01 0f 01 05   a.......a.......
1258877859f2Sdan|   4064: 61 05 07 04 01 0f 01 04 61 04 07 04 01 0f 01 03   a.......a.......
1259877859f2Sdan|   4080: 61 03 07 04 01 0f 01 0f 61 02 05 04 09 0f 09 61   a.......a......a
1260877859f2Sdan| page 7 offset 24576
1261877859f2Sdan|      0: 0d 00 00 00 05 0f 1c 00 0f f0 0f e0 0f d3 0f c5   ................
1262877859f2Sdan|     16: 0f b8 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
1263877859f2Sdan|   4016: 00 00 00 00 00 00 00 00 0b 05 04 11 11 13 62 31   ..............b1
1264877859f2Sdan|   4032: 62 31 37 20 31 0c 04 04 11 13 13 62 31 62 31 63   b17 1......b1b1c
1265877859f2Sdan|   4048: 37 20 31 0b 03 04 11 11 13 63 31 63 31 37 20 31   7 1......c1c17 1
1266877859f2Sdan|   4064: 0e 02 04 11 13 07 63 31 63 31 64 37 20 31 20 31   ......c1c1d7 1 1
1267877859f2Sdan|   4080: 0e 01 04 11 13 17 63 31 63 31 63 37 20 31 00 00   ......c1c1c7 1..
1268877859f2Sdan| end crash-3afa1ca9e9c1bd.db
1269877859f2Sdan}]} {}
1270877859f2Sdan
1271ca439a49Sdrhextra_schema_checks 0
1272877859f2Sdando_execsql_test 15.1 {
127335a37c2aSdan  PRAGMA cell_size_check = 0;
1274877859f2Sdan  UPDATE c1 SET c= NOT EXISTS(SELECT 1 FROM c1 ORDER BY (SELECT 1 FROM c1 ORDER BY a)) +10 WHERE d BETWEEN 4 AND 7;
1275877859f2Sdan} {}
1276ca439a49Sdrhextra_schema_checks 1
127756215eafSdan
127856215eafSdan#-------------------------------------------------------------------------
127956215eafSdanreset_db
128056215eafSdando_execsql_test 16.0 {
128156215eafSdan  CREATE TABLE t1(w, x, y, z, UNIQUE(w, x), UNIQUE(y, z));
128256215eafSdan  INSERT INTO t1 VALUES(1, 1, 1, 1);
128356215eafSdan
128456215eafSdan  CREATE TABLE t1idx(x, y, i INTEGER, PRIMARY KEY(x)) WITHOUT ROWID;
128556215eafSdan  INSERT INTO t1idx VALUES(10, NULL, 5);
128656215eafSdan
128756215eafSdan  PRAGMA writable_schema = 1;
128856215eafSdan  UPDATE sqlite_master SET rootpage = (
128956215eafSdan    SELECT rootpage FROM sqlite_master WHERE name='t1idx'
129056215eafSdan  ) WHERE type = 'index';
129156215eafSdan}
129256215eafSdan
129347d38e24Sdanextra_schema_checks 0
129456215eafSdandb close
129556215eafSdansqlite3 db test.db
129647d38e24Sdanextra_schema_checks 1
129756215eafSdan
129856215eafSdando_catchsql_test 16.1 {
129956215eafSdan  PRAGMA writable_schema = ON;
130056215eafSdan  INSERT INTO t1(rowid, w, x, y, z) VALUES(5, 10, 11, 10, NULL);
130156215eafSdan} {1 {database disk image is malformed}}
130256215eafSdan
130388819d58Sdan#-------------------------------------------------------------------------
130426b9540fSdan# Test that corruption is reported from within a checkpoint if the
130526b9540fSdan# expected final size of the database (according to the last commit
130626b9540fSdan# frame in the wal file) is greater than the combined initial sizes
130726b9540fSdan# of the database and wal file.
130826b9540fSdan#
13099f567eb9Sdanif {[wal_is_capable]} {
131088819d58Sdan  reset_db
131188819d58Sdan  do_execsql_test 17.0 {
131288819d58Sdan    CREATE TABLE t1(o INTEGER PRIMARY KEY, t UNIQUE);
131388819d58Sdan    INSERT INTO t1(t) VALUES(randomblob(123));
131488819d58Sdan    INSERT INTO t1(t) SELECT randomblob(123) FROM t1;
131588819d58Sdan    INSERT INTO t1(t) SELECT randomblob(123) FROM t1;
131688819d58Sdan    INSERT INTO t1(t) SELECT randomblob(123) FROM t1;
131788819d58Sdan    INSERT INTO t1(t) SELECT randomblob(123) FROM t1;
131888819d58Sdan    INSERT INTO t1(t) SELECT randomblob(123) FROM t1;
131988819d58Sdan    INSERT INTO t1(t) SELECT randomblob(123) FROM t1;
132091faeec8Sdan    INSERT INTO t1(t) SELECT randomblob(123) FROM t1;
132191faeec8Sdan    INSERT INTO t1(t) SELECT randomblob(123) FROM t1;
132291faeec8Sdan    INSERT INTO t1(t) SELECT randomblob(123) FROM t1;
132388819d58Sdan
132488819d58Sdan    PRAGMA journal_mode = wal;
132588819d58Sdan    INSERT INTO t1 VALUES(-1, 'b');
132688819d58Sdan  } {wal}
132788819d58Sdan
132888819d58Sdan  do_test 17.1 {
132988819d58Sdan    set fd [open test.db r+]
133088819d58Sdan    chan truncate $fd 2048
133188819d58Sdan    file size test.db
133288819d58Sdan  } {2048}
133388819d58Sdan
133426b9540fSdan  do_catchsql_test 17.2 {
133588819d58Sdan    PRAGMA wal_checkpoint
133688819d58Sdan  } {1 {database disk image is malformed}}
133788819d58Sdan
133826b9540fSdan  do_test 17.3 {
133926b9540fSdan    close $fd
134026b9540fSdan  } {}
13419f567eb9Sdan}
134226b9540fSdan
13438505d73dSdan#-------------------------------------------------------------------------
13448505d73dSdanreset_db
13458505d73dSdando_test 18.0 {
13468505d73dSdan  sqlite3 db {}
13478505d73dSdan  db deserialize [decode_hexdb {
13488505d73dSdan.open --hexdb
13498505d73dSdan| size 12288 pagesize 4096 filename crash-40d5739835cbdb.db
13508505d73dSdan| page 1 offset 0
13518505d73dSdan|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
13528505d73dSdan|     16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 00   .....@  ........
13538505d73dSdan|     96: 00 00 00 00 0d 00 00 00 02 0f 4e 00 0f a2 0f 4e   ..........N....N
13548505d73dSdan|   3904: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 52 02   ..............R.
13558505d73dSdan|   3920: 07 17 11 11 01 81 0f 74 61 62 6c 65 74 32 74 32   .......tablet2t2
13568505d73dSdan|   3936: 03 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 32   .CREATE TABLE t2
13578505d73dSdan|   3952: 28 61 20 49 4e 54 2c 20 62 20 49 4e 54 45 47 45   (a INT, b INTEGE
13588505d73dSdan|   3968: 52 2c 20 50 52 49 4d 41 52 59 20 4b 45 59 28 61   R, PRIMARY KEY(a
13598505d73dSdan|   3984: 2c 62 29 29 20 57 49 54 48 4f 55 54 20 52 4f 57   ,b)) WITHOUT ROW
13608505d73dSdan|   4000: 49 44 5c 01 07 16 11 11 01 81 23 74 61 62 6c 65   ID........#table
13618505d73dSdan|   4016: 74 31 74 31 02 43 52 45 41 54 45 20 54 41 42 4c   t1t1.CREATE TABL
13628505d73dSdan|   4032: 45 20 74 31 28 61 20 49 4e 54 20 50 52 49 4d 41   E t1(a INT PRIMA
13638505d73dSdan|   4048: 52 59 20 4b 45 59 2c 20 62 20 54 45 58 54 2c 20   RY KEY, b TEXT,
13648505d73dSdan|   4064: 63 20 54 45 58 54 2c 20 64 20 49 4e 54 45 47 45   c TEXT, d INTEGE
13658505d73dSdan|   4080: 52 29 20 57 49 54 48 4f 55 54 20 52 4f 57 49 44   R) WITHOUT ROWID
13668505d73dSdan| page 2 offset 4096
13678505d73dSdan|      0: 0a 00 00 00 06 0f a7 00 0f f4 0f e5 0f d5 0f c5   ................
13688505d73dSdan|     16: 0f b6 0f 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
13698505d73dSdan|   4000: 00 00 00 00 00 00 00 0f 05 01 15 13 01 06 65 7f   ..............e.
13708505d73dSdan|   4016: 25 6e 73 69 78 06 0e 05 01 13 15 03 b5 6f 64 64   %nsix........odd
13718505d73dSdan|   4032: 66 69 76 65 05 0f 05 01 15 15 01 04 65 76 65 61   five........evea
13728505d73dSdan|   4048: e6 6f 75 82 04 0f 05 01 13 17 01 03 6f 64 64 74   .ou.........oddt
13738505d73dSdan|   4064: 68 72 61 15 03 0e 05 01 15 12 01 02 64 76 64 6e   hra.........dvdn
13748505d73dSdan|   4080: 74 77 6f 02 00 00 00 00 00 00 00 00 00 00 00 00   two.............
13758505d73dSdan| page 3 offset 8192
13768505d73dSdan|   2816: 00 00 00 00 00 00 00 00 00 00 00 06 03 02 01 00   ................
13778505d73dSdan|   2832: c8 07 06 03 02 01 00 c7 11 06 03 02 01 02 a6 52   ...............R
13788505d73dSdan|   2848: 06 d5 02 01 10 c5 1b 06 03 02 00 ef c4 53 06 03   .............S..
13798505d73dSdan|   2864: 02 01 00 c3 22 06 04 02 01 00 c2 26 06 03 02 01   ...........&....
13808505d73dSdan|   2880: 00 c2 1e 02 b3 02 01 00 c0 3a 06 03 3c 01 00 bf   .........:..<...
13818505d73dSdan|   2896: 2c 06 03 02 01 00 be 27 00 83 02 01 01 bd 15 06   ,......'........
13828505d73dSdan|   2912: 03 02 01 00 bc 21 06 03 02 01 00 bb 54 16 13 02   .....!......T...
13838505d73dSdan|   2928: 01 09 9a 0a 06 03 02 01 00 b9 53 06 03 02 01 00   ..........S.....
13848505d73dSdan|   2944: b8 52 06 13 02 01 00 b7 1e 06 03 02 01 00 b6 34   .R.............4
13858505d73dSdan|   2960: 06 13 02 01 00 b5 3a 05 f3 12 01 00 b4 45 05 03   ......:......E..
13868505d73dSdan|   2976: 02 00 00 b4 6f 06 03 02 01 00 b2 03 06 03 02 01   ....o...........
13878505d73dSdan|   2992: 00 b1 63 06 03 02 01 00 b0 24 06 03 02 01 00 9f   ..c......$......
13888505d73dSdan|   3008: ac 06 03 02 01 00 a2 2f 07 03 02 01 01 ad 21 06   ......./......!.
13898505d73dSdan|   3024: 03 02 01 fb cd 5b 06 c0 01 f1 00 ab 23 06 03 02   .....[......#...
13908505d73dSdan|   3040: 01 00 aa 5b 06 03 02 01 00 a3 ce 06 02 03 01 00   ...[............
13918505d73dSdan|   3056: a8 0e 06 03 02 01 00 a7 0c 06 02 f1 01 00 a6 0d   ................
13928505d73dSdan|   3072: 06 03 02 01 00 95 25 06 03 02 01 00 a4 17 06 03   ......%.........
13938505d73dSdan|   3088: 02 01 00 a3 09 06 03 02 01 00 a2 51 06 03 02 02   ...........Q....
13948505d73dSdan|   3104: 00 a1 40 06 01 e2 00 00 a0 4b 06 13 02 00 00 9e   [email protected]......
13958505d73dSdan|   3120: 5d 06 03 02 01 10 9e 81 06 03 02 01 00 9d 42 06   ].............B.
13968505d73dSdan|   3136: 03 69 01 00 9c 48 06 03 02 01 00 9b 48 06 03 01   .i...H......H...
13978505d73dSdan|   3152: 01 00 9a 09 06 03 02 01 00 99 2f 06 03 02 01 00   ........../.....
13988505d73dSdan|   3168: 98 3a 06 03 02 01 00 97 24 06 03 02 01 00 96 4a   .:......$......J
13998505d73dSdan|   3184: 06 03 02 11 00 f9 50 02 93 02 01 00 94 2f 06 03   ......P....../..
14008505d73dSdan|   3200: 02 11 04 93 1a 06 03 01 04 e0 92 1a 06 03 02 01   ................
14018505d73dSdan|   3216: 00 91 27 06 03 02 01 00 90 23 06 03 02 01 00 8f   ..'......#......
14028505d73dSdan|   3232: 3b 06 03 02 01 00 8e 46 06 16 02 01 00 8d 1d 07   ;......F........
14038505d73dSdan|   3248: 23 12 01 00 8c 5a 06 03 02 01 00 8a 39 06 03 02   #....Z......9...
14048505d73dSdan|   3264: 00 ff 84 b5 06 03 02 01 00 89 07 06 03 02 11 00   ................
14058505d73dSdan|   3280: 88 02 06 03 02 01 00 87 19 06 03 02 01 00 86 4d   ...............M
14068505d73dSdan|   3296: 06 13 12 00 00 85 4b 06 03 02 01 00 84 37 06 13   ......K......7..
14078505d73dSdan|   3312: 02 01 00 83 2c 06 03 02 01 00 81 60 06 13 02 11   ....,......`....
14088505d73dSdan|   3328: 00 81 3b 06 03 02 01 0a b0 5a 06 03 01 01 7f 22   ..;......Z......
14098505d73dSdan|   3344: 05 03 01 01 7e 21 05 03 01 01 7d 0b 15 03 01 02   ....~!..........
14108505d73dSdan|   3360: 7b 08 05 03 06 91 7b 22 05 03 01 01 7a 58 05 03   ............zX..
14118505d73dSdan|   3376: 01 01 7a 4f 05 03 01 01 78 49 05 03 01 01 77 16   ..zO....xI....w.
14128505d73dSdan|   3392: 05 03 01 01 76 5f 05 03 01 01 75 0f 05 03 01 01   ....v_....u.....
14138505d73dSdan|   3408: 74 2f 05 03 01 01 3f 1f 05 03 01 02 72 14 05 03   t/....?.....r...
14148505d73dSdan|   3424: 00 f1 71 08 05 03 01 01 70 0c 05 03 01 47 7f 29   ..q.....p....G.)
14158505d73dSdan|   3440: 05 03 01 01 6e 57 05 03 01 01 6d 33 05 13 00 f1   ....nW....m3....
14168505d73dSdan|   3456: 6c 0b 05 03 01 01 6b 49 05 03 01 01 69 05 05 03   l.....kI....i...
14178505d73dSdan|   3472: 01 02 ed 23 00 00 01 00 00 00 00 00 00 00 00 00   ...#............
14188505d73dSdan| end crash-40d5739835cbdb.db
14198505d73dSdan}]} {}
14208505d73dSdan
1421453954b0Slarrybrifcapable json1 {
14228505d73dSdando_catchsql_test 18.1 {
14238505d73dSdan  SELECT
14248505d73dSdan    json_group_array(c) OVER win4
14258505d73dSdan  FROM t1
14268505d73dSdan    WINDOW win4 AS (
14278505d73dSdan        ORDER BY a COLLATE nocase RANGE BETWEEN 1.0 PRECEDING AND CURRENT ROW
14288505d73dSdan    )
14298505d73dSdan} {1 {JSON cannot hold BLOB values}}
1430453954b0Slarrybr} ;# ifcapable json1
143188819d58Sdan
14321942d1f2Sdan#-------------------------------------------------------------------------
14331942d1f2Sdanreset_db
14341942d1f2Sdando_test 19.0 {
14351942d1f2Sdan  sqlite3 db {}
14361942d1f2Sdan  db deserialize [decode_hexdb {
14371942d1f2Sdan.open --hexdb
14381942d1f2Sdan| size 20480 pagesize 4096 filename crash-f022eb0ce64d27.db
14391942d1f2Sdan| page 1 offset 0
14401942d1f2Sdan|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
14411942d1f2Sdan|     16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 05   .....@  ........
14421942d1f2Sdan|     32: 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 04   ................
14431942d1f2Sdan|     48: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00   ................
14441942d1f2Sdan|     96: 00 00 00 00 0d 0f f8 00 04 0e d2 00 0f 08 0f d3   ................
14451942d1f2Sdan|    112: 0f ae 0e d2 00 00 00 00 00 00 00 00 00 00 00 00   ................
14461942d1f2Sdan|   3792: 00 00 34 04 06 17 0f 11 01 57 69 6e 64 65 78 61   ..4......Windexa
14471942d1f2Sdan|   3808: 74 31 05 43 52 45 41 54 45 20 55 4e 49 51 55 45   t1.CREATE UNIQUE
14481942d1f2Sdan|   3824: 20 49 4e 44 45 58 20 61 20 4f 4e 20 74 31 28 61    INDEX a ON t1(a
14491942d1f2Sdan|   3840: 2c 20 30 20 7c 20 61 29 81 23 01 07 17 11 11 01   , 0 | a).#......
14501942d1f2Sdan|   3856: 82 31 74 61 62 6c 65 74 31 74 31 02 43 52 45 41   .1tablet1t1.CREA
14511942d1f2Sdan|   3872: 54 45 20 54 41 42 4c 45 20 74 31 28 0a 20 20 20   TE TABLE t1(.
14521942d1f2Sdan|   3888: 20 67 63 62 20 41 53 20 28 62 2a 31 29 2c 0a 20    gcb AS (b*1),.
14531942d1f2Sdan|   3904: 20 20 20 61 20 49 34 54 45 47 45 52 20 50 52 49      a I4TEGER PRI
14541942d1f2Sdan|   3920: 4d 41 52 59 20 4b 45 59 2c 0a 20 20 20 20 67 63   MARY KEY,.    gc
14551942d1f2Sdan|   3936: 63 20 41 53 20 28 74 32 2b 30 29 2c 0a 20 20 20   c AS (t2+0),.
14561942d1f2Sdan|   3952: 20 62 20 55 4e 49 51 55 45 2c 0a 20 20 20 20 67    b UNIQUE,.    g
14571942d1f2Sdan|   3968: 63 61 20 41 53 20 28 31 2a 61 2b 30 29 2c 0a 20   ca AS (1*a+0),.
14581942d1f2Sdan|   3984: 20 20 20 74 32 20 55 4e 49 51 55 45 0a 20 20 29      t2 UNIQUE.  )
14591942d1f2Sdan|   4000: 20 57 49 54 48 4f 55 54 20 52 4f 57 49 44 23 03    WITHOUT ROWID#.
14601942d1f2Sdan|   4016: 06 17 37 11 01 00 69 6e 64 65 78 73 71 6c 69 74   ..7...indexsqlit
14611942d1f2Sdan|   4032: 65 5f 61 75 74 6f 69 6e 64 65 78 5f 74 31 5f 33   e_autoindex_t1_3
14621942d1f2Sdan|   4048: 74 31 02 23 02 06 17 37 11 01 00 69 6e 64 65 78   t1.#...7...index
14631942d1f2Sdan|   4064: 73 71 6c 69 74 65 5f 61 75 74 6f 69 6e 64 65 78   sqlite_autoindex
14641942d1f2Sdan|   4080: 5f 74 31 5f 32 74 31 02 00 00 00 08 00 00 00 00   _t1_2t1.........
14651942d1f2Sdan| page 2 offset 4096
14661942d1f2Sdan|      0: 0a 00 00 00 05 0f d8 00 0f f8 0f f8 9f e8 0f e0   ................
14671942d1f2Sdan|     16: 0f d8 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
14681942d1f2Sdan|   4048: 00 00 00 00 00 00 00 00 07 04 01 02 00 0f 13 88   ................
14691942d1f2Sdan|   4064: 07 04 01 02 00 0e 0f a0 07 04 01 02 00 0d 0b b8   ................
14701942d1f2Sdan|   4080: 07 04 01 02 00 0c 07 d0 07 04 01 02 00 0b 03 e8   ................
14711942d1f2Sdan| page 5 offset 16384
14721942d1f2Sdan|      0: 0a 00 00 00 05 0f e2 00 0f fa 0f f4 0f ee 0f e8   ................
14731942d1f2Sdan|     16: 0f e2 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
14741942d1f2Sdan|   4064: 00 00 05 03 01 01 0f 0f 05 03 01 01 0e 0e 05 03   ................
14751942d1f2Sdan|   4080: 01 01 0d 0d 05 03 01 01 0c 0c 05 03 01 01 0b 0b   ................
14761942d1f2Sdan| end crash-f022eb0ce64d27.db
14771942d1f2Sdan}]} {}
14781942d1f2Sdan
14791942d1f2Sdando_execsql_test 19.1 {
14801942d1f2Sdan  PRAGMA writable_schema=ON;
14811942d1f2Sdan}
14821942d1f2Sdando_catchsql_test 19.2 {
14831942d1f2Sdan  UPDATE t1 SET a=1;
1484093677adSdrh} {1 {database disk image is malformed}}
14851942d1f2Sdan
1486*4868a865Sdanreset_db
1487*4868a865Sdando_execsql_test 19.3 {
1488*4868a865Sdan  CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INTEGER, d TEXT);
1489*4868a865Sdan  CREATE INDEX i1 ON t1((NULL));
1490*4868a865Sdan  INSERT INTO t1 VALUES(1, NULL, 1, 'text value');
1491*4868a865Sdan  PRAGMA writable_schema = on;
1492*4868a865Sdan  UPDATE sqlite_schema SET
1493*4868a865Sdan      sql = 'CREATE INDEX i1 ON t1(b, c, d)',
1494*4868a865Sdan      tbl_name = 't1',
1495*4868a865Sdan      type='index'
1496*4868a865Sdan  WHERE name='i1';
1497*4868a865Sdan}
1498*4868a865Sdandb close
1499*4868a865Sdansqlite3 db test.db
1500*4868a865Sdando_catchsql_test 19.4 {
1501*4868a865Sdan  PRAGMA integrity_check;
1502*4868a865Sdan} {1 {database disk image is malformed}}
1503*4868a865Sdan
1504e6370e9cSdanfinish_test
1505