aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/analyze3.test20
-rw-r--r--test/enc3.test5
-rw-r--r--test/like.test36
-rw-r--r--test/like3.test7
-rw-r--r--test/where8.test22
5 files changed, 63 insertions, 27 deletions
diff --git a/test/analyze3.test b/test/analyze3.test
index d61d21a94..2fb558d16 100644
--- a/test/analyze3.test
+++ b/test/analyze3.test
@@ -283,9 +283,17 @@ do_eqp_test analyze3-2.3 {
SELECT count(a) FROM t1 WHERE b LIKE '%a'
} {0 0 0 {SCAN TABLE t1}}
+# Return the first argument if like_match_blobs is true (the default)
+# or the second argument if not
+#
+proc ilmb {a b} {
+ ifcapable like_match_blobs {return $a}
+ return $b
+}
+
do_test analyze3-2.4 {
sf_execsql { SELECT count(*) FROM t1 WHERE b LIKE 'a%' }
-} {102 0 100}
+} [list [ilmb 102 101] 0 100]
do_test analyze3-2.5 {
sf_execsql { SELECT count(*) FROM t1 WHERE b LIKE '%a' }
} {999 999 100}
@@ -293,7 +301,7 @@ do_test analyze3-2.5 {
do_test analyze3-2.6 {
set like "a%"
sf_execsql { SELECT count(*) FROM t1 WHERE b LIKE $like }
-} {102 0 100}
+} [list [ilmb 102 101] 0 100]
do_test analyze3-2.7 {
set like "%a"
sf_execsql { SELECT count(*) FROM t1 WHERE b LIKE $like }
@@ -301,19 +309,19 @@ do_test analyze3-2.7 {
do_test analyze3-2.8 {
set like "a"
sf_execsql { SELECT count(*) FROM t1 WHERE b LIKE $like }
-} {102 0 0}
+} [list [ilmb 102 101] 0 0]
do_test analyze3-2.9 {
set like "ab"
sf_execsql { SELECT count(*) FROM t1 WHERE b LIKE $like }
-} {12 0 0}
+} [list [ilmb 12 11] 0 0]
do_test analyze3-2.10 {
set like "abc"
sf_execsql { SELECT count(*) FROM t1 WHERE b LIKE $like }
-} {3 0 1}
+} [list [ilmb 3 2] 0 1]
do_test analyze3-2.11 {
set like "a_c"
sf_execsql { SELECT count(*) FROM t1 WHERE b LIKE $like }
-} {102 0 10}
+} [list [ilmb 102 101] 0 10]
#-------------------------------------------------------------------------
diff --git a/test/enc3.test b/test/enc3.test
index 1d8a25816..7ede2b716 100644
--- a/test/enc3.test
+++ b/test/enc3.test
@@ -62,7 +62,7 @@ ifcapable {bloblit && utf16} {
execsql {
CREATE TABLE t2(a);
INSERT INTO t2 VALUES(x'61006200630064006500');
- SELECT CAST(a AS text) FROM t2 WHERE a LIKE 'abc%';
+ SELECT CAST(a AS text) FROM t2 WHERE CAST(a AS text) LIKE 'abc%';
}
} {abcde}
do_test enc3-2.3 {
@@ -72,7 +72,8 @@ ifcapable {bloblit && utf16} {
} {abcde}
do_test enc3-2.4 {
execsql {
- SELECT rowid FROM t2 WHERE a LIKE x'610062002500';
+ SELECT rowid FROM t2
+ WHERE CAST(a AS text) LIKE CAST(x'610062002500' AS text);
}
} {1}
}
diff --git a/test/like.test b/test/like.test
index 18a01dc99..ceb5f2bfa 100644
--- a/test/like.test
+++ b/test/like.test
@@ -745,11 +745,19 @@ ifcapable like_opt&&!icu {
SELECT a FROM t10 WHERE e LIKE '12%' ORDER BY +a;
}
} {12 123 scan 5 like 6}
- do_test like-10.5 {
- count {
- SELECT a FROM t10 WHERE f LIKE '12%' ORDER BY +a;
- }
- } {12 123 scan 4 like 0}
+ ifcapable like_match_blobs {
+ do_test like-10.5a {
+ count {
+ SELECT a FROM t10 WHERE f LIKE '12%' ORDER BY +a;
+ }
+ } {12 123 scan 4 like 0}
+ } else {
+ do_test like-10.5b {
+ count {
+ SELECT a FROM t10 WHERE f LIKE '12%' ORDER BY +a;
+ }
+ } {12 123 scan 3 like 0}
+ }
do_test like-10.6 {
count {
SELECT a FROM t10 WHERE a LIKE '12%' ORDER BY +a;
@@ -786,11 +794,19 @@ ifcapable like_opt&&!icu {
SELECT a FROM t10b WHERE e GLOB '12*' ORDER BY +a;
}
} {12 123 scan 5 like 6}
- do_test like-10.14 {
- count {
- SELECT a FROM t10b WHERE f GLOB '12*' ORDER BY +a;
- }
- } {12 123 scan 4 like 0}
+ ifcapable like_match_blobs {
+ do_test like-10.14 {
+ count {
+ SELECT a FROM t10b WHERE f GLOB '12*' ORDER BY +a;
+ }
+ } {12 123 scan 4 like 0}
+ } else {
+ do_test like-10.14 {
+ count {
+ SELECT a FROM t10b WHERE f GLOB '12*' ORDER BY +a;
+ }
+ } {12 123 scan 3 like 0}
+ }
do_test like-10.15 {
count {
SELECT a FROM t10b WHERE a GLOB '12*' ORDER BY +a;
diff --git a/test/like3.test b/test/like3.test
index a1faf7691..9280c2c5d 100644
--- a/test/like3.test
+++ b/test/like3.test
@@ -29,6 +29,11 @@
set testdir [file dirname $argv0]
source $testdir/tester.tcl
+ifcapable !like_match_blobs {
+ finish_test
+ return
+}
+
do_execsql_test like3-1.1 {
PRAGMA encoding=UTF8;
CREATE TABLE t1(a,b TEXT COLLATE nocase);
@@ -107,6 +112,4 @@ do_execsql_test like3-4.2ck {
SELECT quote(x) FROM t4 WHERE x LIKE 'ab%' ORDER BY +x ASC;
} {'abc' 'abd' 'abe' X'616263' X'616264' X'616265'}
-
-
finish_test
diff --git a/test/where8.test b/test/where8.test
index a155a95ab..38214bc89 100644
--- a/test/where8.test
+++ b/test/where8.test
@@ -64,13 +64,21 @@ do_test where8-1.3 {
execsql_status2 { SELECT c FROM t1 WHERE a > 8 OR b = 'two' }
} {IX X II 0 0 6}
-do_test where8-1.4 {
- execsql_status2 { SELECT c FROM t1 WHERE a > 8 OR b GLOB 't*' }
-} {IX X III II 0 0 10}
-
-do_test where8-1.5 {
- execsql_status2 { SELECT c FROM t1 WHERE a > 8 OR b GLOB 'f*' }
-} {IX X V IV 0 0 10}
+ifcapable like_match_blobs {
+ do_test where8-1.4a {
+ execsql_status2 { SELECT c FROM t1 WHERE a > 8 OR b GLOB 't*' }
+ } {IX X III II 0 0 10}
+ do_test where8-1.5a {
+ execsql_status2 { SELECT c FROM t1 WHERE a > 8 OR b GLOB 'f*' }
+ } {IX X V IV 0 0 10}
+} else {
+ do_test where8-1.4b {
+ execsql_status2 { SELECT c FROM t1 WHERE a > 8 OR b GLOB 't*' }
+ } {IX X III II 0 0 9}
+ do_test where8-1.5 {
+ execsql_status2 { SELECT c FROM t1 WHERE a > 8 OR b GLOB 'f*' }
+ } {IX X V IV 0 0 9}
+}
do_test where8-1.6 {
execsql_status { SELECT c FROM t1 WHERE a = 1 OR b = 'three' ORDER BY rowid }