blob: b0ad66db448c3558feba0568a5fdac70b3b208d1 [file] [log] [blame]
# 2019-01-11
#
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
#
set testdir [file dirname $argv0]
source $testdir/tester.tcl
set testprefix corruptL
database_may_be_corrupt
#-------------------------------------------------------------------------
reset_db
do_test 1.0 {
sqlite3 db {}
db deserialize [decode_hexdb {
| size 356352 pagesize 4096 filename crash-acaae0347204ae.db
| page 1 offset 0
| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3.
| 16: 10 00 01 01 00 40 20 20 00 00 00 00 d0 00 00 00 .....@ ........
| 32: 40 00 ea 00 00 00 00 00 00 40 00 00 00 40 00 00 @........@...@..
| 96: 00 00 00 00 0d 00 00 00 04 0e 9c 00 0f ad 0f 4f ...............O
| 112: 0e fc 0e 9c 00 00 00 00 00 00 00 00 00 00 00 00 ................
| 3728: 00 00 00 00 00 00 00 00 00 00 00 00 5e 04 07 17 ............^...
| 3744: 1f 1f 01 81 0b 74 61 62 6c 65 74 31 5f 70 61 72 .....tablet1_par
| 3760: 65 6e 74 74 31 5f 70 61 72 65 6e 74 04 43 52 45 entt1_parent.CRE
| 3776: 41 54 45 20 54 41 42 4c 45 20 22 74 31 5f 70 61 ATE TABLE .t1_pa
| 3792: 72 65 6e 74 22 28 6e 6f 64 65 6e 6f 20 49 4e 54 rent.(nodeno INT
| 3808: 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 EGER PRIMARY KEY
| 3824: 2c 70 61 72 65 6e 74 6e 6f 64 65 29 51 03 06 17 ,parentnode)Q...
| 3840: 1b 1b 01 7b 74 61 62 6c 65 74 31 5f 6e 6f 64 65 ....tablet1_node
| 3856: 74 31 5f 6e 6f 64 65 03 43 52 45 41 54 45 20 54 t1_node.CREATE T
| 3872: 41 42 4c 45 20 22 74 31 5f 6e 6f 64 65 22 28 6e ABLE .t1_node.(n
| 3888: 6f 64 65 6e 6f 20 49 4e 54 45 47 45 52 20 50 52 odeno INTEGER PR
| 3904: 49 4d 41 52 59 20 4b 45 59 2c 64 61 74 61 29 5c IMARY KEY,data).
| 3920: 02 07 17 1d 1d 01 81 0b 74 61 62 6c 65 74 31 5f ........tablet1_
| 3936: 72 6f 77 69 64 74 31 5f 72 6f 77 69 64 02 43 52 rowidt1_rowid.CR
| 3952: 45 41 54 45 20 54 41 42 4c 45 20 22 74 31 5f 72 EATE TABLE .t1_r
| 3968: 6f 77 69 64 22 28 72 6f 77 69 64 20 49 4e 54 45 owid.(rowid INTE
| 3984: 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c GER PRIMARY KEY,
| 4000: 6e 6f 64 65 6e 6f 2c 61 30 2c 61 31 29 51 01 07 nodeno,a0,a1)Q..
| 4016: 17 11 11 08 81 0f 74 61 62 6c 65 74 31 74 31 43 ......tablet1t1C
| 4032: 52 45 41 54 45 20 56 49 52 54 55 41 4c 20 54 41 REATE VIRTUAL TA
| 4048: 42 4c 45 20 74 31 20 55 53 49 4e 47 20 72 74 72 BLE t1 USING rtr
| 4064: 65 65 28 69 64 2c 78 30 20 50 52 49 4d 41 52 59 ee(id,x0 PRIMARY
| 4080: 20 4b 45 59 2c 70 61 72 65 6e 74 6e 6f 64 65 29 KEY,parentnode)
| page 2 offset 4096
| 0: 51 03 06 17 1b 1b 01 7b 74 61 62 6c 65 74 31 5f Q.......tablet1_
| 16: 6e 6f 64 65 74 31 5f 6e 6f 64 65 03 43 52 45 41 nodet1_node.CREA
| 32: 54 45 20 54 41 42 4c 45 20 22 74 31 5f 6e 6f 64 TE TABLE .t1_nod
| 48: 65 22 28 6e 6f 64 65 6e 6f 20 49 4e 54 45 47 45 e.(nodeno INTEGE
| 64: 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 64 61 R PRIMARY KEY,da
| 80: 74 61 29 5c 02 07 17 1d 1d 01 81 0b 74 61 62 6c ta).........tabl
| 96: 65 74 31 5f 72 6f 77 69 64 74 31 5f 72 6f 77 69 et1_rowidt1_rowi
| 112: 64 02 43 52 45 41 54 45 20 54 41 42 4c 45 00 00 d.CREATE TABLE..
| 128: 01 0a 02 00 00 00 01 0e 0d 00 00 00 00 24 0e 0d .............$..
| 144: 0c 1a 06 85 50 46 60 27 70 08 00 00 00 00 00 00 ....PF`'p.......
| 3824: 00 00 00 00 00 00 00 0d 0e 05 00 09 1d 00 74 6f ..............to
| 3840: 79 20 68 61 6c 66 10 0d 05 00 09 23 00 62 6f 74 y half.....#.bot
| 3856: 74 6f 6d 20 68 61 6c 66 0f 0c 05 00 09 21 00 72 tom half.....!.r
| 3872: 69 67 68 74 20 68 61 6c 66 0e 0b 05 00 09 1f 00 ight half.......
| 3888: 6c 65 66 74 20 43 15 f6 e6 f6 46 50 34 35 24 54 left C....FP45$T
| 3904: 15 44 52 05 44 14 24 c4 52 02 27 43 15 f6 e6 f6 .DR.D.$.R.'C....
| 3920: 46 52 22 8e 6f 64 65 6e 6f 20 49 4e 54 45 47 45 FR..odeno INTEGE
| 3936: 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 64 61 R PRIMARY KEY,da
| 3952: 74 61 29 5c 02 07 17 1d 1d 01 81 0b 74 61 62 6c ta).........tabl
| 3968: 65 74 31 5f 72 6f 74 74 6f 6d 20 65 64 67 65 0f et1_rottom edge.
| 3984: 07 05 00 09 21 00 72 69 67 68 74 20 65 64 67 65 ....!.right edge
| 4000: 0e 06 05 00 09 1f 00 6c 65 66 74 20 65 64 67 65 .......left edge
| 4016: 0b 05 05 00 09 19 00 63 65 6e 74 65 72 17 04 05 .......center...
| 4032: 00 09 31 00 75 70 70 65 72 2d 72 69 67 68 74 20 ..1.upper-right
| 4048: 63 6f 72 6e 65 72 17 03 05 00 09 31 00 6c 6f 77 corner.....1.low
| 4064: 65 72 2d 72 69 67 68 74 20 63 6f 72 6e 65 72 16 er-right corner.
| 4080: 02 05 00 09 2f 00 75 70 70 65 72 2d 6c 65 66 74 ..../.upper-left
| page 3 offset 8192
| 0: 20 63 6f 72 6e 65 72 16 01 05 00 09 2f 01 8c 6f corner...../..o
| 16: 77 65 72 2d 6c 53 51 4c 69 74 65 20 66 6f 72 6d wer-lSQLite form
| 32: 61 74 20 33 00 10 00 01 01 00 40 20 20 00 00 00 at 3......@ ...
| 48: 00 00 00 00 2f 00 00 0d eb 13 00 00 00 03 00 00 ..../...........
| 64: 00 04 00 00 00 00 00 00 00 06 00 00 00 01 00 00 ................
| 80: 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 ................
| page 6 offset 20480
| 128: 00 00 00 00 00 00 00 00 97 3d 04 ae 7c 01 00 00 .........=..|...
| 624: 00 00 00 00 00 00 21 97 3d 04 ae 7c 01 00 00 00 ......!.=..|....
| 1120: 00 00 00 00 00 20 97 3d 04 ae 7c 01 00 00 00 00 ..... .=..|.....
| 1616: 00 00 00 00 1f 97 3d 04 ae 7c 01 00 00 00 00 00 ......=..|......
| 2112: 00 00 00 1e 97 3d 04 ae 7c 01 00 00 00 00 00 00 .....=..|.......
| 2608: 00 00 1d 97 d3 d0 4a e7 c0 00 00 00 00 00 00 00 ......J.........
| 3088: 00 00 00 00 00 00 00 00 00 00 00 00 01 f3 00 00 ................
| 3600: 23 97 3d 04 ae 7c 01 00 00 00 00 00 00 00 00 00 #.=..|..........
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26 ...............&
| page 8 offset 28672
| 0: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00 ......0..0......
| 1072: 97 4d 1e 14 00 ae 7c 00 00 00 00 00 00 00 00 00 .M....|.........
| 1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ................
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 ................
| page 10 offset 36864
| 0: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00 ......0..0......
| 1072: 9a ee c1 80 fd 78 1f ce 1b ae eb b4 00 00 00 00 .....x..........
| 1088: 13 20 ff 20 00 70 00 00 00 60 50 00 00 00 11 e0 . . .p...`P.....
| 1104: 00 00 00 70 00 00 00 60 50 05 35 14 c6 97 46 52 ...p...`P.5...FR
| 1120: 06 66 f7 26 d6 17 42 03 30 01 00 00 10 10 04 02 .f.&..B.0.......
| 1136: 02 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 .........@......
| 1152: 00 00 00 00 00 40 00 00 00 40 00 00 00 00 00 00 .....@...@......
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 ................
| page 12 offset 45056
| 0: 0d 00 00 00 01 04 30 00 04 30 e1 b4 30 97 4d 46 ......0..0..0.MF
| 16: 14 00 ae 7c 00 00 00 00 00 00 00 03 00 00 43 00 ...|..........C.
| page 47 offset 188416
| 2512: 00 00 00 00 00 00 00 00 be 00 00 00 00 00 00 00 ................
| page 87 offset 352256
| 2512: 00 00 00 00 00 00 00 00 aa 00 00 00 00 00 00 00 ................
| end crash-acaae0347204ae.db
}]} {}
do_catchsql_test 1.1 {
PRAGMA cell_size_check = off;
DROP INDEX t1x1;
} {1 {database disk image is malformed}}
do_catchsql_test 1.2 {
SELECT sum(s+length(b)) FROM t1 WHERE a IN (110,10,150) AND q IS NULL;
} {1 {database disk image is malformed}}
do_catchsql_test 1.3 {
REINDEX t1;
} {1 {database disk image is malformed}}
do_catchsql_test 1.4 {
PRAGMA integrity_check
} {1 {database disk image is malformed}}
#-------------------------------------------------------------------------
reset_db
do_test 2.0 {
sqlite3 db {}
db deserialize [decode_hexdb {
| size 20480 pagesize 4096 filename crash.txt.db
| page 1 offset 0
| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3.
| 16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 05 .....@ ........
| 32: 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 04 ................
| 48: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ................
| 96: 00 00 00 00 0d 00 00 00 05 0e 55 00 0f 74 0f 3c ..........U..t.<
| 112: 0e f9 0e d1 0e 55 00 00 00 00 00 00 00 00 00 00 .....U..........
| 3664: 00 00 00 00 00 7a 05 07 15 11 11 08 81 63 76 69 .....z.......cvi
| 3680: 65 77 76 31 76 31 43 52 45 41 54 45 20 56 49 45 ewv1v1CREATE VIE
| 3696: 57 20 76 31 28 78 2c 79 29 20 41 53 0a 53 45 4c W v1(x,y) AS.SEL
| 3712: 45 43 54 20 74 31 2e 62 2c 74 32 2e 62 20 46 52 ECT t1.b,t2.b FR
| 3728: 4f 4d 20 74 31 2c 74 32 20 57 48 45 52 45 20 74 OM t1,t2 WHERE t
| 3744: 31 2e 61 3d 74 32 2e 61 20 47 52 4f 55 50 20 42 1.a=t2.a GROUP B
| 3760: 59 20 31 20 48 41 56 49 4e 47 20 74 32 2e 63 20 Y 1 HAVING t2.c
| 3776: 4e 4f 54 20 4e 55 4c 4c 0a 4c 49 4d 49 54 20 31 NOT NULL.LIMIT 1
| 3792: 30 26 04 06 17 11 11 01 39 74 61 62 6c 65 74 32 0&......9tablet2
| 3808: 74 32 05 43 52 45 41 54 45 20 54 41 42 4c 45 20 t2.CREATE TABLE
| 3824: 74 32 28 61 2c 62 2c 63 29 41 03 06 17 15 11 01 t2(a,b,c)A......
| 3840: 6b 69 6e 64 65 78 74 31 78 31 74 31 04 43 52 45 kindext1x1t1.CRE
| 3856: 41 54 45 20 49 4e 44 45 58 20 73 31 78 31 20 4f ATE INDEX s1x1 O
| 3872: 4e 20 74 31 28 64 29 20 57 48 45 52 45 20 65 65 N t1(d) WHERE ee
| 3888: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 36 02 06 17 IS NOT NULL6...
| 3904: 17 11 01 53 69 6e 64 65 78 74 31 61 62 63 74 31 ...Sindext1abct1
| 3920: 03 43 52 45 41 54 45 20 49 4e 44 45 58 20 74 31 .CREATE INDEX t1
| 3936: 61 62 63 20 4f 4e 20 74 31 28 61 2c 62 2c 63 2b abc ON t1(a,b,c+
| 3952: 64 2b 65 29 81 09 01 07 17 11 11 01 81 7d 74 61 d+e)..........ta
| 3968: 62 6c 65 74 31 74 31 02 43 52 45 41 54 45 20 54 blet1t1.CREATE T
| 3984: 41 42 4c 45 20 74 31 28 61 2c 62 2c 63 2c 64 2c ABLE t1(a,b,c,d,
| 4000: 65 2c 66 2c 67 2c 68 2c 6a 2c 6a 6a 2c 6a 6a 6a e,f,g,h,j,jj,jjj
| 4016: 2c 6b 2c 61 61 2c 62 62 2c 63 63 2c 64 64 2c 65 ,k,aa,bb,cc,dd,e
| 4032: 65 20 44 45 46 41 55 4c 54 20 33 2e 31 34 2c 0a e DEFAULT 3.14,.
| 4048: 66 66 20 44 45 46 41 55 4c 54 28 27 68 69 63 63 ff DEFAULT('hicc
| 4064: 75 70 27 29 2c 67 67 20 4e 4f 54 20 4e 55 4c 4c up'),gg NOT NULL
| 4080: 20 44 45 46 41 55 4c 54 28 66 61 6c 73 65 29 29 DEFAULT(false))
| page 2 offset 4096
| 0: 0d 00 00 00 0a 0e 7b 00 0f dc 0f b6 0f 8f 0f 68 ...............h
| 16: 0f 41 0f 1a 0e f3 0e cb 0e a3 0e 7b 00 00 00 00 .A..............
| 3696: 00 00 00 00 00 00 00 00 00 00 00 26 0a 14 01 01 ...........&....
| 3712: 02 08 00 00 00 00 00 00 00 00 00 00 00 00 07 19 ................
| 3728: 08 09 5a 00 b4 40 09 1e b8 51 eb 85 1f 68 69 63 ..Z..@...Q...hic
| 3744: 63 75 70 26 09 14 01 01 02 08 00 00 00 00 00 00 cup&............
| 3760: 00 00 00 00 00 00 07 19 08 08 50 00 a0 40 09 1e ..........P..@..
| 3776: b8 51 eb 85 1f 68 69 63 63 75 70 26 08 14 01 01 .Q...hiccup&....
| 3792: 02 08 00 00 00 00 00 00 00 00 00 00 00 00 07 19 ................
| 3808: 08 07 46 00 8c 40 09 1e b8 51 eb 85 1f 68 69 63 ..F..@...Q...hic
| 3824: 63 75 70 25 07 14 01 01 01 08 00 00 00 00 00 00 cup%............
| 3840: 00 00 00 00 00 00 07 b9 08 06 3c 78 40 09 1e b8 ..........<x@...
| 3856: 51 eb 85 1f 68 69 63 63 75 70 25 06 14 01 00 01 Q...hiccup%.....
| 3872: 08 00 00 00 00 00 00 00 00 00 00 00 00 07 19 08 ................
| 3888: 05 32 64 40 09 1e b8 51 eb 85 1f 68 69 63 63 75 .2d@...Q...hiccu
| 3904: 70 25 05 14 01 01 01 08 00 00 00 00 00 00 00 00 p%..............
| 3920: 00 00 00 00 07 19 08 04 28 50 40 09 1e b8 51 eb ........(P@...Q.
| 3936: 85 1f 68 69 63 63 75 70 25 04 14 01 01 01 08 00 ..hiccup%.......
| 3952: 00 00 00 00 00 00 00 00 00 00 00 07 19 08 03 1e ................
| 3968: 3c 40 09 1e b8 51 eb 85 1f 68 69 63 63 75 70 25 <@...Q...hiccup%
| 3984: 03 14 01 01 01 08 00 00 00 00 00 00 00 00 00 00 ................
| 4000: 00 00 07 19 08 02 14 28 40 09 1e b8 51 eb 85 1f .......(@...Q...
| 4016: 68 69 63 63 75 70 24 02 14 09 01 01 08 00 00 00 hiccup$.........
| 4032: 00 00 00 00 00 00 00 00 00 07 19 08 0a 14 40 09 ..............@.
| 4048: 1e b8 51 eb 85 1f 68 69 63 63 75 70 22 01 14 08 ..Q...hiccup....
| 4064: 08 08 07 ff ff ff ff ff ff 00 00 00 00 00 00 07 ................
| 4080: 19 08 40 09 1e b8 51 eb 85 1f 68 69 63 63 75 70 ..@...Q...hiccup
| page 3 offset 8192
| 0: 0a 00 00 00 0a 0f aa 00 0f fa 0f f2 0f e9 0f e0 ................
| 16: 0f d7 0f ce 0f c5 0f bc 0e b3 0f aa 00 00 00 00 ................
| 4000: 00 00 00 00 00 00 00 00 00 00 08 05 01 01 00 01 ................
| 4016: 09 5a 0a 08 05 01 01 00 01 08 50 09 08 05 01 01 .Z........P.....
| 4032: 00 01 07 46 08 08 05 01 01 00 01 06 3c 07 08 05 ...F........<...
| 4048: 01 01 00 01 05 32 06 08 05 01 01 00 01 04 28 05 .....2........(.
| 4064: 08 05 01 01 00 01 03 1e 04 08 05 01 01 00 01 02 ................
| 4080: 14 03 07 05 09 01 00 01 0a 02 05 05 08 08 00 09 ................
| page 4 offset 12288
| 0: 0a 00 00 00 0a 0f cf 00 0f fc 0f f7 0f f2 0f ed ................
| 16: 0f e8 0f e3 0f de 0f d9 0f d4 0f cf 00 00 00 00 ................
| 4032: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 ................
| 4048: 03 08 01 0a 04 03 08 01 09 04 03 08 01 08 04 03 ................
| 4064: 08 01 07 04 03 08 01 06 04 03 08 01 05 04 03 08 ................
| 4080: 01 04 04 03 08 01 13 04 03 08 01 02 03 03 08 09 ................
| page 5 offset 16384
| 0: 0d 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 ................
| end crash.txt.db
}]} {}
do_execsql_test 2.1 {
PRAGMA writable_schema=ON; -- bypass improved sqlite_master consistency checking
INSERT INTO t1(b) VALUES(X'a0fee3669f9fddefc5cba913e4225d4b6ce2b04f26b87fad3ee6f9b7d90a1ea62a169bf41e5d32707a6ca5c3d05e4bde05c9d89eaaa8c50e74333d2e9fcd7dfe95528a3a016aac1102d825c5cd70cf99d8a88e0ea7f798d4334386518b7ad359beb168b93aba059a2a3bd93112d65b44c12b9904ea786b204d80531cdf0504bf9b203dbe927061974caf7b9f30cbc3397b61f802e732012a6663d41c3607d6f1c0dbcfd489adac05ca500c0b04439d894cd93a840159225ef73b627e178b9f84b3ffe66cf22a963a8368813ff7961fc47f573211ccec95e0220dcbb3bf429f4a50ba54d7a53784ac51bfef346e6ac8ae0d0e7c3175946e62ba2b');
}
do_catchsql_test 2.2 {
SELECT b,c FROM t1 ORDER BY a;
} {1 {database disk image is malformed}}
#-------------------------------------------------------------------------
reset_db
do_execsql_test 3.0 {
CREATE TABLE t1(a, b, c, d INTEGER PRIMARY KEY);
CREATE TABLE t2(a, b, c, d INTEGER PRIMARY KEY);
INSERT INTO t1(a, b, c, d) VALUES (1, 2, 3, 100), (4, 5, 6, 101);
INSERT INTO t2(a, b, c, d) VALUES (1, 100, 3, 1000), (4, 101, 6, 1001);
CREATE INDEX t1a ON t1(a);
CREATE INDEX t2a ON t2(a, b, c);
PRAGMA writable_schema = 1;
UPDATE sqlite_master SET sql = 'CREATE INDEX t2a ON t2(a)' WHERE name='t2a';
}
db close
sqlite3 db test.db
do_catchsql_test 3.1 {
INSERT INTO t1 SELECT * FROM t2;
} {1 {database disk image is malformed}}
#-------------------------------------------------------------------------
reset_db
do_test 4.0 {
sqlite3 db {}
db deserialize [decode_hexdb {
| size 4096 pagesize 512 filename crash-6b48ba69806134.db
| page 1 offset 0
| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3.
| 16: 02 00 01 01 00 40 20 20 00 ff ff ff ff 00 00 07 .....@ ........
| 32: 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 04 ................
| 48: 00 00 00 00 00 00 00 05 00 eb 00 01 00 00 00 00 ................
| 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c ................
| 96: 00 2e 2c 50 0d 00 00 00 06 01 06 00 01 da 01 b0 ..,P............
| 112: 05 56 01 86 01 2a 01 06 00 00 00 00 00 00 00 00 .V...*..........
| 128: 00 ff 00 00 ff ff ff e1 00 00 00 00 00 00 00 00 ................
| 144: 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 ................
| 160: 00 00 00 00 00 00 00 00 f2 00 00 00 00 00 00 00 ................
| 176: 00 00 f9 ff ff ff ff ff ff ff 00 00 00 00 00 fb ................
| 208: 00 00 00 00 00 00 00 00 1e 00 00 00 fe 00 00 00 ................
| 224: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ca 00 ................
| 256: 00 00 00 00 ef ff 22 07 06 17 11 11 01 31 74 61 .............1ta
| 272: 62 6c 65 74 38 38 74 04 43 52 45 41 54 45 20 54 blet88t.CREATE T
| 288: 41 42 4c 45 20 74 34 28 87 29 2a 06 06 17 13 11 ABLE t4(.)*.....
| 304: 01 3f 69 4f 64 65 78 74 33 78 74 33 05 43 52 45 .?iOdext3xt3.CRE
| 320: 41 54 45 20 49 6e 44 45 58 20 74 33 78 20 4f 4e ATE InDEX t3x ON
| 336: 20 74 33 28 78 29 2e 04 06 17 15 11 01 45 69 6e t3(x).......Ein
| 352: 64 65 2e 74 32 63 64 74 3d 05 43 52 45 41 54 45 de.t2cdt=.CREATE
| 368: 20 49 4e 44 45 58 20 74 32 63 64 20 4f 4e 20 74 INDEX t2cd ON t
| 384: 32 28 0a 0c 44 29 28 05 06 17 11 11 01 3d 74 61 2(..D)(......=ta
| 400: 62 6c 65 d4 33 74 33 04 43 52 45 41 54 45 20 54 ble.3t3.CREATE T
| 416: 41 42 4c 45 20 74 33 28 63 2c 78 2c 65 2c 66 29 ABLE t3(c,x,e,f)
| 432: 28 02 06 17 11 11 01 3d 74 61 62 6c 65 74 32 74 (......=tablet2t
| 448: 32 03 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 2.CREATE TABLE t
| 464: 32 28 63 2c 64 2c 65 2c 66 29 24 01 06 17 11 11 2(c,d,e,f)$.....
| 480: 01 35 74 60 62 6c 65 74 31 74 31 02 43 52 45 41 .5t`blet1t1.CREA
| 496: 54 45 20 54 41 42 4c 45 20 74 30 28 61 2c 62 29 TE TABLE t0(a,b)
| page 2 offset 512
| 0: 0d 00 ff 11 04 01 cf 00 01 fa 01 f3 01 de 01 cf ................
| 32: 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 13 ................
| 48: 00 00 00 00 00 00 00 00 00 00 00 01 00 20 00 00 ............. ..
| 64: 00 00 00 00 00 00 f8 ff ff ff 00 00 00 00 00 00 ................
| 160: 01 64 00 00 00 00 00 80 ff ff ff 00 00 00 00 00 .d..............
| 176: 00 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 03 ................
| 192: 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 ..@.............
| 288: 00 00 00 00 00 00 ff ff ff e9 00 00 00 00 00 00 ................
| 336: 01 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 ................
| 368: 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...............
| 384: 00 de ff 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
| 464: 00 00 00 00 00 13 76 65 6e 65 69 67 68 74 13 03 ......veneight..
| 480: 03 40 07 07 14 00 54 45 20 49 4e 44 45 58 20 74 .@....TE INDEX t
| 496: 32 63 64 20 4f 4e 20 74 32 28 0a 0c 44 09 01 02 2cd ON t2(..D...
| page 3 offset 1024
| 0: 0d 00 00 00 48 01 54 00 01 f7 01 ec 01 c5 01 aa ....H.T.........
| 16: 30 34 28 87 29 2a 06 06 17 13 11 01 3f 69 4f 64 04(.)*......?iOd
| 32: 65 79 74 33 78 74 33 6d 6d 6d 6d 6d 6d 7d 6d 6d eyt3xt3mmmmmm.mm
| 48: 6d 41 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d mAmmmmmmmmmmmmmm
| 64: 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 66 6d 6d 6d 6d mmmmmmmmmmmfmmmm
| 80: 6d 4e 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d mNmmmmmmmmmmmmmm
| 96: 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d mmmmmmmmmmmmmmmm
| 112: 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d mmmmmmmmmmmmmmmm
| 128: 6d 6d 6d 6d 6d 00 00 00 00 00 00 00 00 00 00 00 mmmmm...........
| 160: 80 00 00 00 00 00 00 03 00 00 00 ff e4 00 00 00 ................
| 208: 00 00 00 00 00 00 00 00 00 00 00 00 00 c5 00 00 ................
| 240: 14 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 ................
| 256: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f ec ................
| 304: 00 00 00 00 19 08 05 17 17 17 17 65 69 67 68 74 ...........eight
| 320: 65 69 67 68 74 73 65 00 00 00 00 00 00 00 00 00 eightse.........
| 336: 00 00 00 00 19 08 05 17 17 17 17 65 69 67 68 74 ...........eight
| 352: 65 69 67 68 74 73 65 01 65 6e 00 00 00 10 25 07 eightse.en....%.
| 368: 07 6e 25 07 07 07 40 18 00 00 00 00 00 00 40 18 .n%...@.......@.
| 384: 00 00 00 00 00 00 40 14 00 00 00 00 00 00 40 14 ......@.......@.
| 400: 00 00 00 00 00 00 09 06 05 01 01 01 01 04 04 03 ................
| 416: 03 07 05 05 01 01 09 09 02 02 19 04 05 17 17 17 ................
| 432: 17 10 65 76 65 6e 65 69 67 68 74 65 69 67 68 74 ..eveneighteight
| 448: 73 65 76 65 6e 25 03 05 07 07 07 07 40 14 00 00 seven%......@...
| 464: 00 00 00 00 40 18 00 00 00 00 00 00 40 18 00 00 ....@.......@...
| 480: 00 00 00 00 40 14 00 00 00 00 e8 f6 09 02 00 00 ....@...........
| 496: 00 00 00 00 00 00 00 00 00 00 64 00 00 00 00 02 ..........d.....
| page 4 offset 1536
| 0: 0d 00 00 00 00 02 00 00 00 00 00 00 00 00 00 fa ................
| 16: 1f a1 07 00 00 00 00 00 01 00 00 00 00 00 00 00 ................
| 32: 00 00 00 00 00 00 00 00 00 00 00 00 00 73 69 6d .............sim
| 48: 70 6c 65 00 00 00 00 00 00 00 00 00 00 00 00 00 ple.............
| 80: 00 00 00 00 00 10 00 00 00 00 00 00 01 00 00 00 ................
| 96: 00 00 00 00 00 00 00 00 00 00 00 00 00 fe ff ff ................
| 112: ff 00 00 00 00 00 00 00 00 00 00 00 4a 00 00 00 ............J...
| 144: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ................
| 176: e5 ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 ................
| 208: 00 00 00 00 00 00 00 00 00 00 36 36 00 00 00 00 ..........66....
| 240: 00 00 00 6c 00 00 00 00 00 00 00 00 00 00 00 00 ...l............
| 256: 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
| 320: 00 00 00 00 00 00 00 00 01 00 00 02 00 80 00 00 ................
| 336: 00 00 00 00 00 19 08 05 17 17 17 17 65 69 67 68 ............eigh
| 352: 74 65 69 67 68 74 73 65 76 65 6e 73 65 76 65 6e teightsevenseven
| 368: 25 07 05 07 07 07 07 40 18 00 00 00 00 00 00 40 %......@.......@
| 384: 18 00 20 00 00 00 40 00 14 00 00 00 00 00 00 40 .. ...@........@
| 400: 14 00 00 00 00 00 1c 09 06 05 01 01 01 01 04 04 ................
| 416: 03 03 07 05 05 01 01 00 00 00 00 00 00 00 00 00 ................
| 448: 74 73 65 76 65 6e 00 80 ff ff 00 00 00 00 00 aa tseven..........
| 464: 00 9e 00 00 00 00 00 00 00 00 00 00 00 70 6f 72 .............por
| 480: 74 65 72 00 00 00 00 00 00 00 00 00 00 00 00 00 ter.............
| 496: 00 00 00 00 00 00 29 00 00 00 00 00 00 00 00 00 ......).........
| page 5 offset 2048
| 0: 0a 00 00 00 08 01 96 00 01 fa 01 c5 01 f2 01 bc ................
| 16: 01 dc 01 a6 01 96 01 cc 00 00 00 00 00 00 00 00 ................
| 112: 00 00 00 09 00 00 00 00 01 00 00 00 00 00 00 00 ................
| 160: 74 72 69 67 62 ff ff ff ff fc 00 00 00 00 00 00 trigb...........
| 240: 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 00 00 ................
| 256: e5 ff ff ff 00 00 54 00 00 00 00 00 00 00 00 00 ......T.........
| 304: 00 00 00 00 00 00 09 00 00 00 00 00 00 00 00 00 ................
| 400: 00 00 00 00 00 09 00 00 00 00 01 00 00 00 00 00 ................
| 448: 00 00 74 72 69 67 62 ff ff ff ff fc 00 00 07 05 ..trigb.........
| 464: 05 01 01 09 09 02 02 19 04 05 17 17 17 17 10 65 ...............e
| 480: 76 65 6e 65 69 67 68 74 65 40 18 00 00 00 00 01 veneighte@......
| 496: 02 03 07 04 01 01 01 03 04 02 05 04 09 01 ff fd ................
| end crash-6b48ba69806134.db
}]} {}
set res {1 {database disk image is malformed}}
ifcapable oversize_cell_check {
set res {1 {no such table: t3}}
}
do_catchsql_test 4.1 {
PRAGMA writable_schema=ON; -- bypass improved sqlite_master consistency checking
INSERT INTO t3 SELECT * FROM t2;
} $res
#-------------------------------------------------------------------------
reset_db
do_test 5.0 {
sqlite3 db {}
db deserialize [decode_hexdb {
| size 192512 pagesize 4096 filename crash-9ae5502296c949.db
| page 1 offset 0
| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3.
| 16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 2f .....@ ......./
| 32: 00 00 00 1b 00 00 00 13 00 00 00 03 00 00 00 04 ................
| 48: 00 00 00 00 00 00 00 06 00 00 00 01 00 00 00 00 ................
| 64: 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ................
| 96: 00 00 00 00 0d 00 00 00 04 0e e2 00 0f 96 0f 44 ...............D
| 112: 0f 10 0e e2 00 00 00 00 00 00 00 00 00 00 00 00 ................
| 3808: 00 00 2c 04 06 17 15 11 01 41 69 6e 64 65 78 74 ..,......Aindext
| 3824: 31 78 32 74 31 06 43 52 45 41 54 45 20 49 4e 44 1x2t1.CREATE IND
| 3840: 45 58 20 74 31 78 32 20 4f 4e 20 74 31 28 62 29 EX t1x2 ON t1(b)
| 3856: 32 03 06 17 15 11 01 4d 69 6e 64 65 78 74 31 78 2......Mindext1x
| 3872: 31 74 31 05 43 52 45 41 54 45 20 49 4e 44 45 58 1t1.CREATE INDEX
| 3888: 20 74 31 78 31 20 4f 4e 20 74 31 28 67 2b 68 2c t1x1 ON t1(g+h,
| 3904: 6a 2c 6b 29 50 02 06 17 2b 2b 01 59 74 61 62 6c j,k)P...++.Ytabl
| 3920: 65 73 71 6c 69 74 65 5f 73 65 71 75 65 6e 63 65 esqlite_sequence
| 3936: 73 71 6c 69 74 65 5f 73 65 71 75 65 6e 63 65 04 sqlite_sequence.
| 3952: 43 52 45 41 54 45 20 54 41 42 4c 45 20 73 71 6c CREATE TABLE sql
| 3968: 69 74 65 5f 73 65 71 75 65 6e 63 65 28 6e 61 6d ite_sequence(nam
| 3984: 65 2c 73 65 71 29 68 01 07 17 11 11 01 81 3b 74 e,seq)h.......;t
| 4000: 61 62 6c 65 74 31 74 31 03 43 52 45 41 54 45 20 ablet1t1.CREATE
| 4016: 54 41 42 4c 45 20 74 31 28 61 20 49 4e 54 45 47 TABLE t1(a INTEG
| 4032: 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20 41 ER PRIMARY KEY A
| 4048: 55 54 4f 49 4e 43 52 45 4d 45 4e 54 2c 0a 62 2c UTOINCREMENT,.b,
| 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,
| 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)
| page 2 offset 4096
| 0: 01 00 00 00 00 01 00 00 00 00 01 00 00 00 00 01 ................
| 16: 00 00 00 00 02 10 00 00 00 05 00 00 00 03 02 00 ................
| 32: 00 00 00 05 00 00 00 03 02 00 00 00 00 05 00 00 ................
| 48: 00 03 02 00 00 00 00 05 00 00 00 03 02 00 00 00 ................
| 64: 00 05 00 00 00 03 02 00 00 00 00 05 00 00 00 03 ................
| 80: 02 00 00 00 00 05 00 00 00 03 02 00 00 00 00 05 ................
| 96: 00 00 00 03 02 00 00 00 00 05 00 00 00 03 05 00 ................
| 112: 00 00 03 03 00 00 00 23 02 00 00 00 00 03 00 00 .......#........
| 128: 00 23 02 00 00 00 00 03 00 00 00 23 02 00 00 00 .#.........#....
| 144: 00 03 00 00 00 23 02 00 00 00 00 03 00 00 00 23 .....#.........#
| 160: 05 00 00 00 06 05 00 00 00 06 02 00 00 00 00 03 ................
| 176: 00 00 00 06 02 00 00 00 00 03 00 00 00 24 02 00 .............$..
| 192: 00 00 00 03 00 00 00 24 02 00 00 00 00 03 00 00 .......$........
| 208: 00 24 02 00 00 00 00 02 00 00 00 00 03 00 00 00 .$..............
| 224: 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 $...............
| page 3 offset 8192
| 0: 05 00 00 00 09 0f d0 00 00 00 00 19 0f fb 0f f6 ................
| 16: 0f f1 0f ec 0f e7 0f e2 0f dc 0f d6 0f d0 0f a0 ................
| 32: 0f a0 0f a0 0f a0 0f a0 0f a0 0f a0 0f a0 0f a0 ................
| 1072: 00 97 4c 0a 14 00 ae 7c 00 00 00 00 00 00 00 00 ..L....|........
| 1088: 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 00 ................
| 4000: 0f ac 00 06 00 00 00 00 00 30 00 00 00 00 00 00 .........0......
| 4048: 00 00 00 16 81 2a 00 00 00 14 81 16 00 00 00 12 .....*..........
| 4064: 81 02 00 00 00 10 6e 00 00 00 0e 5a 00 00 00 0c ......n....Z....
| 4080: 46 00 00 00 0a 32 00 00 00 08 1e 00 00 00 18 0a F....2..........
| page 4 offset 12288
| 0: 0d 00 00 00 01 0f f7 00 0f f7 00 00 00 00 00 00 ................
| 4080: 00 00 00 00 00 00 00 07 01 03 11 02 74 31 00 be ............t1..
| page 5 offset 16384
| 0: 0a 0f 7c 00 0a 0f 74 00 0f f9 0f eb 0f dd 0f cf ..|...t.........
| 16: 0f c1 0f b3 0f a4 0f 94 0f 84 0f 74 0f 74 0f 74 ...........t.t.t
| 32: 0f 74 0f 74 0f 74 0f 74 0f 74 0f 74 0f 74 00 00 .t.t.t.t.t.t.t..
| 3952: 00 00 00 00 07 05 00 00 00 02 00 be 0f 8c 00 08 ................
| 3968: 00 00 00 00 07 05 00 00 00 02 00 aa 0f 9c 00 08 ................
| 3984: 00 00 00 00 07 05 00 00 00 02 00 96 0f ac 00 08 ................
| 4000: 00 00 00 00 07 05 00 00 00 02 00 82 0f ba 00 07 ................
| 4016: 00 00 00 06 05 00 00 00 01 6e 0f c8 00 07 00 00 .........n......
| 4032: 00 06 05 00 00 00 01 5a 0f d6 00 07 00 00 00 06 .......Z........
| 4048: 05 00 00 00 01 46 0f e4 00 07 00 00 00 06 05 00 .....F..........
| 4064: 00 00 01 32 0f f2 00 07 00 00 00 06 05 00 00 00 ...2............
| 4080: 01 1e 00 00 00 07 00 00 00 06 05 00 00 00 01 0a ................
| page 6 offset 20480
| 0: 02 00 00 00 01 0e 0d 00 00 00 00 24 0e 0d 0c 1a ...........$....
| 16: 06 55 04 66 02 77 00 88 00 00 00 00 00 00 00 00 .U.f.w..........
| 128: 00 00 00 00 00 00 00 00 97 3d 04 ae 7c 01 00 00 .........=..|...
| 624: 00 00 00 00 00 00 21 97 3d 04 ae 7c 01 00 00 00 ......!.=..|....
| 1120: 00 00 00 00 00 20 97 3d 04 ae 7c 01 00 00 00 00 ..... .=..|.....
| 1616: 00 00 00 00 1f 97 3d 04 ae 7c 01 00 00 00 00 00 ......=..|......
| 2112: 00 00 00 1e 97 3d 04 ae 7c 01 00 00 00 00 00 00 .....=..|.......
| 2608: 00 00 1d 97 3d 04 ae 7c 01 00 00 00 00 00 00 00 ....=..|........
| 3088: 00 00 00 00 00 00 00 00 00 00 00 00 01 f3 00 00 ................
| 3600: 23 97 3d 04 ae 7c 01 00 00 00 00 00 00 00 00 00 #.=..|..........
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26 ...............&
| page 8 offset 28672
| 0: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00 ......0..0......
| 1072: 97 4d 1e 14 00 ae 7c 00 00 00 00 00 00 00 00 00 .M....|.........
| 1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ................
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 ................
| page 10 offset 36864
| 256: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00 ......0..0......
| 1072: 97 4d 32 14 00 ae 7c 00 00 00 00 00 00 00 00 00 .M2...|.........
| 1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ................
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 ................
| page 12 offset 45056
| 0: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00 ......0..0......
| 1072: 97 4d 46 14 00 ae 7c 00 00 00 00 00 00 00 00 00 .MF...|.........
| 1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ................
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 ................
| page 14 offset 53248
| 0: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00 ......0..0......
| 1072: 97 4d 5a 14 00 ae 7c 00 00 00 00 00 00 00 00 00 .MZ...|.........
| 1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ................
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 ................
| page 16 offset 61440
| 0: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00 ......0..0......
| 1072: 97 4d 6e 14 00 ae 7c 00 00 00 00 00 00 00 00 00 .Mn...|.........
| 1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ................
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b ................
| page 18 offset 69632
| 0: 0d 00 00 00 01 04 2f 00 04 2f 00 00 00 00 00 00 ....../../......
| 1056: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97 ................
| 1072: 4d 81 02 14 00 ae 7c 00 00 00 00 00 00 00 00 00 M.....|.........
| 1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ................
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d ................
| page 20 offset 77824
| 0: 0d 00 00 00 01 04 2f 00 04 2f 00 00 00 00 00 00 ....../../......
| 1056: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97 ................
| 1072: 4d 81 16 14 00 ae 7c 00 00 00 00 00 00 00 00 00 M.....|.........
| 1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ................
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f ................
| page 22 offset 86016
| 0: 0d 00 00 00 01 04 2f 00 04 2f 00 00 00 00 00 00 ....../../......
| 1056: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97 ................
| 1072: 4d 81 2a 14 00 ae 7c 00 00 00 00 00 00 00 00 00 M.*...|.........
| 1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ................
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 ................
| page 24 offset 94208
| 0: 0d 00 00 00 01 04 31 00 04 31 00 00 00 00 00 00 ......1..1......
| 1072: 00 97 4c 0a 14 00 ae 7c 00 00 00 00 00 00 00 00 ..L....|........
| 1088: 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 00 ................
| page 25 offset 98304
| 0: 0d 00 00 00 01 04 2f 00 04 2f 00 00 00 00 00 00 ....../../......
| 1056: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97 ................
| 1072: 4d 81 3e 14 00 ae 7c 00 00 00 00 00 00 00 00 00 M.>...|.........
| 1088: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ................
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 ................
| page 26 offset 102400
| 2512: 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 ................
| page 27 offset 106496
| 0: 00 00 00 00 00 00 00 12 00 00 00 07 00 00 00 1d ................
| 16: 00 00 00 09 00 00 00 1f 00 00 00 0b 00 00 00 21 ...............!
| 32: 00 00 00 0d 00 00 00 25 00 00 00 0f 00 00 00 19 .......%........
| 48: 00 00 00 11 00 00 00 29 00 00 00 13 00 00 00 2b .......).......+
| 64: 00 00 00 15 00 00 00 2d 00 00 00 2e 00 00 00 17 .......-........
| page 28 offset 110592
| 2512: 00 00 00 00 00 00 00 1e 00 00 00 00 00 00 00 00 ................
| page 30 offset 118784
| 2512: 00 00 00 00 00 00 00 32 00 00 00 00 00 00 00 00 .......2........
| page 32 offset 126976
| 2512: 00 00 00 00 00 00 00 46 00 00 00 00 00 00 00 00 .......F........
| page 34 offset 135168
| 2512: 00 00 00 00 00 00 00 5a 00 00 00 00 00 00 00 00 .......Z........
| page 35 offset 139264
| 0: 0a 08 44 00 05 02 77 00 0e 11 0a 33 06 55 02 77 ..D...w....3.U.w
| 16: 04 66 00 88 00 88 00 88 00 00 00 00 00 00 00 00 .f..............
| 128: 00 00 00 00 00 00 00 00 04 66 01 ef 00 00 00 00 .........f......
| 624: 00 00 00 00 00 00 00 97 3d 04 ae 7c 01 00 00 00 ........=..|....
| 1120: 00 00 00 00 00 20 97 3d 04 ae 7c 01 00 00 00 00 ..... .=..|.....
| 1616: 00 00 00 00 22 97 3d 04 ae 7c 01 00 00 00 00 00 ......=..|......
| 2112: 00 00 00 1e 0c 22 01 ef 00 00 00 00 00 00 00 00 ................
| 2608: 00 00 00 97 3d 04 ae 7c 01 00 00 00 00 00 00 00 ....=..|........
| 3104: 00 1c 00 00 01 ef 00 00 00 00 00 00 00 00 00 00 ................
| 3600: 00 97 3d 04 ae 7c 01 00 00 00 00 00 00 00 00 00 ..=..|..........
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a ................
| page 36 offset 143360
| 0: 0a 08 44 00 04 02 77 00 06 55 02 77 04 66 0e 11 ..D...w..U.w.f..
| 16: 00 88 00 88 00 88 0e 11 00 00 00 00 00 00 00 00 ................
| 128: 00 00 00 00 00 00 00 00 04 76 01 ef 00 00 00 00 .........v......
| 624: 00 00 00 00 00 00 00 97 3e 04 ae 7c 02 00 00 00 ........>..|....
| 1120: 00 00 00 00 00 2a 97 3e 04 ae 7c 02 00 00 00 00 .....*.>..|.....
| 1616: 00 00 00 00 2c 97 3e 04 ae 7c 02 00 00 00 00 00 ....,.>..|......
| 2112: 00 00 00 28 00 00 05 cd 00 00 00 00 00 00 00 00 ...(............
| 3600: 00 97 3e 04 ae 7c 02 00 00 00 00 00 00 00 00 00 ..>..|..........
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2f .............../
| page 38 offset 151552
| 2512: 00 00 00 00 00 00 00 6e 00 00 00 00 00 00 00 00 .......n........
| page 40 offset 159744
| 2512: 00 00 00 00 00 00 00 00 82 00 00 00 00 00 00 00 ................
| page 42 offset 167936
| 2512: 00 00 00 00 00 00 00 00 96 00 00 00 00 00 00 00 ................
| page 44 offset 176128
| 2512: 00 00 00 00 00 00 00 00 aa 00 00 00 00 00 00 00 ................
| page 47 offset 188416
| 2512: 00 00 00 00 00 00 00 00 be 00 00 00 00 00 00 00 ................
| end crash-9ae5502296c949.db
}]} {}
do_catchsql_test 5.1 {
INSERT INTO t1(b) VALUES(zeroblob(40000));
} {1 {database disk image is malformed}}
do_catchsql_test 5.2 {
DROP INDEX t1x2;
} {0 {}}
do_catchsql_test 5.3 {
INSERT INTO t1(b) VALUES(zeroblob(40000));
} {1 {database disk image is malformed}}
#-------------------------------------------------------------------------
reset_db
do_test 6.0 {
sqlite3 db {}
db deserialize [decode_hexdb {
| size 20480 pagesize 4096 filename crash-d260f001fa015c.db
| page 1 offset 0
| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3.
| 16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 05 .....@ ........
| 32: 00 00 00 00 00 ff ff f0 00 00 00 02 00 00 00 04 ................
| 48: 00 00 00 00 00 00 00 64 00 00 00 01 00 00 00 00 .......d........
| 96: 00 00 00 00 0d 0f f8 00 04 0e ce 00 0f 4c 0f d3 .............L..
| 112: 0e fa 0e ce 00 00 00 00 00 00 00 00 00 00 00 00 ................
| 3776: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2a 04 ..............*.
| 3792: 06 17 13 11 01 3f 69 6e 64 65 78 74 31 62 74 31 .....?indext1bt1
| 3808: 05 43 52 45 41 54 45 20 49 4e 44 45 58 20 74 31 .CREATE INDEX t1
| 3824: 62 20 4f 4e 20 74 31 28 62 29 50 03 06 17 2b 2b b ON t1(b)P...++
| 3840: 01 59 74 61 62 6c 65 73 71 6c 69 74 65 5f 73 65 .Ytablesqlite_se
| 3856: 71 75 65 6e 63 65 73 71 6c 69 74 65 5f 73 65 71 quencesqlite_seq
| 3872: 75 65 6e 63 65 04 43 52 45 41 54 45 20 54 41 42 uence.CREATE TAB
| 3888: 4c 45 20 73 71 6c 69 74 65 5f 73 65 71 75 65 6e LE sqlite_sequen
| 3904: 63 65 28 6e 61 6d 65 2c 73 65 71 29 81 04 01 07 ce(name,seq)....
| 3920: 17 11 11 01 81 73 74 61 62 6c 65 74 31 74 31 02 .....stablet1t1.
| 3936: 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 31 28 CREATE TABLE t1(
| 3952: 61 20 52 45 41 4c 20 4e 4f 54 20 4e 55 4c 4c 20 a REAL NOT NULL
| 3968: 44 45 46 41 55 4c 54 28 32 35 2b 33 32 29 2c 62 DEFAULT(25+32),b
| 3984: 20 46 4c 4f 41 54 2c 63 20 44 4f 55 42 4c 45 20 FLOAT,c DOUBLE
| 4000: 55 4e 49 51 55 45 2c 0a 64 20 43 4c 4f 42 2c 65 UNIQUE,.d CLOB,e
| 4016: 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 INTEGER PRIMARY
| 4032: 20 4b 45 59 20 41 55 54 4f 49 4e 43 52 45 4d 45 KEY AUTOINCREME
| 4048: 4e 54 29 23 02 06 17 37 11 01 00 69 6e 64 65 78 NT)#...7...index
| 4064: 73 71 6c 69 74 65 5f 61 75 74 6f 69 6e 64 65 78 sqlite_autoindex
| 4080: 5f 74 31 5f 31 74 31 05 00 00 00 08 00 00 00 00 _t1_1t1.........
| page 2 offset 4096
| 0: 0d 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 ................
| page 3 offset 8192
| 0: 0a 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 ................
| page 4 offset 12288
| 0: 0d 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 ................
| page 5 offset 16384
| 0: 0a 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 ................
| end crash-d260f001fa015c.db
}]} {}
do_catchsql_test 6.1 {
BEGIN;
INSERT INTO t1(b) VALUES(1);
INSERT INTO t1(b) VALUES(2);
COMMIT;
} {1 {malformed database schema (t1b) - invalid rootpage}}
#-------------------------------------------------------------------------
reset_db
do_test 7.0 {
sqlite3 db {}
db deserialize [decode_hexdb {
| size 20480 pagesize 4096 filename crash-8391315d75edff.db
| page 1 offset 0
| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3.
| 16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 05 .....@ ........
| 32: 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 04 ................
| 48: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ................
| 96: 00 00 00 00 0d 00 00 00 05 0e 55 00 0f 74 0f 3c ..........U..t.<
| 112: 0e f9 0e d1 0e 55 00 00 00 00 00 00 00 00 00 00 .....U..........
| 3664: 00 00 00 00 00 7a 05 07 15 11 11 08 81 63 76 69 .....z.......cvi
| 3680: 65 77 76 31 76 31 43 52 45 41 54 45 20 56 49 45 ewv1v1CREATE VIE
| 3696: 57 20 76 31 28 78 2c 69 29 20 41 53 0a 53 45 4c W v1(x,i) AS.SEL
| 3712: 45 43 54 20 74 31 2e 62 2c 74 32 2e 62 20 46 52 ECT t1.b,t2.b FR
| 3728: 4f 4d 20 74 31 2c 74 32 20 57 48 45 52 45 20 74 OM t1,t2 WHERE t
| 3744: 31 2e 61 3d 74 32 2e 61 20 47 52 4f 55 50 20 42 1.a=t2.a GROUP B
| 3760: 59 20 31 20 48 41 56 49 4e 47 20 74 32 2e 63 20 Y 1 HAVING t2.c
| 3776: 4e 4f 54 20 4e 55 4c 4c 0a 4c 49 4d 49 54 20 31 NOT NULL.LIMIT 1
| 3792: 30 26 04 06 17 11 11 01 39 74 61 62 6c 65 74 32 0&......9tablet2
| 3808: 74 32 05 43 52 45 41 54 45 20 54 41 42 4c 45 20 t2.CREATE TABLE
| 3824: 74 32 28 61 2c 62 2c 63 29 41 03 06 17 15 11 01 t2(a,b,c)A......
| 3840: 6b 69 6e 64 65 78 74 31 78 31 74 31 03 43 52 45 kindext1x1t1.CRE
| 3856: 41 54 45 20 49 4e 44 45 58 20 74 31 78 31 20 4f ATE INDEX t1x1 O
| 3872: 4e 20 74 31 28 64 29 20 57 48 45 52 45 20 65 65 N t1(d) WHERE ee
| 3888: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 36 02 06 17 IS NOT NULL6...
| 3904: 17 11 01 53 69 6e 64 65 78 74 31 61 62 63 74 31 ...Sindext1abct1
| 3920: 03 43 52 45 41 54 45 20 49 4e 44 45 58 20 74 31 .CREATE INDEX t1
| 3936: 61 62 63 20 4f 4e 20 74 31 28 61 2c 62 2c 63 2b abc ON t1(a,b,c+
| 3952: 64 2b 65 29 81 09 01 07 17 11 11 01 81 7d 74 61 d+e)..........ta
| 3968: 62 6c 65 74 31 74 31 02 43 52 45 41 54 45 20 54 blet1t1.CREATE T
| 3984: 41 42 4c 45 20 74 31 28 61 2c 62 2c 63 2c 64 2c ABLE t1(a,b,c,d,
| 4000: 65 2c 66 2c 67 2c 68 2c 6a 2c 6a 6a 2c 6a 6a 6a e,f,g,h,j,jj,jjj
| 4016: 2c 6b 2c 61 61 2c 62 69 8c 63 63 2c 64 64 2c 65 ,k,aa,bi.cc,dd,e
| 4032: 65 20 44 45 46 41 55 4c 54 20 33 2e 31 34 2c 0a e DEFAULT 3.14,.
| 4048: 66 66 20 44 45 46 41 55 4c 54 28 27 68 69 63 63 ff DEFAULT('hicc
| 4064: 75 70 27 29 2c 67 67 20 4e 4f 54 20 4e 55 4c 4c up'),gg NOT NULL
| 4080: 20 44 45 46 41 55 4c 54 28 66 61 6c 73 65 29 29 DEFAULT(false))
| page 2 offset 4096
| 0: 0d 00 00 00 0a 0e 7b 00 0f dc 0f b6 0f 8f 0f 68 ...............h
| 16: 0f 41 0f 1a 0e f3 0e cb 0e a3 0e 22 00 00 00 00 .A..............
| 3696: 00 00 00 00 00 00 00 00 00 00 00 26 0a 14 01 01 ...........&....
| 3712: 02 08 00 00 00 00 00 00 00 00 00 00 00 00 07 19 ................
| 3728: 08 09 5a 00 b4 40 09 1e b8 51 eb 95 1f 68 69 63 ..Z..@...Q...hic
| 3744: 63 75 70 26 09 14 01 01 02 08 00 00 00 00 00 00 cup&............
| 3760: 00 00 00 00 00 00 07 19 08 08 50 00 a0 40 09 1e ..........P..@..
| 3776: b8 51 eb 85 1f 68 69 63 63 74 70 26 08 14 01 01 .Q...hicctp&....
| 3792: 03 08 00 00 00 00 00 00 00 00 00 00 00 00 07 19 ................
| 3808: 08 07 46 00 8c 40 09 1e b8 51 eb 85 1f 68 69 63 ..F..@...Q...hic
| 3824: 63 75 70 25 07 14 01 01 01 08 00 00 00 00 00 00 cup%............
| 3840: 00 00 00 00 00 10 07 19 08 06 3c 78 40 09 1e b8 ..........<x@...
| 3856: 51 eb 85 1f 68 69 63 63 75 70 25 06 14 01 01 01 Q...hiccup%.....
| 3872: 08 00 00 00 00 00 00 00 00 00 00 00 00 07 19 08 ................
| 3888: 05 32 64 40 09 1e b8 51 eb 85 1f 68 69 63 63 75 .2d@...Q...hiccu
| 3904: 70 25 05 14 01 01 01 08 00 00 00 00 00 00 00 00 p%..............
| 3920: 00 00 00 00 07 19 08 04 28 50 40 09 1e b8 51 eb ........(P@...Q.
| 3936: 85 1f 68 69 63 63 75 70 25 04 14 01 00 f1 08 00 ..hiccup%.......
| 3952: 00 00 00 00 00 00 00 00 00 00 00 07 19 08 03 1e ................
| 3968: 3c 40 09 1e b8 51 eb 85 1f 68 69 63 63 75 70 25 <@...Q...hiccup%
| 3984: 03 14 01 01 01 08 00 00 00 00 00 00 00 00 00 00 ................
| 4000: 00 00 07 19 08 02 14 28 40 09 1e b8 51 eb 85 1f .......(@...Q...
| 4016: 68 69 63 63 75 70 24 02 14 09 01 01 08 00 00 00 hiccup$.........
| 4032: 00 00 00 00 00 00 00 00 00 07 19 08 0a 14 40 09 ..............@.
| 4048: 1e b8 51 eb 85 1f 68 69 63 63 75 70 22 01 14 08 ..Q...hiccup....
| 4064: 08 08 08 00 00 00 00 00 00 00 00 00 00 00 00 07 ................
| 4080: 19 08 40 09 1e b8 51 eb 85 1f 68 69 63 63 75 70 ..@...Q...hiccup
| page 3 offset 8192
| 0: 0a 00 00 00 0a 0f aa 00 0f fa 0f f2 0f e9 0f e0 ................
| 16: 0f d7 0f ce 0f c5 0f bc 0f b3 0f aa 00 00 00 00 ................
| 4000: 00 00 00 00 00 00 00 00 00 00 08 05 01 01 00 01 ................
| 4016: 09 5a 0a d8 05 01 01 00 01 08 50 09 08 05 01 01 .Z........P.....
| 4032: 00 01 07 46 08 08 05 01 01 00 01 06 3c 07 08 05 ...F........<...
| 4048: 01 01 00 01 05 32 06 08 05 01 01 00 01 04 28 05 .....2........(.
| 4064: 08 05 01 02 60 01 03 1e 04 08 05 01 01 00 01 02 ....`...........
| 4080: 14 03 07 05 09 01 00 01 0a 02 05 05 08 08 00 09 ................
| page 4 offset 12288
| 0: 0a 00 00 00 0a 0f cf 00 0f fc 0f f7 0f f2 0f ed ................
| 16: 0f e8 0f e3 0f de 0f d9 0f d4 0f cf 00 00 00 00 ................
| 4032: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 ................
| 4048: 03 08 01 0a 04 03 08 01 09 04 03 08 01 08 04 03 ................
| 4064: 08 01 07 04 03 08 01 06 04 03 08 01 05 04 03 08 ................
| 4080: 01 04 04 03 08 01 03 04 03 08 01 02 03 03 08 09 ................
| page 5 offset 16384
| 0: 0d 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 ................
| end crash-8391315d75edff.db
}]} {}
do_catchsql_test 7.1 {
SELECT * FROM sqlite_master;
} {1 {malformed database schema (t1x1) - invalid rootpage}}
#-------------------------------------------------------------------------
reset_db
do_test 8.0 {
sqlite3 db {}
db deserialize [decode_hexdb {
| size 2048 pagesize 512 filename a.db
| page 1 offset 0
| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3.
| 16: 02 00 01 01 00 40 20 20 ff ff 00 0c 00 00 00 07 .....@ ........
| 32: 0b 00 00 00 00 00 00 00 00 00 00 08 9c 00 00 04 ................
| 48: 00 00 00 e0 09 00 00 01 00 00 00 01 00 00 00 00 ................
| 64: 00 00 00 00 f2 ff 00 00 00 00 00 00 00 00 00 00 ................
| 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c ................
| 96: 00 2e 2c 50 0d 00 00 00 06 01 06 00 01 da 01 b0 ..,P............
| 112: 05 56 01 86 01 2a 01 06 00 00 00 00 00 06 00 00 .V...*..........
| 128: 00 ff 00 00 ff ff ff e1 00 00 00 00 00 00 00 00 ................
| 144: 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 ................
| 160: 00 00 00 00 00 00 00 00 f2 00 00 00 00 00 00 00 ................
| 176: 00 00 f9 ff ff ff ff ff ff ff 00 00 00 5f 00 fb ............._..
| 192: 00 00 00 00 00 00 00 00 00 e1 ff 00 00 00 00 00 ................
| 208: 00 00 10 00 00 00 00 00 1e 00 00 00 fe 00 00 00 ................
| 224: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ca 00 ................
| 240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 ...............5
| 256: 00 00 00 00 ef ff 22 07 06 17 11 11 01 30 39 38 .............098
| 272: 62 6c 65 74 38 38 74 04 43 52 45 41 54 45 20 54 blet88t.CREATE T
| 288: 41 42 4c 45 20 74 34 28 87 29 2a 06 06 17 13 11 ABLE t4(.)*.....
| 304: 01 3f 69 4f 64 65 78 74 33 78 74 40 05 43 52 45 .?iOdext3xt@.CRE
| 320: 41 54 45 20 49 6e 44 45 58 20 74 33 78 20 4f 4e ATE InDEX t3x ON
| 336: 20 74 33 28 78 29 2e 04 06 17 15 11 01 45 69 6e t3(x).......Ein
| 352: 00 04 00 00 34 63 64 74 3d 05 43 52 45 41 54 45 ....4cdt=.CREATE
| 368: 20 49 4e 44 45 58 20 63 74 64 32 20 4f 4e 20 74 INDEX ctd2 ON t
| 384: 32 28 0a 0c 44 29 28 05 06 17 11 11 01 3d 74 6c 2(..D)(......=tl
| 400: 62 61 d4 65 33 74 33 04 43 52 45 41 54 45 20 54 ba.e3t3.CREATE T
| 416: 41 42 4c 45 20 74 33 28 63 2c 78 2c 65 2c 66 29 ABLE t3(c,x,e,f)
| 432: 28 02 06 17 11 11 01 3d 74 61 62 6c 65 74 32 74 (......=tablet2t
| 448: 32 03 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 2.CREATE TABLE t
| 464: 32 28 63 2c 64 2c 65 2c 66 29 24 01 06 17 11 11 2(c,d,e,f)$.....
| 480: 01 35 74 60 62 6c 65 74 31 74 31 02 43 52 45 41 .5t`blet1t1.CREA
| 496: 54 45 20 54 41 42 4c 45 20 74 30 28 61 2c 62 29 TE TABLE t0(a,b)
| page 2 offset 512
| 0: 0d 00 ff 11 04 01 cf 80 01 fa 01 09 00 de 01 cf ................
| 16: 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 ................
| 32: 00 00 08 00 00 00 00 00 00 11 00 00 00 00 00 13 ................
| 48: 00 00 00 00 00 00 00 00 00 00 00 01 00 e0 ff ff ................
| 64: ff d2 ff ff ff 00 f8 ff ff ff 00 00 00 00 00 00 ................
| 80: 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
| 96: 00 00 00 00 ff de 00 00 00 00 00 00 00 00 00 00 ................
| 112: 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 .............@..
| 128: 2a 00 00 00 00 00 00 00 00 f7 00 00 00 00 00 00 *...............
| 144: 00 00 00 00 00 21 00 00 00 00 00 00 00 00 00 00 .....!..........
| 160: 01 64 00 00 00 00 04 80 ff ff ff 00 00 00 00 00 .d..............
| 176: 00 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 00 ................
| 192: 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 ..@.............
| 208: b5 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 .......@........
| 224: 00 00 00 f6 00 ee ff ff ff 00 00 00 00 00 00 00 ................
| 272: f2 00 00 00 00 00 00 00 00 00 f9 ff ff ff ff ff ................
| 288: ff ff 00 00 00 5f 00 fb 00 00 00 00 00 00 00 00 ....._..........
| 320: 1e 00 00 00 fe 00 00 00 00 00 00 00 00 00 00 00 ................
| 336: 00 00 00 00 00 00 ca 00 00 00 00 00 00 00 ff ec ................
| 352: 00 00 00 00 00 00 00 32 00 00 00 00 ef ff 22 07 .......2........
| 368: 06 17 11 11 01 30 74 61 62 6c 65 74 38 38 74 04 .....0tablet88t.
| 384: 43 52 45 41 54 45 20 54 41 42 4c 45 20 8c cb d7 CREATE TABLE ...
| 400: 78 d6 d5 f9 f9 17 13 11 01 3f 69 4f 64 65 78 74 x........?iOdext
| 416: 33 78 74 33 05 43 52 45 41 54 45 26 49 6e 44 45 3xt3.CREATE&InDE
| 432: 58 20 74 33 78 00 00 00 00 00 00 00 00 00 00 00 X t3x...........
| 464: 00 00 00 00 00 13 76 65 6e 65 69 67 68 74 13 03 ......veneight..
| 480: 03 40 07 07 15 00 54 45 20 49 4e 44 45 58 20 74 .@....TE INDEX t
| 496: 31 63 64 20 4f 4e 20 74 ce d7 f5 f0 44 09 01 02 1cd ON t....D...
| page 3 offset 1024
| 0: 0d 00 00 00 48 01 54 00 01 f6 e2 ec 01 c5 01 aa ....H.T.........
| 16: 30 34 28 87 29 32 06 f5 16 13 11 01 8e 61 24 64 04(.)2.......a$d
| 32: 65 78 74 37 78 1f 33 6d 6d 6d 6d 6d 00 00 04 06 ext7x.3mmmmm....
| 48: 6d 41 6d 6d 6e 6d 6d 00 00 02 00 6d 6d 6d 6d 6d mAmmnmm....mmmmm
| 64: 15 11 01 45 45 45 45 45 45 45 45 45 45 45 45 45 ...EEEEEEEEEEEEE
| 80: 45 45 45 45 45 45 45 45 45 45 45 00 45 63 74 64 EEEEEEEEEEE.Ectd
| 96: 34 20 4f 4e 20 61 62 6c 5d 74 38 38 74 04 43 52 4 ON abl]t88t.CR
| 112: 45 41 54 45 20 54 41 42 4c 45 20 74 34 28 87 29 EATE TABLE t4(.)
| 128: 2a 06 06 13 13 01 00 00 00 4f 64 6e 78 74 33 44 *........Odnxt3D
| 144: 74 13 05 43 52 45 41 54 45 20 49 6e 44 45 00 00 t..CREATE InDE..
| 160: 00 00 00 00 00 00 00 f9 ff ff ff ff ff ff ff 00 ................
| 176: 00 00 5f 00 fb 00 00 2d 00 00 00 00 00 00 00 00 .._....-........
| 192: 00 00 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 ................
| 208: 00 fe 00 00 00 00 17 15 11 01 45 69 6e 64 65 2e ..........Einde.
| 224: 5b 38 63 64 74 3d 05 43 52 45 41 54 45 20 49 4e [8cdt=.CREATE IN
| 240: 44 45 58 20 63 20 64 32 20 4f 4e 20 74 32 28 0a DEX c d2 ON t2(.
| 256: 0c 44 32 05 00 10 00 00 11 11 3d 74 6c 62 61 d4 .D2.......=tlba.
| 272: 65 33 74 33 04 43 52 45 41 54 45 20 54 41 42 4c e3t3.CREATE TABL
| 288: 45 20 74 36 ff ff 7f ff 43 52 45 41 54 45 20 49 E t6....CREATE I
| 304: 73 71 6c 69 74 65 5f 73 65 71 75 65 6e 63 65 28 sqlite_sequence(
| 320: 0a 0c 44 29 28 05 06 17 11 11 01 3d 74 6c 62 61 ..D)(......=tlba
| 336: 20 00 00 00 33 04 43 52 45 41 54 45 20 54 41 42 ...3.CREATE TAB
| 352: 4c 45 20 74 33 28 63 2c 78 2c 65 2c 66 29 28 02 LE t3(c,x,e,f)(.
| 368: 06 00 00 7f ff 40 41 54 45 20 49 6e 44 45 58 20 .....@ATE InDEX
| 384: 74 33 78 20 4f 4e 20 74 31 28 78 29 2e 04 06 17 t3x ON t1(x)....
| 400: 15 11 01 45 69 6e 64 65 2e 74 34 63 64 74 3d 05 ...Einde.t4cdt=.
| 416: 00 00 00 00 00 00 00 00 00 00 00 4d 00 00 00 00 ...........M....
| 432: 01 00 00 00 00 00 00 05 00 00 10 00 00 00 00 00 ................
| 448: 00 01 00 00 00 00 01 00 00 00 00 07 40 14 00 00 ............@...
| 464: 00 00 21 00 40 18 00 00 00 00 00 00 40 1c 00 00 ..!.@.......@...
| 480: 00 00 ff ff ff 00 00 00 5f 00 fb 00 00 2d 00 00 ........_....-..
| 496: 00 00 00 1e 00 00 00 fe 00 00 64 00 00 ff fb 02 ..........d.....
| page 4 offset 1536
| 0: 0d 00 39 00 00 02 00 00 00 00 00 00 00 00 00 00 ..9.............
| end a.db
}]} {}
set res {1 {database disk image is malformed}}
ifcapable oversize_cell_check {
set res {1 {no such table: t3}}
}
do_catchsql_test 8.1 {
PRAGMA writable_schema=ON; -- bypass improved sqlite_master consistency checking
INSERT INTO t3 SELECT * FROM t2;
} $res
#-------------------------------------------------------------------------
reset_db
do_test 9.0 {
sqlite3 db {}
db deserialize [decode_hexdb {
| size 8192 pagesize 4096 filename crash-ab10597e4e1c32.db
| page 1 offset 0
| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3.
| 16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 00 .....@ ........
| 96: 00 00 00 00 0d 00 00 00 01 0f d6 00 0f d6 00 00 ................
| 4048: 00 00 00 00 00 00 28 01 06 17 11 11 01 3d 74 61 ......(......=ta
| 4064: 62 6c 65 74 31 74 31 02 43 52 45 41 54 45 20 54 blet1t1.CREATE T
| 4080: 41 42 4c 45 20 74 31 28 61 2c 62 2c 63 2c 64 29 ABLE t1(a,b,c,d)
| page 2 offset 4096
| 0: 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
| end crash-ab10597e4e1c32.db
}]} {}
do_execsql_test 9.1 {
SAVEPOINT one;
}
do_catchsql_test 9.3 {
INSERT INTO t1(b,c) VALUES(5,6);
} {1 {database disk image is malformed}}
do_execsql_test 9.3 {
ROLLBACK TO one;
}
#-------------------------------------------------------------------------
reset_db
do_test 10.0 {
sqlite3 db {}
db deserialize [decode_hexdb {
| size 180224 pagesize 4096 filename crash-41390d95d613b6.db
| page 1 offset 0
| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3.
| 16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 00 .....@ ........
| 96: 00 00 00 00 0d 00 00 00 04 0e e2 00 0f 96 0f 44 ...............D
| 112: 0f 10 0e e2 00 00 00 00 00 00 00 00 00 00 00 00 ................
| 3808: 00 00 2c 14 06 17 15 11 01 41 69 6e 64 65 78 74 ..,......Aindext
| 3824: 41 78 33 74 31 06 43 52 45 41 54 45 20 49 4e 44 Ax3t1.CREATE IND
| 3840: 45 58 20 74 31 78 32 20 4f 4e 20 74 31 28 62 29 EX t1x2 ON t1(b)
| 3856: 32 03 06 17 15 11 01 4d 69 6e 64 65 78 74 31 88 2......Mindext1.
| 3872: 31 74 31 05 43 52 45 41 54 45 20 49 4e 44 45 58 1t1.CREATE INDEX
| 3888: 20 74 31 78 31 20 4f 4e 20 74 31 28 67 2b 68 2c t1x1 ON t1(g+h,
| 3904: 6a 2d 6b 29 50 02 06 17 2b 2b 01 59 74 61 62 6c j-k)P...++.Ytabl
| 3920: 65 73 71 6c 69 74 65 5e 73 65 71 74 65 6e 63 65 esqlite^seqtence
| 3936: 73 71 6c 69 74 65 5f 73 65 71 75 65 6e 63 65 04 sqlite_sequence.
| 3952: 43 52 45 41 54 45 20 54 41 42 4c 45 20 73 71 6c CREATE TABLE sql
| 3968: 69 74 65 5f 73 65 71 75 65 6e 63 65 28 6e 61 6d ite_sequence(nam
| 3984: 65 2c 73 65 71 29 68 00 07 17 11 11 01 81 3b 74 e,seq)h.......;t
| 4000: 61 62 6c 65 74 31 74 31 03 43 52 45 41 54 45 20 ablet1t1.CREATE
| 4016: 54 41 42 4c 45 20 74 31 28 61 20 49 4e 54 45 47 TABLE t1(a INTEG
| 4032: 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20 41 ER PRIMARY KEY A
| 4048: 55 54 4f 49 4e 43 52 45 4d 45 4e 54 2c 0a 62 2c UTOINCREMENT,.b,
| 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,
| 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)
| page 2 offset 4096
| 0: 01 00 00 00 00 01 00 00 10 00 01 00 00 00 00 01 ................
| 16: 00 00 00 00 02 00 0f f0 00 15 00 00 00 03 02 00 ................
| 32: 00 00 d9 05 00 00 00 03 02 00 00 00 00 05 00 00 ................
| 48: 10 03 02 00 00 00 00 05 00 00 00 03 02 00 00 00 ................
| 64: 00 05 00 00 00 02 62 00 00 00 00 05 00 00 00 03 ......b.........
| 80: 02 00 00 00 00 05 00 00 00 03 02 00 00 00 00 05 ................
| 96: 00 00 00 03 02 00 00 00 00 05 00 00 00 03 05 00 ................
| 112: 00 00 03 03 01 00 00 23 02 00 00 4f 00 02 00 00 .......#...O....
| 128: 10 25 02 00 00 00 00 03 00 00 00 23 02 00 00 00 .%.........#....
| 144: 00 03 00 00 00 23 02 00 00 00 00 03 00 00 00 23 .....#.........#
| 160: 05 00 08 90 06 05 00 00 00 06 01 ff 00 00 00 03 ................
| 176: 00 00 00 06 02 00 00 00 00 02 ff 00 00 00 00 00 ................
| page 3 offset 8192
| 0: 05 00 00 00 09 0f d0 00 00 00 00 19 0f fb 0f f6 ................
| 16: 0f f1 10 ec ec e7 0f e2 0f dc 0f d6 0f 00 00 00 ................
| 1072: 00 97 4c 0a 24 00 ae 00 00 00 00 00 00 00 00 00 ..L.$...........
| 4048: 00 00 00 16 83 39 ff ff ff 14 81 16 00 00 00 12 .....9..........
| 4064: 81 02 00 00 00 10 6e 00 00 00 0e 5a 00 00 00 0c ......n....Z....
| 4080: 46 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F...............
| page 4 offset 12288
| 1072: 97 4d 32 14 00 ae 00 00 00 00 00 00 00 00 00 00 .M2.............
| 4080: 00 00 00 00 00 00 00 07 01 03 11 02 74 31 00 bd ............t1..
| page 5 offset 16384
| 0: fa 0f 7c 00 0a 0f 74 00 0f f9 0f eb 0f dd 0f cf ..|...t.........
| 16: 0f c1 0f b3 0f a4 0e 94 0f 84 0f 74 0f 74 0f 74 ...........t.t.t
| 32: 0f 74 0f 64 0f 00 00 00 00 00 00 00 00 00 00 00 .t.d............
| 3952: 00 00 00 00 07 05 00 00 00 02 00 be 0f 8c 10 07 ................
| 3968: ff ff 00 00 07 05 00 00 00 02 00 aa 0f 9b f0 08 ................
| 3984: c8 00 00 00 37 06 00 00 00 01 00 96 0f ac 00 08 ....7...........
| 4000: 00 00 00 b3 07 15 00 10 00 02 00 82 0f ba 00 07 ................
| 4016: 00 00 00 06 05 00 00 00 01 6e 0f c8 00 07 00 00 .........n......
| 4032: 00 06 05 00 00 00 01 5a 03 f6 00 07 00 00 00 06 .......Z........
| 4048: 05 00 00 00 01 46 0f e4 00 07 00 00 10 06 05 00 .....F..........
| 4064: 00 00 01 32 10 02 00 07 00 00 00 07 05 00 00 00 ...2............
| 4080: 01 1d ff ff ff 07 10 00 00 06 05 00 00 00 01 0a ................
| page 6 offset 20480
| 624: 00 00 00 00 00 21 97 00 00 00 00 00 00 00 00 00 .....!..........
| 1120: 00 00 00 00 00 24 57 3e 00 00 00 00 00 00 00 00 .....$W>........
| 1616: 00 00 00 00 1f 97 00 00 00 00 00 00 00 00 00 00 ................
| 2112: 00 00 00 1e 97 3d 00 00 00 00 00 00 00 00 00 00 .....=..........
| 2608: 00 1d 97 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
| page 8 offset 28672
| 1184: 00 00 00 00 00 00 00 00 00 97 4d 1e 13 ff ae 7c ..........M....|
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 ................
| page 9 offset 32768
| 256: 0d 01 c0 00 01 04 30 00 04 30 00 00 00 00 00 00 ......0..0......
| page 10 offset 36864
| 0: 0d 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 ................
| page 12 offset 45056
| 0: 0d 00 00 00 01 04 30 00 00 00 00 00 00 00 00 00 ......0.........
| page 14 offset 53248
| 0: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00 ......0..0......
| 1072: 96 4d 5a 14 00 00 00 00 00 00 00 00 00 00 00 00 .MZ.............
| page 16 offset 61440
| 0: 0d 00 00 00 01 04 30 00 04 30 00 00 00 00 00 00 ......0..0......
| 1072: 97 4d 6e 14 00 ae 7b ff ff ff ff 00 00 00 00 00 .Mn.............
| page 18 offset 69632
| 1056: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97 ................
| 1072: 4d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 M...............
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d ................
| page 20 offset 77824
| 1056: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97 ................
| 1072: 4d 81 16 14 00 ae 00 00 00 00 00 00 00 00 00 00 M...............
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f ................
| page 22 offset 86016
| 0: 0d 00 00 00 01 04 2f 00 04 2f 01 00 00 00 00 00 ....../../......
| 1056: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97 ................
| 1072: 4d 81 2a 14 00 00 00 00 00 00 00 00 00 00 00 00 M.*.............
| page 24 offset 94208
| 1072: 00 97 4c 0a 14 00 ae 7c 00 00 00 00 00 00 00 00 ..L....|........
| page 25 offset 98304
| 1056: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97 ................
| 1072: 4d 81 3e 14 00 ae 7c 00 00 18 ff 00 00 00 00 00 M.>...|.........
| page 27 offset 106496
| 0: 00 00 00 00 00 00 00 12 00 00 00 07 00 00 00 1d ................
| 16: 00 00 00 09 00 00 00 1f 00 00 00 0b 00 00 00 21 ...............!
| 32: 00 00 00 0d 00 10 00 25 00 00 00 0f 00 00 00 27 .......%.......'
| 48: 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 ................
| page 32 offset 126976
| 2512: 00 00 00 00 00 00 00 45 21 00 00 00 00 00 00 00 .......E!.......
| page 35 offset 139264
| 0: 00 0a 08 44 00 05 02 77 00 0e 11 0a 92 00 00 00 ...D...w........
| 1120: 00 00 00 00 00 20 97 00 00 00 00 00 00 00 00 00 ..... ..........
| 1616: 00 00 00 00 22 00 00 00 00 00 00 00 00 00 00 00 ................
| 2608: 00 00 00 97 3d 04 00 00 00 00 00 00 00 00 00 00 ....=...........
| 3104: 00 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
| 3600: 00 97 3d 04 ae 7c 00 00 00 00 00 00 00 00 00 00 ..=..|..........
| 4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a ................
| page 36 offset 143360
| 0: 0a 08 44 00 04 02 00 00 00 00 00 00 00 00 00 00 ..D.............
| 1120: 00 00 00 00 00 2a 97 3e 04 00 00 00 00 00 00 00 .....*.>........
| 1616: 00 00 00 00 2c 97 3e 00 00 00 00 00 00 00 00 00 ....,.>.........
| 2112: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 38 ...............8
| 2128: 00 00 05 cd 00 00 00 00 00 00 00 00 00 00 00 00 ................
| 3600: 00 97 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
| page 38 offset 151552
| 2464: 00 00 00 00 00 00 00 00 00 6e 00 00 00 00 00 00 .........n......
| page 40 offset 159744
| 2512: 00 00 00 00 00 00 00 00 82 00 00 00 00 00 00 00 ................
| page 42 offset 167936
| 2512: 00 00 00 00 00 00 00 96 00 00 00 00 00 00 00 00 ................
| page 44 offset 176128
| 2512: 00 00 00 00 00 00 00 00 aa 00 00 00 00 00 00 00 ................
| end crash-41390d95d613b6.db
}]} {}
do_catchsql_test 10.1 {
PRAGMA writable_schema=ON; -- bypass improved sqlite_master consistency checking
SELECT * FROM t1 WHERE a<='2019-05-09' ORDER BY a DESC;
} {1 {database disk image is malformed}}
#-------------------------------------------------------------------------
reset_db
do_test 11.0 {
sqlite3 db {}
db deserialize [decode_hexdb {
| size 595 pagesize 512 filename x.db
| page 1 offset 0
| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3.
| 16: 02 00 00 01 00 40 20 20 00 01 00 0c 00 00 00 07 .....@ ........
| 32: 00 00 00 05 07 a1 1f fa 00 00 00 08 00 00 00 04 ................
| 48: 00 00 01 00 00 49 00 00 00 00 00 05 00 00 00 00 .....I..........
| 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1c ................
| 96: 00 2e 2c 50 0d 00 00 00 06 01 06 00 01 da 01 b0 ..,P............
| 112: 01 56 01 86 01 2a 01 06 00 00 62 00 00 00 00 00 .V...*....b.....
| 128: 00 ed e2 78 74 64 33 ff 43 52 45 41 54 45 20 49 ...xtd3.CREATE I
| 144: 4e 44 45 58 20 74 33 78 20 4f 4e 20 74 33 28 38 NDEX t3x ON t3(8
| 160: 29 2e 04 06 17 15 11 01 45 69 6e 64 65 68 74 32 ).......Eindeht2
| 176: 63 64 74 31 e5 43 52 45 41 54 45 20 49 4e 44 45 cdt1.CREATE INDE
| 192: 58 20 74 32 63 c4 20 4f 4e 20 74 32 28 63 2c 64 X t2c. ON t2(c,d
| 208: 29 28 05 06 17 01 11 11 3d 74 61 6c 36 74 62 74 )(......=tal6tbt
| 224: 65 32 04 43 52 45 41 54 45 20 54 41 42 4c 45 20 e2.CREATE TABLE
| 240: 74 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 t...............
| 256: 00 00 00 00 00 00 22 07 06 17 11 11 01 30 e8 03 .............0..
| 272: 62 6c 65 74 34 74 35 02 43 52 45 41 54 45 20 54 blet4t5.CREATE T
| 288: 41 42 4c 45 20 74 34 28 94 29 2a 06 06 17 13 11 ABLE t4(.)*.....
| 304: 01 3f 69 33 74 6e 65 78 78 74 64 33 ff 43 52 45 .?i3tnexxtd3.CRE
| 320: 41 54 45 20 49 4e 44 45 58 20 74 33 78 20 4f 4e ATE INDEX t3x ON
| 336: 20 74 31 28 38 29 2e 04 06 17 15 11 01 45 69 6e t1(8).......Ein
| 352: 64 65 68 74 32 63 64 74 31 e5 43 52 45 41 54 45 deht2cdt1.CREATE
| 368: 20 49 4e 44 45 58 20 74 32 63 c4 20 4f 4e 20 74 INDEX t2c. ON t
| 384: 32 28 63 2c 64 29 28 05 06 17 01 11 11 3d 74 61 2(c,d)(......=ta
| 400: 6c 32 74 62 74 65 32 04 43 52 45 41 54 45 20 54 l2tbte2.CREATE T
| 416: 41 42 4c 45 20 74 33 28 63 2c 78 2c 65 2c 66 29 ABLE t3(c,x,e,f)
| 432: 28 02 06 17 11 11 01 3d 74 61 9e 93 65 74 32 74 (......=ta..et2t
| 448: 32 03 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 2.CREATE TABLE t
| 464: 32 28 63 2c 64 2c 65 2c 66 29 24 01 06 17 11 11 2(c,d,e,f)$.....
| 480: 01 35 55 61 62 6c 88 74 31 74 31 02 43 52 45 41 .5Uabl.t1t1.CREA
| 496: 54 45 20 54 41 42 4c 45 20 74 31 28 61 2c 62 29 TE TABLE t1(a,b)
| page 2 offset 512
| 0: 0d 00 00 00 0d 25 00 01 cf 00 01 fa 01 f3 01 de .....%..........
| 16: 01 00 00 00 fd 00 00 0d 00 00 00 00 45 20 54 41 ............E TA
| 32: 42 4c 45 20 74 34 28 94 29 2a 06 06 17 13 11 01 BLE t4(.)*......
| 48: 3f 69 33 74 6e 65 78 78 74 64 33 ff 43 52 45 a0 ?i3tnexxtd3.CRE.
| 64: a0 a0 a0 a0 a0 a0 a0 a0 a0 a0 a0 a0 74 13 11 01 ............t...
| 80: 49 45 74 00 00 00 00 00 00 00 00 00 00 00 00 00 IEt.............
| end x.db
}]} {}
do_catchsql_test 11.1 {
PRAGMA writable_schema=ON; -- bypass improved sqlite_master consistency checking
DELETE FROM t3 WHERE x IN (SELECT x FROM t4);
} {1 {database disk image is malformed}}
finish_test