aboutsummaryrefslogtreecommitdiff
path: root/test/tester.tcl
diff options
context:
space:
mode:
authordrh <>2024-08-16 11:26:21 +0000
committerdrh <>2024-08-16 11:26:21 +0000
commit2ed4f5016a591b5aaabe4a80fc073faab4ad907d (patch)
tree3a26a048f96987ae2c2b95c308eca322fef8dfd0 /test/tester.tcl
parent42f997d768f3853c9d5bca5e3e07878236ee698b (diff)
downloadsqlite-2ed4f5016a591b5aaabe4a80fc073faab4ad907d.tar.gz
sqlite-2ed4f5016a591b5aaabe4a80fc073faab4ad907d.zip
Fix handling of COLLATE. Add test cases for the same. Code cleanup for
improved understandability and maintainability. FossilOrigin-Name: 41a41c173a9d15d94f23d73a5c04bfb1616cb9223bc81d41808f9b4d00817fbf
Diffstat (limited to 'test/tester.tcl')
-rw-r--r--test/tester.tcl23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/tester.tcl b/test/tester.tcl
index 63c83187a..43f7c7a04 100644
--- a/test/tester.tcl
+++ b/test/tester.tcl
@@ -1056,6 +1056,29 @@ proc do_eqp_test {name sql res} {
}
}
+# Do both an eqp_test and an execsql_test on the same SQL.
+#
+proc do_eqp_execsql_test {name sql res1 res2} {
+ if {[regexp {^\s+QUERY PLAN\n} $res1]} {
+
+ set query_plan [query_plan_graph $sql]
+
+ if {[list {*}$query_plan]==[list {*}$res1]} {
+ uplevel [list do_test ${name}a [list set {} ok] ok]
+ } else {
+ uplevel [list \
+ do_test ${name}a [list query_plan_graph $sql] $res1
+ ]
+ }
+ } else {
+ if {[string index $res 0]!="/"} {
+ set res1 "/*$res1*/"
+ }
+ uplevel do_execsql_test ${name}a [list "EXPLAIN QUERY PLAN $sql"] [list $res1]
+ }
+ uplevel do_execsql_test ${name}b [list $sql] [list $res2]
+}
+
#-------------------------------------------------------------------------
# Usage: do_select_tests PREFIX ?SWITCHES? TESTLIST