#-------------------------------------------------------------------------
-proc hex2blob {hex} {
- # Split on newlines:
- set bytes [list]
- foreach l [split $hex "\n"] {
- if {[string is space $l]} continue
- set L [list]
- foreach b [split $l] {
- if {[string is xdigit $b] && [string length $b]==2} {
- lappend L [expr "0x$b"]
+ifcapable vtab {
+
+ proc hex2blob {hex} {
+ # Split on newlines:
+ set bytes [list]
+ foreach l [split $hex "\n"] {
+ if {[string is space $l]} continue
+ set L [list]
+ foreach b [split $l] {
+ if {[string is xdigit $b] && [string length $b]==2} {
+ lappend L [expr "0x$b"]
+ }
}
+ if {[llength $L]!=16} {
+ error "Badly formed hex (1)"
+ }
+ set bytes [concat $bytes $L]
}
- if {[llength $L]!=16} {
- error "Badly formed hex (1)"
- }
- set bytes [concat $bytes $L]
+
+ binary format c* $bytes
}
+
+ reset_db
+ db func hex2blob hex2blob
+
+ do_execsql_test 3.1 {
+ PRAGMA page_size=1024;
+ CREATE TABLE t1(a, b, c);
+ CREATE TABLE t2(a, b, c);
+ CREATE TABLE t3(a, b, c);
+ CREATE TABLE t4(a, b, c);
+ CREATE TABLE t5(a, b, c);
+ }
+
+ do_execsql_test 3.2 {
+ UPDATE sqlite_dbpage SET data = hex2blob('
+ 000: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3.
+ 010: 04 00 01 01 20 40 20 20 00 00 3e d9 00 00 00 06 .... @ ..>.....
+ 020: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 04 ................
+ 030: 0f 00 00 00 00 00 00 00 00 00 00 01 00 00 83 00 ................
+ 040: 00 00 00 00 00 00 00 00 00 00 00 00 00 38 00 00 .............8..
+ 050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3e d9 ..............>.
+ 060: 00 2d e6 07 0d 00 00 00 01 03 a0 00 03 e0 00 00 .-..............
+ 070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 0a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 0b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 0c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 0d0: 00 00 00 00 00 c1 00 00 00 00 00 00 00 00 00 00 ................
+ 0e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 0f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 160: 00 83 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 180: 00 00 00 00 00 00 00 00 00 00 07 00 30 00 00 00 ............0...
+ 190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 1c0: 02 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 ................
+ 1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 1f0: 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 220: 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 230: 0c 00 00 00 00 00 00 60 00 00 00 06 00 00 c3 00 .......`........
+ 240: 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 270: 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 290: 04 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 2a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 2b0: 00 00 00 00 83 00 8c 00 00 00 00 00 00 00 00 00 ................
+ 2c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 2d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 2e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 2f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 310: 00 78 00 00 00 00 00 00 00 00 00 00 00 00 70 00 .x............p.
+ 320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 340: 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 350: 00 00 00 00 00 68 00 00 00 00 00 00 00 00 00 00 .....h..........
+ 360: 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 ................
+ 370: 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 ................
+ 380: 00 00 00 00 70 00 00 00 00 00 00 00 00 00 00 00 ....p...........
+ 390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ 3a0: 5e 01 07 17 1b 1b 01 81 13 74 61 62 6c 65 73 65 ^........tablese
+ 3b0: 6e 73 6f 32 73 73 65 6e 73 6f 72 73 02 43 52 45 nso2ssensors.CRE
+ 3c0: 41 54 45 20 54 41 42 4c 45 20 73 65 6e 73 6f 72 ATE TABLE sensor
+ 3d0: 73 20 0a 20 20 24 20 20 20 20 20 20 20 20 20 20 s . $
+ 3e0: b8 6e 61 6d 65 21 74 65 78 74 2c 20 79 61 6c 20 .name!text, yal
+ 3f0: 72 65 61 6c 2c 20 74 69 6d 65 20 74 65 78 74 29 real, time text)
+ ') WHERE pgno=1
+ }
+
+ db close
+ sqlite3 db test.db
+
+ do_catchsql_test 3.3 {
+ PRAGMA integrity_check;
+ } {1 {database disk image is malformed}}
- binary format c* $bytes
-}
-
-reset_db
-db func hex2blob hex2blob
-
-do_execsql_test 3.1 {
- PRAGMA page_size=1024;
- CREATE TABLE t1(a, b, c);
- CREATE TABLE t2(a, b, c);
- CREATE TABLE t3(a, b, c);
- CREATE TABLE t4(a, b, c);
- CREATE TABLE t5(a, b, c);
-}
-
-do_execsql_test 3.2 {
- UPDATE sqlite_dbpage SET data = hex2blob('
- 000: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3.
- 010: 04 00 01 01 20 40 20 20 00 00 3e d9 00 00 00 06 .... @ ..>.....
- 020: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 04 ................
- 030: 0f 00 00 00 00 00 00 00 00 00 00 01 00 00 83 00 ................
- 040: 00 00 00 00 00 00 00 00 00 00 00 00 00 38 00 00 .............8..
- 050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3e d9 ..............>.
- 060: 00 2d e6 07 0d 00 00 00 01 03 a0 00 03 e0 00 00 .-..............
- 070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 0a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 0b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 0c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 0d0: 00 00 00 00 00 c1 00 00 00 00 00 00 00 00 00 00 ................
- 0e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 0f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 160: 00 83 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 180: 00 00 00 00 00 00 00 00 00 00 07 00 30 00 00 00 ............0...
- 190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 1c0: 02 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 ................
- 1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 1f0: 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 220: 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 230: 0c 00 00 00 00 00 00 60 00 00 00 06 00 00 c3 00 .......`........
- 240: 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 270: 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 290: 04 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 2a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 2b0: 00 00 00 00 83 00 8c 00 00 00 00 00 00 00 00 00 ................
- 2c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 2d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 2e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 2f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 310: 00 78 00 00 00 00 00 00 00 00 00 00 00 00 70 00 .x............p.
- 320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 340: 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 350: 00 00 00 00 00 68 00 00 00 00 00 00 00 00 00 00 .....h..........
- 360: 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 ................
- 370: 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 ................
- 380: 00 00 00 00 70 00 00 00 00 00 00 00 00 00 00 00 ....p...........
- 390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 3a0: 5e 01 07 17 1b 1b 01 81 13 74 61 62 6c 65 73 65 ^........tablese
- 3b0: 6e 73 6f 32 73 73 65 6e 73 6f 72 73 02 43 52 45 nso2ssensors.CRE
- 3c0: 41 54 45 20 54 41 42 4c 45 20 73 65 6e 73 6f 72 ATE TABLE sensor
- 3d0: 73 20 0a 20 20 24 20 20 20 20 20 20 20 20 20 20 s . $
- 3e0: b8 6e 61 6d 65 21 74 65 78 74 2c 20 79 61 6c 20 .name!text, yal
- 3f0: 72 65 61 6c 2c 20 74 69 6d 65 20 74 65 78 74 29 real, time text)
- ') WHERE pgno=1
-}
-
-db close
-sqlite3 db test.db
-
-do_catchsql_test 3.3 {
- PRAGMA integrity_check;
-} {1 {database disk image is malformed}}
+} ;# ifcapable vtab