Changeset: 8b86b26d5058 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8b86b26d5058
Modified Files:
        gdk/gdk_calc_addsub.c
Branch: default
Log Message:

merged with Dec2023


diffs (176 lines):

diff --git a/gdk/gdk_calc_addsub.c b/gdk/gdk_calc_addsub.c
--- a/gdk/gdk_calc_addsub.c
+++ b/gdk/gdk_calc_addsub.c
@@ -1590,9 +1590,9 @@ BATcalcaddcst(BAT *b, const ValRecord *v
 
        /* if the input is sorted, and no overflow occurred, the result
         * is also sorted */
-       bn->tsorted = (bi.sorted && nils == 0) ||
+       bn->tsorted = (bi.sorted && nils == 0 && bi.type != TYPE_str) ||
                ci.ncand <= 1 || nils == ci.ncand;
-       bn->trevsorted = (bi.revsorted && nils == 0) ||
+       bn->trevsorted = (bi.revsorted && nils == 0 && bi.type != TYPE_str) ||
                ci.ncand <= 1 || nils == ci.ncand;
        bn->tkey = ci.ncand <= 1;
        bn->tnil = nils != 0;
diff --git a/sql/test/BugTracker-2024/Tests/All 
b/sql/test/BugTracker-2024/Tests/All
--- a/sql/test/BugTracker-2024/Tests/All
+++ b/sql/test/BugTracker-2024/Tests/All
@@ -21,3 +21,4 @@ where-cond-issue-7448
 function_return_issue
 where_null-7450
 between-boolean-7451
+concat_order-7455
diff --git a/sql/test/BugTracker-2024/Tests/between-boolean-7451.test 
b/sql/test/BugTracker-2024/Tests/between-boolean-7451.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2024/Tests/between-boolean-7451.test
@@ -0,0 +1,47 @@
+
+statement ok
+CREATE TABLE t0(c0 VARCHAR, PRIMARY KEY(c0))
+
+statement ok
+CREATE TABLE t1(c1 INTEGER, c2 VARCHAR(500))
+
+statement ok
+INSERT INTO t0 ( c0) VALUES ('a')
+
+statement ok
+INSERT INTO t0 (c0) VALUES (false)
+
+statement ok
+INSERT INTO t1 ( c1) VALUES (0)
+
+query IT
+SELECT t1.c1, t1.c2 FROM t1, t0
+----
+0
+NULL
+0
+NULL
+
+query T
+SELECT (NOT CAST((true BETWEEN t1.c2 AND t0.c0) AS VARCHAR)) FROM t1, t0
+----
+True
+True
+
+query IT
+SELECT t1.c1, t1.c2 FROM t1, t0 WHERE (NOT CAST((true BETWEEN t1.c2 AND t0.c0) 
AS VARCHAR));
+----
+0
+NULL
+0
+NULL
+
+query ITT
+SELECT * FROM t1, t0 WHERE (NOT CAST((true BETWEEN t1.c2 AND t0.c0) AS 
VARCHAR)); -- 2 rows
+----
+0
+NULL
+a
+0
+NULL
+false
diff --git a/sql/test/BugTracker-2024/Tests/concat_order-7455.test 
b/sql/test/BugTracker-2024/Tests/concat_order-7455.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2024/Tests/concat_order-7455.test
@@ -0,0 +1,71 @@
+statement ok
+CREATE TABLE t0(c0 VARCHAR, c1 VARCHAR(500))
+
+statement ok
+CREATE VIEW v0(c0) AS SELECT true FROM t0
+
+statement ok
+INSERT INTO t0 (c0, c1) VALUES ('', 0)
+
+statement ok
+INSERT INTO t0 (c0) VALUES ('a')
+
+statement ok
+INSERT INTO t0 (c0) VALUES ('b')
+
+query TTT
+SELECT * FROM v0, t0
+----
+True
+(empty)
+0
+True
+a
+NULL
+True
+b
+NULL
+True
+(empty)
+0
+True
+a
+NULL
+True
+b
+NULL
+True
+(empty)
+0
+True
+a
+NULL
+True
+b
+NULL
+
+query T
+SELECT (t0.c0||true BETWEEN v0.c0 AND v0.c0) FROM v0, t0
+----
+True
+False
+False
+True
+False
+False
+True
+False
+False
+
+query TTT
+SELECT * FROM v0, t0 WHERE (t0.c0||true BETWEEN v0.c0 AND v0.c0); 
+----
+True
+(empty)
+0
+True
+(empty)
+0
+True
+(empty)
+0
diff --git a/sql/test/BugTracker-2024/Tests/where_null-7450.test 
b/sql/test/BugTracker-2024/Tests/where_null-7450.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2024/Tests/where_null-7450.test
@@ -0,0 +1,20 @@
+statement ok
+CREATE TABLE t0(c0 INT);
+
+statement ok
+INSERT INTO t0 ( c0) VALUES (false);
+
+statement ok
+CREATE VIEW v0(c0) AS SELECT true FROM t0 WHERE NULL GROUP BY t0.c0, true;
+
+query I
+SELECT * FROM v0;
+----
+
+query I
+SELECT * FROM v0 WHERE true;
+----
+
+query I
+SELECT * FROM v0 WHERE true UNION ALL SELECT * FROM v0 WHERE (NOT true);
+----
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to