aboutsummaryrefslogtreecommitdiff
path: root/test/where.test
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2019-08-22 00:53:16 +0000
committerdrh <drh@noemail.net>2019-08-22 00:53:16 +0000
commit3e364802321c67602b2522ac4cde1fdeb2ac5d18 (patch)
tree60a73cd308dbc74ab27fa06b079148519054914f /test/where.test
parentf7c92e82d27b88b1fa56ff72796ed42e89f614c9 (diff)
downloadsqlite-3e364802321c67602b2522ac4cde1fdeb2ac5d18.tar.gz
sqlite-3e364802321c67602b2522ac4cde1fdeb2ac5d18.zip
Fix the OP_SeekGE, OP_SeekGT, OP_SeekLE, and OP_SeekLT opcodes so that they
preserve the datatype of the value in the register used as the key. Ticket [d9f584e936c7a8d0] FossilOrigin-Name: 81b9f0f55042777b37de78069f7089041a9ee21dd0a0c86b879053fb46e140b4
Diffstat (limited to 'test/where.test')
-rw-r--r--test/where.test33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/where.test b/test/where.test
index 599749883..26bf3a040 100644
--- a/test/where.test
+++ b/test/where.test
@@ -1538,4 +1538,37 @@ do_catchsql_test where-25.5 {
ON CONFLICT(c) DO UPDATE SET b=NULL
} {1 {corrupt database}}
+# 2019-08-21 Ticket https://www.sqlite.org/src/info/d9f584e936c7a8d0
+#
+db close
+sqlite3 db :memory:
+do_execsql_test where-26.1 {
+ CREATE TABLE t0(c0 INTEGER PRIMARY KEY, c1 TEXT);
+ INSERT INTO t0(c0, c1) VALUES (1, 'a');
+ CREATE TABLE t1(c0 INT PRIMARY KEY, c1 TEXT);
+ INSERT INTO t1(c0, c1) VALUES (1, 'a');
+ SELECT * FROM t0 WHERE '-1' BETWEEN 0 AND t0.c0;
+} {1 a}
+do_execsql_test where-26.2 {
+ SELECT * FROM t1 WHERE '-1' BETWEEN 0 AND t1.c0;
+} {1 a}
+do_execsql_test where-26.3 {
+ SELECT * FROM t0 WHERE '-1'>=0 AND '-1'<=t0.c0;
+} {1 a}
+do_execsql_test where-26.4 {
+ SELECT * FROM t1 WHERE '-1'>=0 AND '-1'<=t1.c0;
+} {1 a}
+do_execsql_test where-26.5 {
+ SELECT '-1' BETWEEN 0 AND t0.c0 FROM t0;
+} {1}
+do_execsql_test where-26.6 {
+ SELECT '-1' BETWEEN 0 AND t1.c0 FROM t1;
+} {1}
+do_execsql_test where-26.7 {
+ SELECT '-1'>=0 AND '-1'<=t0.c0 FROM t0;
+} {1}
+do_execsql_test where-26.8 {
+ SELECT '-1'>=0 AND '-1'<=t1.c0 FROM t1;
+} {1}
+
finish_test