| # 2022 September 13 |
| # |
| # 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. |
| # |
| #*********************************************************************** |
| # |
| # |
| |
| source [file join [file dirname [info script]] recover_common.tcl] |
| set testprefix recoversql |
| |
| do_execsql_test 1.0 { |
| CREATE TABLE "x.1" (x, y); |
| INSERT INTO "x.1" VALUES(1, 1), (2, 2), (3, 3); |
| CREATE INDEX "i.1" ON "x.1"(y, x); |
| } |
| |
| proc sql_hook {sql} { |
| incr ::iSqlHook |
| if {$::iSqlHook==$::sql_hook_cnt} { return 4 } |
| return 0 |
| } |
| |
| do_test 1.1 { |
| set ::sql_hook_cnt -1 |
| set ::iSqlHook 0 |
| set R [sqlite3_recover_init_sql db main sql_hook] |
| $R run |
| $R finish |
| } {} |
| |
| set nSqlCall $iSqlHook |
| |
| for {set ii 1} {$ii<$nSqlCall} {incr ii} { |
| set iSqlHook 0 |
| set sql_hook_cnt $ii |
| do_test 1.$ii.a { |
| set R [sqlite3_recover_init_sql db main sql_hook] |
| $R run |
| } {1} |
| do_test 1.$ii.b { |
| list [catch { $R finish } msg] $msg |
| } {1 {callback returned an error - 4}} |
| } |
| |
| |
| finish_test |