# 2024 Feb 18 # # 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. # #*********************************************************************** # if {![info exists testdir]} { set testdir [file join [file dirname [info script]] .. .. test] } source $testdir/tester.tcl ifcapable !vtab||!pragma { proc return_if_no_intck {} { finish_test return -code return } return } else { proc return_if_no_intck {} {} } proc do_intck {db {bSuspend 0}} { set ic [sqlite3_intck $db main] set ret [list] while {"SQLITE_OK"==[$ic step]} { set msg [$ic message] if {$msg!=""} { lappend ret $msg } if {$bSuspend} { $ic unlock #puts "SQL: [$ic test_sql {}]" #execsql_pp "EXPLAIN query plan [$ic test_sql {}]" #explain_i [$ic test_sql {}] } } set err [$ic error] if {[lindex $err 0]!="SQLITE_OK"} { error $err } $ic close return $ret } proc intck_sql {db tbl} { set ic [sqlite3_intck $db main] set sql [$ic test_sql $tbl] $ic close return $sql } proc do_intck_test {tn expect} { uplevel [list do_test $tn.a [list do_intck db] [list {*}$expect]] uplevel [list do_test $tn.b [list do_intck db 1] [list {*}$expect]] }