# 2018 Feb 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. # #*********************************************************************** # # The focus of this file is testing the zonefile extension. # if {![info exists testdir]} { set testdir [file join [file dirname [info script]] .. .. test] } source [file join $testdir tester.tcl] set testprefix zonefile1 load_static_extension db zonefile do_execsql_test 1.0 { CREATE TABLE zz(k INTEGER PRIMARY KEY, frame INTEGER, idx INTEGER, v BLOB); INSERT INTO zz VALUES(1, -1, -1, randomblob(100)); INSERT INTO zz VALUES(2, -1, -1, randomblob(100)); INSERT INTO zz VALUES(3, -1, -1, randomblob(100)); } do_execsql_test 1.1 { SELECT zonefile_write('test.zonefile', 'zz'); } {{}} do_execsql_test 1.2 { CREATE VIRTUAL TABLE z1 USING zonefile; SELECT name FROM sqlite_master WHERE name LIKE 'z1%' ORDER BY 1; } {z1 z1_files z1_shadow_file z1_shadow_idx} do_execsql_test 1.3 { INSERT INTO z1_files(filename) VALUES('test.zonefile'); SELECT filename, json_extract(header, '$.magicNumber'), json_extract(header, '$.numFrames'), json_extract(header, '$.numKeys') FROM z1_files; } {test.zonefile 1179332920 1 3} do_execsql_test 1.4 { SELECT count(*) FROM z1_shadow_idx } 3 do_execsql_test 1.5.1 { SELECT k FROM z1 } {1 2 3} do_execsql_test 1.5.2 { SELECT fileid FROM z1 } {1 1 1} do_execsql_test 1.5.3 { SELECT frame FROM z1 } {0 0 0} do_execsql_test 1.5.4 { SELECT sz FROM z1 } {100 100 100} do_execsql_test 1.5.5 { SELECT zz.v==z1.v FROM zz, z1 WHERE zz.k=z1.k } {1 1 1} do_execsql_test 1.5 { DELETE FROM z1_files; SELECT * FROM z1_files; } {} do_execsql_test 1.6 { SELECT count(*) FROM z1_shadow_idx } 0 do_execsql_test 1.7 { DROP TABLE z1 } finish_test