1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-29 08:01:23 +03:00

Fix handling of COLLATE. Add test cases for the same. Code cleanup for

improved understandability and maintainability.

FossilOrigin-Name: 41a41c173a9d15d94f23d73a5c04bfb1616cb9223bc81d41808f9b4d00817fbf
This commit is contained in:
drh
2024-08-16 11:26:21 +00:00
parent 42f997d768
commit 2ed4f5016a
5 changed files with 174 additions and 31 deletions

View File

@ -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