Changeset: 77bff434d52e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/77bff434d52e
Added Files:
        sql/test/BugTracker-2026/Tests/7834-BATsubcross-more-than-one-match.test
Modified Files:
        sql/test/BugTracker-2026/Tests/All
Branch: Dec2025
Log Message:

Add test for #7834


diffs (116 lines):

diff --git 
a/sql/test/BugTracker-2026/Tests/7834-BATsubcross-more-than-one-match.test 
b/sql/test/BugTracker-2026/Tests/7834-BATsubcross-more-than-one-match.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2026/Tests/7834-BATsubcross-more-than-one-match.test
@@ -0,0 +1,102 @@
+statement error GDK reported error: BATsubcross: more than one match
+SELECT x , x , STDDEV_POP ( NULLIF ( ( WITH RECURSIVE x ( x ) AS ( WITH 
RECURSIVE x ( x ) AS ( SELECT 440 UNION SELECT 1 - x FROM x ) SELECT * FROM 
generate_series ( 0 , 10 ) WHERE x < 5 ) SELECT - COUNT ( * ) OVER ( ROWS 
BETWEEN 2 PRECEDING AND 3 >= ( SELECT CASE WHEN x = 12 THEN 1 ELSE CASE WHEN 
length ( 'abcdefg' ) >= 1 THEN substr ( ( SELECT SUM ( 0 ) OVER ( ) ) , locate 
( RPAD ( 'abc' , 1 , ( SELECT 1 ) > ANY ( 1 ) ) , 'joeuser@mydatabase@test' , 9 
) , 1 ) ELSE 'nil' END END FROM ( SELECT 1 x HAVING COUNT ( * ) > ( SELECT - 
CASE - ( 0 ) WHEN 18 + - 60 THEN NULL WHEN - CASE - 67 WHEN - 79 * ROW_NUMBER ( 
) OVER ( ORDER BY ( SELECT * FROM ( SELECT 1 AS x ) WHERE x IN ( SELECT ( 
row_number ( ) OVER ( ) ) ) ) ) <= -5.500000 / 30 - 32 * 69 THEN sign ( CAST( 
'-9223372036854775808.5' AS FLOAT ) ) + 0 ELSE NULL END * ( 45 ) + 19 * 17 THEN 
20 WHEN SUM ( 78 ) + 69 THEN 1234567954432.000000 % 119070 % '' * 74 ELSE 
NULLIF ( 82 , 72 + 26 ) * 7 END * - 92 WHERE FALSE ) UNION SELECT 1 + 1 AS x
  INTERSECT SELECT 3 ) AS x ) FOLLOWING ) FROM x AS x WHERE NOT ( - x ) BETWEEN 
- x AND NULL ) , NULL ) ) OVER ( ORDER BY CASE WHEN x % 2 = 0 THEN 0 ELSE 1 END 
RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) AS x FROM ( SELECT rank ( ) 
OVER ( PARTITION BY 'x' , 1 , 1 , 'x' ) AS x UNION SELECT 0 AS x UNION SELECT 3 
AS x ) ORDER BY 1 , 2 , 3
+
+query T
+explain SELECT x , x , STDDEV_POP ( NULLIF ( ( WITH RECURSIVE x ( x ) AS ( 
WITH RECURSIVE x ( x ) AS ( SELECT 440 UNION SELECT 1 - x FROM x ) SELECT * 
FROM generate_series ( 0 , 10 ) WHERE x < 5 ) SELECT - COUNT ( * ) OVER ( ROWS 
BETWEEN 2 PRECEDING AND 3 >= ( SELECT CASE WHEN x = 12 THEN 1 ELSE CASE WHEN 
length ( 'abcdefg' ) >= 1 THEN substr ( ( SELECT SUM ( 0 ) OVER ( ) ) , locate 
( RPAD ( 'abc' , 1 , ( SELECT 1 ) > ANY ( 1 ) ) , 'joeuser@mydatabase@test' , 9 
) , 1 ) ELSE 'nil' END END FROM ( SELECT 1 x HAVING COUNT ( * ) > ( SELECT - 
CASE - ( 0 ) WHEN 18 + - 60 THEN NULL WHEN - CASE - 67 WHEN - 79 * ROW_NUMBER ( 
) OVER ( ORDER BY ( SELECT * FROM ( SELECT 1 AS x ) WHERE x IN ( SELECT ( 
row_number ( ) OVER ( ) ) ) ) ) <= -5.500000 / 30 - 32 * 69 THEN sign ( CAST( 
'-9223372036854775808.5' AS FLOAT ) ) + 0 ELSE NULL END * ( 45 ) + 19 * 17 THEN 
20 WHEN SUM ( 78 ) + 69 THEN 1234567954432.000000 % 119070 % '' * 74 ELSE 
NULLIF ( 82 , 72 + 26 ) * 7 END * - 92 WHERE FALSE ) UNION SELECT 1 
 + 1 AS x INTERSECT SELECT 3 ) AS x ) FOLLOWING ) FROM x AS x WHERE NOT ( - x ) 
BETWEEN - x AND NULL ) , NULL ) ) OVER ( ORDER BY CASE WHEN x % 2 = 0 THEN 0 
ELSE 1 END RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) AS x FROM ( 
SELECT rank ( ) OVER ( PARTITION BY 'x' , 1 , 1 , 'x' ) AS x UNION SELECT 0 AS 
x UNION SELECT 3 AS x ) ORDER BY 1 , 2 , 3
+----
+REF 1 (2)
+project (
+| semijoin (
+| | project (
+| | |  [ boolean(1) "true" as "%11"."%11" ]
+| | ) [ tinyint(1) "1" as "x" ],
+| | project (
+| | |  [ boolean(1) "true" as "%12"."%12" ]
+| | ) [ "sys"."row_number"(varchar["sys"."star"()], boolean(1) "false", 
boolean(1) "false") as "%13"."%13" ]
+| ) [ (int(31)["x"]) + = ("%13"."%13") ]
+) [ "x" as "%15"."%15" ]
+project (
+| project (
+| | project (
+| | | project (
+| | | | project (
+| | | | | single project (
+| | | | | | single left outer join (
+| | | | | | | single project (
+| | | | | | | | single select (
+| | | | | | | | | single crossproduct (
+| | | | | | | | | | distinct munion (
+| | | | | | | | | | | project (
+| | | | | | | | | | | | project (
+| | | | | | | | | | | | |  [ boolean(1) "true" as "%3"."%3" ]
+| | | | | | | | | | | | ) [ int(31)[tinyint(2) "3"] as "x" ]
+| | | | | | | | | | | ) [ "x" ],
+| | | | | | | | | | | project (
+| | | | | | | | | | | | select (
+| | | | | | | | | | | | | project (
+| | | | | | | | | | | | | | top N (
+| | | | | | | | | | | | | | | project (
+| | | | | | | | | | | | | | | | project (
+| | | | | | | | | | | | | | | | |  [ boolean(1) "true" as "%1"."%1" ]
+| | | | | | | | | | | | | | | | ) [ varchar(1) "x" as "%35"."%35", tinyint(1) 
"1" as "%36"."%36", tinyint(1) "1" as "%37"."%37", varchar(1) "x" as 
"%40"."%40" ]
+| | | | | | | | | | | | | | | ) [ "%35"."%35", "%36"."%36", "%37"."%37", 
"%40"."%40" ] [ "%35"."%35", "%36"."%36", "%37"."%37", "%40"."%40" ]
+| | | | | | | | | | | | | | ) [ int(31) "5" ]
+| | | | | | | | | | | | | ) [ "%35"."%35", "%36"."%36", "%37"."%37", 
"%40"."%40", "sys"."rank"(varchar["sys"."star"()], 
"sys"."diff"("sys"."diff"("sys"."diff"("sys"."diff"("%35"."%35"), "%36"."%36"), 
"%37"."%37"), "%40"."%40"), boolean(1) "false") as "x" ]
+| | | | | | | | | | | | ) [ ("x") < (int(31) "5") ]
+| | | | | | | | | | | ) [ "x" ],
+| | | | | | | | | | | project (
+| | | | | | | | | | | | project (
+| | | | | | | | | | | | |  [ boolean(1) "true" as "%2"."%2" ]
+| | | | | | | | | | | | ) [ int(31)[tinyint(1) "0"] as "x" ]
+| | | | | | | | | | | ) [ "x" ]
+| | | | | | | | | | ) [ "x" ],
+| | | | | | | | | | table ("sys"."generate_series"(tinyint(1) "0", tinyint(4) 
"10"), 
+| | | | | | | | | | ) [ "%5"."value" ]
+| | | | | | | | | ) [  ]
+| | | | | | | | ) [ (("sys"."sql_neg"("%5"."value")) <= 
("sys"."sql_neg"("%5"."value")) <= (tinyint(7) NULL)) = (boolean(1) "false") ]
+| | | | | | | ) [ "x" ],
+| | | | | | | project (
+| | | | | | | | left outer join (
+| | | | | | | | | left outer join (
+| | | | | | | | | | distinct project (
+| | | | | | | | | | | project (
+| | | | | | | | | | | | join (
+| | | | | | | | | | | | | group by (
+| | | | | | | | | | | | | |  [ boolean(1) "true" as "%6"."%6" ]
+| | | | | | | | | | | | | ) [  ] [ "sys"."count"() as "%7"."%7" ],
+| | | | | | | | | | | | | project (
+| | | | | | | | | | | | | | project (
+| | | | | | | | | | | | | | | project (
+| | | | | | | | | | | | | | | | project (
+| | | | | | | | | | | | | | | | | left outer join (
+| | | | | | | | | | | | | | | | | | group by (
+| | | | | | | | | | | | | | | | | | | select (
+| | | | | | | | | | | | | | | | | | | |  [ boolean(1) NULL as "%10"."%10" ]
+| | | | | | | | | | | | | | | | | | | ) [ boolean(1) "false" ]
+| | | | | | | | | | | | | | | | | | ) [  ] [ "sys"."sum" no nil (tinyint(7) 
"78") as "%20"."%20" ],
+| | | | | | | | | | | | | | | | | | & REF 1  
+| | | | | | | | | | | | | | | | | ) [  ]
+| | | | | | | | | | | | | | | | ) [ "%20"."%20", "%15"."%15" as "%16"."%16" ]
+| | | | | | | | | | | | | | | ) [ "%20"."%20", "%16"."%16" ] [ "%16"."%16" ]
+| | | | | | | | | | | | | | ) [ "%20"."%20", "%16"."%16", 
"sys"."row_number"(varchar["sys"."star"()], boolean(1) "false", 
"sys"."diff"("%16"."%16")) as "%41"."%41" ]
+| | | | | | | | | | | | | ) [ 
"sys"."sql_mul"("sys"."sql_neg"("sys"."casewhen"(hugeint(127)["sys"."sql_neg"(tinyint(1)
 "0")], hugeint(127)["sys"."sql_add"(tinyint(5) "18", 
"sys"."sql_neg"(tinyint(6) "60"))], double(53) NULL, 
hugeint(127)["sys"."sql_add"("sys"."sql_mul"("sys"."sql_neg"("sys"."casewhen"("sys"."sql_neg"(tinyint(7)
 "67"), tinyint(7)[(decimal(18,6)["sys"."sql_mul"("sys"."sql_neg"(tinyint(7) 
"79"), "%41"."%41")]) <= 
(decimal(18,6)["sys"."sql_sub"(decimal(7,6)["sys"."sql_div"("sys"."sql_neg"(decimal(7,6)
 "5500000"), tinyint(5) "30")], 
decimal(10,6)[decimal(4)["sys"."sql_mul"(tinyint(6) "32", tinyint(7) 
"69")]])])], smallint(8)["sys"."sign"(double(53)[varchar(22) 
"-9223372036854775808.5"])], smallint(15) NULL)), tinyint(6) "45"), 
int(10)["sys"."sql_mul"(tinyint(5) "19", tinyint(5) "17")])], double(53) "20", 
"sys"."sql_add"("%20"."%20", hugeint(7) "69"), 
"sys"."sql_mul"("sys"."mod"(double(53)["sys"."mod"(decimal(19,6) 
"1234567954432000000", decimal(12,6)[decimal(6) "119070"]
 )], double(53)[varchar ""]), double(53) "74"), 
double(53)["sys"."sql_mul"("sys"."nullif"(smallint(8) "82", 
smallint(8)[tinyint(7) "98"]), tinyint(3) "7")])), 
double(53)["sys"."sql_neg"(tinyint(7) "92")]) as "%21"."%21" ]
+| | | | | | | | | | | | ) [ (double(53)["%7"."%7"]) > ("%21"."%21") ]
+| | | | | | | | | | | ) [ tinyint(1) "1" as "x" ]
+| | | | | | | | | | ) [ "x" as "x"."x" ],
+| | | | | | | | | | project (
+| | | | | | | | | | |  [ boolean(1) "true" as "%25"."%25" ]
+| | | | | | | | | | ) [ "sys"."sum"(tinyint(1) "0", boolean(1) "false", 
boolean(1) "false", int(3) "5", oid(63) "1@0", oid(63) "1@0") as "%27"."%27" ]
+| | | | | | | | | ) [  ],
+| | | | | | | | | project (
+| | | | | | | | | |  [ boolean(1) "true" as "%30"."%30" ]
+| | | | | | | | | ) [ tinyint(1) "1" as "%31"."%31" ]
+| | | | | | | | ) [  ]
+| | | | | | | ) [ "sys"."case"(("x"."x") = (tinyint(4) "12"), 
varchar(40)[tinyint(1) "1"], "sys"."case"(("sys"."length"(varchar(7) 
"abcdefg")) >= (int(31) "1"), "sys"."substr"(varchar(40)["%27"."%27"], 
"sys"."locate"("sys"."rpad"(varchar(3) "abc", int(1) "1", 
varchar(5)[("%31"."%31") > (tinyint(1) "1")]), varchar(23) 
"joeuser@mydatabase@test", int(4) "9"), int(1) "1"), varchar(40) "nil")) as 
"%32"."%32" ]
+| | | | | | ) [  ]
+| | | | | ) [ "x", "sys"."sql_neg"("sys"."count"(varchar["sys"."star"()], 
boolean(1) "false", "sys"."diff"("x"), boolean(1) "false", int(1) "0", 
"sys"."window_bound"("sys"."diff"("x"), "sys"."star"(), int(1) "0", int(1) "0", 
int(1) "0", tinyint(2) "2"), "sys"."window_bound"("sys"."diff"("x"), 
"sys"."star"(), int(1) "0", int(2) "3", int(1) "0", bigint(63)[(tinyint(7) "3") 
>= (tinyint(7)["%32"."%32"])]))) as "%33"."%33" ]
+| | | | ) [ "x", "sys"."nullif"("%33"."%33", bigint(63) NULL) as "%34"."%34", 
"sys"."case"(("sys"."mod"("x", int(2) "2")) = (int(31) "0"), tinyint(1) "0", 
tinyint(1) "1") as "%42"."%42" ]
+| | | ) [ "x", "%34"."%34", "%42"."%42" ] [ "%42"."%42" ]
+| | ) [ "x", "%34"."%34", "%42"."%42", "sys"."stddev_pop"("%34"."%34", 
boolean(1) "false", "sys"."diff"("%42"."%42"), int(3) "4", oid(63) "1@0", 
oid(63) "1@0") as "x" ]
+| ) [ "x", "x" ]
+) [ "x", "x", "x" ] [ "x", "x", "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
@@ -37,4 +37,5 @@ KNOWNFAIL?7801-assertion-failure
 7826-crash-in-optimizer
 7832-strcmp-NULL-crash
 KNOWNFAIL?7833-assertion-failure
+7834-BATsubcross-more-than-one-match
 7836-use-after-free
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to