Changeset: 172b54aa78ff for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/172b54aa78ff
Branch: Dec2025
Log Message:
merged
diffs (truncated from 308 to 300 lines):
diff --git a/monetdb5/optimizer/opt_multiplex.c
b/monetdb5/optimizer/opt_multiplex.c
--- a/monetdb5/optimizer/opt_multiplex.c
+++ b/monetdb5/optimizer/opt_multiplex.c
@@ -64,11 +64,11 @@ OPTexpandMultiplex(Client ctx, MalBlkPtr
throw(MAL, "optimizer.multiplex", SQLSTATE(HY013)
MAL_MALLOC_FAIL);
#ifndef NDEBUG
- TRC_WARNING_IF(MAL_OPTIMIZER) {
+ TRC_INFO_IF(MAL_OPTIMIZER) {
char *ps = instruction2str(mb, stk, pci, LIST_MAL_DEBUG);
- TRC_WARNING_ENDIF(MAL_OPTIMIZER,
- "To speedup %s.%s a bulk
operator implementation is needed%s%s\n",
- mod, fcn, ps ? " for " : "",
ps ? ps : "");
+ TRC_INFO_ENDIF(MAL_OPTIMIZER,
+ "To speedup %s.%s a bulk operator
implementation is needed%s%s\n",
+ mod, fcn, ps ? " for " : "", ps ? ps
: "");
}
#endif
diff --git a/sql/server/sql_semantic.c b/sql/server/sql_semantic.c
--- a/sql/server/sql_semantic.c
+++ b/sql/server/sql_semantic.c
@@ -112,7 +112,7 @@ tmp_schema(mvc *sql)
return mvc_bind_schema(sql, "tmp");
}
-#define DO_NOTHING(x) ;
+#define DO_NOTHING(x) ((void) 0)
/* as we don't have OOP in C, I prefer a single macro with the search path
algorithm to passing function pointers */
#define search_object_on_path(CALL, EXTRA_CONDITION, EXTRA, ERROR_CODE,
show_error) \
@@ -182,7 +182,7 @@ find_sequence_on_scope(mvc *sql, const c
static const char objstr[] = "sequence";
sql_sequence *res = NULL;
- search_object_on_path(res = find_sql_sequence(sql->session->tr, next,
name), DO_NOTHING, ;, SQLSTATE(42000), true);
+ search_object_on_path(res = find_sql_sequence(sql->session->tr, next,
name), DO_NOTHING, ((void) 0), SQLSTATE(42000), true);
return res;
}
@@ -192,7 +192,7 @@ find_idx_on_scope(mvc *sql, const char *
static const char objstr[] = "index";
sql_idx *res = NULL;
- search_object_on_path(res = mvc_bind_idx(sql, next, name), DO_NOTHING,
;, SQLSTATE(42S12), true);
+ search_object_on_path(res = mvc_bind_idx(sql, next, name), DO_NOTHING,
((void) 0), SQLSTATE(42S12), true);
return res;
}
@@ -202,7 +202,7 @@ find_type_on_scope(mvc *sql, const char
static const char objstr[] = "type";
sql_type *res = NULL;
- search_object_on_path(res = schema_bind_type(sql, next, name),
DO_NOTHING, ;, SQLSTATE(42S01), true);
+ search_object_on_path(res = schema_bind_type(sql, next, name),
DO_NOTHING, ((void) 0), SQLSTATE(42S01), true);
return res;
}
@@ -212,7 +212,7 @@ find_trigger_on_scope(mvc *sql, const ch
static const char objstr[] = "trigger";
sql_trigger *res = NULL;
- search_object_on_path(res = mvc_bind_trigger(sql, next, name),
DO_NOTHING, ;, SQLSTATE(3F000), true);
+ search_object_on_path(res = mvc_bind_trigger(sql, next, name),
DO_NOTHING, ((void) 0), SQLSTATE(3F000), true);
return res;
}
diff --git
a/sql/test/BugTracker-2026/Tests/7728-select-with-subqueries-crash.test
b/sql/test/BugTracker-2026/Tests/7728-select-with-subqueries-crash.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2026/Tests/7728-select-with-subqueries-crash.test
@@ -0,0 +1,26 @@
+-- in strNil error: Cannot access memory at address 0x134>) at
MonetDB/gdk/gdk_atoms.h:410
+-- in strEq error: Cannot access memory at address 0x134>, r=0x7fc800d0e46b
<str_nil> "\200") at MonetDB/gdk/gdk_atoms.h:438
+-- in GDKanalyticalmax (tpe=18, frame_type=0) at
MonetDB/gdk/gdk_analytic_func.c:1361
+statement error GDK reported error: mergejoin: more than one match
+SELECT ( WITH x ( x ) AS ( SELECT 1 ) SELECT ( WITH x ( x ) AS ( SELECT 1
UNION SELECT 1 - x FROM x ) SELECT ( SELECT ( NULLIF ( 9.000000 , 0 ) ) FROM (
SELECT ( WITH x AS ( SELECT * FROM generate_series ( 44 , 3 ) ) SELECT CASE
WHEN lead ( x ) OVER ( ORDER BY x ASC , x DESC , x ) IN ( 69 , MAX ( CASE WHEN
97 THEN 66 END ) OVER ( ) + ( SELECT COUNT ( * ) ) ) THEN 41 END FROM x ORDER
BY max ( 'y' ) OVER ( ROWS BETWEEN ( WITH x ( x ) AS ( SELECT 1 ) SELECT ( WITH
x ( x ) AS ( SELECT DISTINCT SUM ( 1 ) ) SELECT ( SELECT ( CASE WHEN NOT - 10
IS NULL AND NULL IS NULL THEN - 30 WHEN - - 39 * - 89 NOT IN ( - 51 * - -
1.000000 , count ( * ) / 67 ) THEN count ( 54 ) END ) FROM GENERATE_SERIES ( 1
, x ) ) ) FROM x ) PRECEDING AND CURRENT ROW ) ) WHERE ( SELECT x FROM x WHERE
x != 1 GROUP BY x ) != x ORDER BY x ) ) FROM x ) FROM x )
+
+statement error GDK reported error: mergejoin: more than one match
+SELECT ( WITH x ( x ) AS ( SELECT 1 )
+ SELECT ( WITH x ( x ) AS ( SELECT 1 UNION SELECT 1 - x FROM x )
+ SELECT ( SELECT ( NULLIF ( 9.000000 , 0 ) ) FROM (
+ SELECT ( WITH x AS ( SELECT * FROM generate_series ( 44 , 3 ) )
+ SELECT CASE WHEN lead ( x ) OVER ( ORDER BY x ASC , x DESC , x ) IN ( 69 ,
MAX ( CASE WHEN 97 THEN 66 END ) OVER ( ) + ( SELECT COUNT ( * ) ) ) THEN 41
END FROM x
+ ORDER BY max ( 'y' ) OVER ( ROWS BETWEEN (
+ WITH x ( x ) AS ( SELECT 1 )
+ SELECT ( WITH x ( x ) AS ( SELECT DISTINCT SUM ( 1 ) )
+ SELECT (
+ SELECT ( CASE WHEN NOT - 10 IS NULL AND NULL IS NULL THEN - 30 WHEN -
- 39 * - 89 NOT IN ( - 51 * - - 1.000000 , count ( * ) / 67 ) THEN count ( 54 )
END ) FROM GENERATE_SERIES ( 1 , x )
+ )
+ )
+ FROM x ) PRECEDING AND CURRENT ROW )
+ ) WHERE ( SELECT x FROM x WHERE x != 1 GROUP BY x ) != x ORDER BY x
+ )
+ )
+ FROM x )
+FROM x )
+
diff --git a/sql/test/BugTracker-2026/Tests/7792-assertion-failure.test
b/sql/test/BugTracker-2026/Tests/7792-assertion-failure.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2026/Tests/7792-assertion-failure.test
@@ -0,0 +1,16 @@
+statement ok
+CREATE TABLE v0 ( v1 BIGINT , v2 INT )
+
+-- sql/backends/monet5/rel_bin.c:4958 rel2bin_select: Assertion
`sql->session->status == -10' failed.
+query R nosort
+SELECT + ( 14368317.000000 ) - 44826742.000000 FROM v0 WHERE ( v2 NOT IN ( v2
) AND v2 IS NOT NULL NOT IN ( ( SELECT ( NOT ( v1 IS NULL ) ) AND ( NOT ( NOT (
'x' = 'x' AND v1 = 0 ) ) ) ) ) ) > 'x'
+----
+
+-- sql/backends/monet5/rel_bin.c:3463 rel2bin_join: Assertion
`sql->session->status == -10' failed.
+statement ok
+INSERT INTO v0 ( v1 )
+ VALUES ( ( SELECT + ( 14368317.000000 ) - 44826742.000000 FROM v0 WHERE ( v2
NOT IN ( v2 ) AND v2 IS NOT NULL NOT IN ( ( SELECT ( NOT ( v1 IS NULL ) ) AND (
NOT ( NOT ( 'x' = 'x' AND v1 = 0 ) ) ) ) ) ) > 'x' ) ) , ( 8 )
+
+statement ok
+DROP TABLE v0
+
diff --git a/sql/test/BugTracker-2026/Tests/7793-assertion-failure.test
b/sql/test/BugTracker-2026/Tests/7793-assertion-failure.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2026/Tests/7793-assertion-failure.test
@@ -0,0 +1,27 @@
+statement ok
+CREATE TABLE v0 ( v1 INT , v2 INT , v3 VARCHAR ( 73 ) )
+
+statement ok
+INSERT INTO v0 VALUES ( 52 , NULL , 'x' ) , ( -128 , NULL , 'x' ) , ( 38 ,
NULL , 'x' )
+
+statement ok
+CREATE TABLE v4 ( v5 INT , v6 INT )
+
+statement ok
+INSERT INTO v4 VALUES ( 30 , 2147483647 ) , ( 94 , 8 ) , ( 73 , -1 )
+
+query I nosort
+SELECT v5 FROM v4 WHERE v5 IN ( SELECT DISTINCT v2 FROM v0 WHERE v5 = v6 + 12 )
+----
+
+-- sql/backends/monet5/rel_bin.c:3953: rel2bin_semijoin: Assertion
`sql->session->status == -10' failed.
+statement ok
+UPDATE v0 SET v1 = ( SELECT v5 FROM v4 WHERE v5 IN ( SELECT DISTINCT v2 WHERE
v5 = v6 + 12 ) ) WHERE v2 IS NULL
+
+
+statement ok
+DROP TABLE v4
+
+statement ok
+DROP TABLE v0
+
diff --git a/sql/test/BugTracker-2026/Tests/7794-assertion-failure.test
b/sql/test/BugTracker-2026/Tests/7794-assertion-failure.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2026/Tests/7794-assertion-failure.test
@@ -0,0 +1,17 @@
+statement ok
+CREATE TABLE v0 ( v1 INTEGER , v2 REAL )
+
+-- sql/backends/monet5/rel_bin.c:5040: rel2bin_groupby: Assertion
`sql->session->status == -10' failed.
+query I nosort
+SELECT v1 FROM v0 WHERE ( v1 = -1
+ OR ( SELECT v1 FROM v0 AS v3 WHERE ( v0 . v1 < v0 .
v1 ) * 2147483647 >= v0 . v1 AND v0 . v1 > v0 . v2 GROUP BY v2 + 51 , v1 ) )
+ OR ( v2 BETWEEN 8 AND 49 AND v1 = -128 OR v2 = 'x')
+----
+
+-- sql/backends/monet5/rel_bin.c:5040: rel2bin_groupby: Assertion
`sql->session->status == -10' failed.
+statement ok
+INSERT INTO v0 VALUES ( ( SELECT v1 FROM v0 WHERE ( v1 = -1 OR ( SELECT v1
FROM v0 AS v3 WHERE ( v0 . v1 < v0 . v1 ) * 2147483647 >= v0 . v1 AND v0 . v1 >
v0 . v2 GROUP BY v2 + 51 , v1 ) ) OR ( v2 BETWEEN 8 AND 49 AND v1 = -128 OR v2
= 'x' ) ) , 26871590.000000 ) , ( -128 , 13922972.000000 ) , ( -1 ,
65290499.000000 )
+
+statement ok
+DROP TABLE v0
+
diff --git a/sql/test/BugTracker-2026/Tests/7795-assertion-failure.test
b/sql/test/BugTracker-2026/Tests/7795-assertion-failure.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2026/Tests/7795-assertion-failure.test
@@ -0,0 +1,14 @@
+statement ok
+CREATE TABLE v0 ( v1 SMALLINT , v2 REAL )
+
+query I nosort
+SELECT v2 FROM v0 ORDER BY v1 DESC , v2 LIMIT 0 OFFSET 91
+----
+
+-- sql/backends/monet5/rel_bin.c:4874: rel2bin_project: Assertion
`sql->session->status == -10' failed.
+statement ok
+UPDATE v0 SET v1 = ( SELECT v2 ORDER BY v1 DESC , v2 LIMIT 0 OFFSET 91 ) WHERE
-2147483648 IN ( v1 )
+
+statement ok
+DROP TABLE v0
+
diff --git a/sql/test/BugTracker-2026/Tests/7796-assertion-failure.test
b/sql/test/BugTracker-2026/Tests/7796-assertion-failure.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2026/Tests/7796-assertion-failure.test
@@ -0,0 +1,21 @@
+statement ok
+CREATE TABLE v0 ( v1 VARCHAR DEFAULT NULL )
+
+query I nosort
+SELECT ( 36 % ( SELECT 90477437.000000 e308 ) != 0 + v1 IS NOT NULL ) IS NULL
FROM v0
+----
+
+-- sql/backends/monet5/sql_statement.c:4612: stmt_alias_: Assertion `label'
failed.
+statement ok
+INSERT INTO v0 VALUES ( NULL ) , ( 51 ) , ( ( SELECT ( 36 % ( SELECT
90477437.000000 e308 ) != 0 + v1 IS NOT NULL ) IS NULL FROM v0 ) )
+
+query T nosort
+SELECT v1 FROM v0 ORDER BY 1
+----
+NULL
+NULL
+51
+
+statement ok
+DROP TABLE v0
+
diff --git a/sql/test/BugTracker-2026/Tests/7797-assertion-failure.test
b/sql/test/BugTracker-2026/Tests/7797-assertion-failure.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2026/Tests/7797-assertion-failure.test
@@ -0,0 +1,11 @@
+statement ok
+CREATE TABLE v0 ( v1 BOOLEAN NOT NULL , v2 INT DEFAULT 0 )
+
+-- sql/backends/monet5/rel_bin.c:4874: rel2bin_project: Assertion
`sql->session->status == -10' failed.
+query ITI nosort
+SELECT v1 , 'x' , ( SELECT v1 ORDER BY v1 DESC LIMIT 83 ) FROM v0
+----
+
+statement ok
+DROP TABLE v0
+
diff --git a/sql/test/BugTracker-2026/Tests/7800-assertion-failure.test
b/sql/test/BugTracker-2026/Tests/7800-assertion-failure.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2026/Tests/7800-assertion-failure.test
@@ -0,0 +1,15 @@
+statement ok
+CREATE TABLE v0 ( v1 INTEGER , v2 REAL )
+
+query R nosort
+SELECT v3 . v2 FROM v0 v3 ORDER BY v2 , v2 DESC , v1 ASC
+----
+
+-- sql/server/rel_optimize_proj.c:41: rel_used_projections: Assertion `e->nid
&& exps_bind_nid(exps, e->nid)' failed.
+query IR nosort
+SELECT * FROM v0 ORDER BY v2 = ( SELECT v0 . v2 FROM v0 v3 ORDER BY v2 , v2
DESC , v1 ASC ) AND v2 IS NOT NULL ASC NULLS LAST
+----
+
+statement ok
+DROP TABLE v0
+
diff --git a/sql/test/BugTracker-2026/Tests/7801-assertion-failure.test
b/sql/test/BugTracker-2026/Tests/7801-assertion-failure.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2026/Tests/7801-assertion-failure.test
@@ -0,0 +1,17 @@
+statement ok
+CREATE TABLE v0 ( v1 INTEGER , v2 REAL )
+
+statement ok
+INSERT INTO v0 VALUES ( 37096283.000000 , 91 ) , ( 16866961.000000 , NULL )
+
+query R nosort
+SELECT v2 FROM V0 ORDER BY v1 = v0 . v1 DESC , v2 LIMIT 13 OFFSET 76
+----
+
+-- sql/server/rel_rel.c:2418: exp_rel_visitor: Assertion `e' failed.
+statement ok
+UPDATE v0 SET v2 = ( SELECT v2 ORDER BY v1 = v0 . v1 DESC , v2 LIMIT 13 OFFSET
76 )
+
+statement ok
+DROP TABLE v0
+
diff --git a/sql/test/BugTracker-2026/Tests/7802-select-with-subqueries.test
b/sql/test/BugTracker-2026/Tests/7802-select-with-subqueries.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2026/Tests/7802-select-with-subqueries.test
@@ -0,0 +1,3 @@
+statement error 42000!types decimal(34,24) and boolean(1,0) are not equal for
column 'x'
+SELECT ( WITH x AS ( WITH RECURSIVE x ( x ) AS ( SELECT FALSE >= 1 BETWEEN 1
AND 1 UNION SELECT 0.100000 * 0.100000 * 0.100000 * 0.100000 * ( WITH x AS (
WITH RECURSIVE x ( x ) AS ( SELECT FALSE >= 1 BETWEEN 1 AND 1 UNION SELECT x +
1 FROM x ) SELECT * FROM x EXCEPT SELECT * FROM x ) SELECT CASE WHEN NULL IN (
69 , MAX ( CASE WHEN 97 THEN 66 END ) OVER ( ) + ( SELECT COUNT ( * ) ) ) THEN
41 END FROM x ) FROM x ) SELECT * FROM x EXCEPT SELECT * FROM x ) SELECT CASE
WHEN NULL IN ( 69 , MAX ( CASE WHEN 97 THEN 66 END ) OVER ( ) + ( SELECT COUNT
( * ) ) ) THEN 41 END FROM x )
+
diff --git a/sql/test/BugTracker-2026/Tests/All
b/sql/test/BugTracker-2026/Tests/All
--- a/sql/test/BugTracker-2026/Tests/All
+++ b/sql/test/BugTracker-2026/Tests/All
@@ -1,3 +1,4 @@
+KNOWNFAIL?7728-select-with-subqueries-crash
KNOWNFAIL?7758-truncate-sys-tables-corrupts-db
7766-assertion-failure
7767-assertion-failure
@@ -17,6 +18,15 @@ KNOWNFAIL?7788-assertion-failure
KNOWNFAIL?7789-assertion-failure
KNOWNFAIL?7790-assertion-failure
KNOWNFAIL?7791-assertion-failure
+KNOWNFAIL?7792-assertion-failure
+KNOWNFAIL?7793-assertion-failure
+KNOWNFAIL?7794-assertion-failure
+KNOWNFAIL?7795-assertion-failure
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]