Changeset: 9791dfb0613e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9791dfb0613e
Modified Files:
sql/server/rel_exp.c
sql/test/miscellaneous/Tests/groupby_error.sql
sql/test/miscellaneous/Tests/groupby_error.stable.out
Branch: default
Log Message:
Merged with linear-hashing
diffs (114 lines):
diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -1593,7 +1593,7 @@ exp_is_true(mvc *sql, sql_exp *e)
}
}
if (e->type == e_cmp && e->flag == cmp_equal)
- return (exp_is_true(sql, e->l) && exp_is_true(sql, e->r));
+ return (exp_is_true(sql, e->l) && exp_is_true(sql, e->r) &&
exp_match_exp(e->l, e->r));
return 0;
}
diff --git a/sql/test/miscellaneous/Tests/groupby_error.sql
b/sql/test/miscellaneous/Tests/groupby_error.sql
--- a/sql/test/miscellaneous/Tests/groupby_error.sql
+++ b/sql/test/miscellaneous/Tests/groupby_error.sql
@@ -6,14 +6,25 @@ SELECT parent."sys_id" FROM "kagami_dump
DROP SCHEMA "kagami_dump" CASCADE;
-
CREATE TABLE tab0(col0 INTEGER, col1 INTEGER, col2 INTEGER);
INSERT INTO tab0 VALUES(97,1,99), (15,81,47), (87,21,10);
+CREATE TABLE tab1(col0 INTEGER, col1 INTEGER, col2 INTEGER);
+INSERT INTO tab1 VALUES (51,14,96), (85,5,59), (91,47,68);
SELECT CAST(+ col1 * - col1 AS BIGINT) AS col2 FROM tab0 GROUP BY col2, col0,
col1 HAVING + - col0 / - AVG ( ALL + col2 ) - - - AVG ( DISTINCT + col0 ) +
col0 IS NULL;
SELECT DISTINCT + 40 / + + col0 AS col2 FROM tab0 GROUP BY col0, col0, col2
HAVING NOT ( NOT + - 80 BETWEEN NULL AND + - 73 ) OR NOT ( + col0 >= - COUNT (
* ) + - COUNT ( DISTINCT - col0 ) );
SELECT ALL * FROM tab0 AS cor0 WHERE col2 NOT IN ( 22, 18, CAST ( NULL AS
INTEGER ) + - 77 );
+SELECT * FROM tab0 AS cor0 WHERE NOT - 39 <> 11; --empty
+SELECT DISTINCT * FROM tab0 WHERE NOT - - 12 <> + + 96; --empty
+SELECT * FROM tab0 AS cor0 WHERE - 52 = + 32; --empty
+SELECT ALL * FROM tab0 WHERE 68 = - + 83; --empty
+
+SELECT 11 FROM tab1 AS cor0 LEFT JOIN tab0 ON 80 = 70;
+ -- 11
+ -- 11
+ -- 11
+
prepare select col0 from tab0 where (?) in (select col0 from tab0);
prepare select col0 from tab0 where (?,?) in (select col0,col1 from tab0);
prepare select col0 from tab0 where (col1,col1) in (select col0,? from tab0);
@@ -46,6 +57,7 @@ prepare select ? is null from tab0; --er
prepare select max(?); --error
prepare select max(?) over (); --error
+drop table tab1;
CREATE TABLE tab1(col0 INTEGER, col1 STRING);
prepare select 1 from tab1 where (col0,col1) in (select ?,? from tab1);
diff --git a/sql/test/miscellaneous/Tests/groupby_error.stable.out
b/sql/test/miscellaneous/Tests/groupby_error.stable.out
--- a/sql/test/miscellaneous/Tests/groupby_error.stable.out
+++ b/sql/test/miscellaneous/Tests/groupby_error.stable.out
@@ -71,6 +71,9 @@ stdout of test 'groupby_error` in direct
#CREATE TABLE tab0(col0 INTEGER, col1 INTEGER, col2 INTEGER);
#INSERT INTO tab0 VALUES(97,1,99), (15,81,47), (87,21,10);
[ 3 ]
+#CREATE TABLE tab1(col0 INTEGER, col1 INTEGER, col2 INTEGER);
+#INSERT INTO tab1 VALUES (51,14,96), (85,5,59), (91,47,68);
+[ 3 ]
#SELECT CAST(+ col1 * - col1 AS BIGINT) AS col2 FROM tab0 GROUP BY col2, col0,
col1 HAVING + - col0 / - AVG ( ALL + col2 ) - - - AVG ( DISTINCT + col0 ) +
col0 IS NULL;
% sys. # table_name
% col2 # name
@@ -86,6 +89,34 @@ stdout of test 'groupby_error` in direct
% col0, col1, col2 # name
% int, int, int # type
% 1, 1, 1 # length
+#SELECT * FROM tab0 AS cor0 WHERE NOT - 39 <> 11; --empty
+% sys.cor0, sys.cor0, sys.cor0 # table_name
+% col0, col1, col2 # name
+% int, int, int # type
+% 1, 1, 1 # length
+#SELECT DISTINCT * FROM tab0 WHERE NOT - - 12 <> + + 96; --empty
+% sys.tab0, sys.tab0, sys.tab0 # table_name
+% col0, col1, col2 # name
+% int, int, int # type
+% 1, 1, 1 # length
+#SELECT * FROM tab0 AS cor0 WHERE - 52 = + 32; --empty
+% sys.cor0, sys.cor0, sys.cor0 # table_name
+% col0, col1, col2 # name
+% int, int, int # type
+% 1, 1, 1 # length
+#SELECT ALL * FROM tab0 WHERE 68 = - + 83; --empty
+% sys.tab0, sys.tab0, sys.tab0 # table_name
+% col0, col1, col2 # name
+% int, int, int # type
+% 1, 1, 1 # length
+#SELECT 11 FROM tab1 AS cor0 LEFT JOIN tab0 ON 80 = 70;
+% . # table_name
+% single_value # name
+% tinyint # type
+% 2 # length
+[ 11 ]
+[ 11 ]
+[ 11 ]
#prepare select col0 from tab0 where (?) in (select col0 from tab0);
#prepare select col0 from tab0 where (?) in (select col0 from tab0);
% .prepare, .prepare, .prepare, .prepare, .prepare,
.prepare # table_name
@@ -222,6 +253,7 @@ stdout of test 'groupby_error` in direct
[ "tinyint", 1, 0, "", "%1", "%1" ]
[ "tinyint", 1, 0, NULL, NULL, NULL ]
[ "tinyint", 1, 0, NULL, NULL, NULL ]
+#drop table tab1;
#CREATE TABLE tab1(col0 INTEGER, col1 STRING);
#prepare select 1 from tab1 where (col0,col1) in (select ?,? from tab1);
#prepare select 1 from tab1 where (col0,col1) in (select ?,? from tab1);
@@ -233,6 +265,7 @@ stdout of test 'groupby_error` in direct
[ "int", 32, 0, NULL, NULL, NULL ]
[ "clob", 0, 0, NULL, NULL, NULL ]
#drop table tab0;
+#drop table tab1;
# 10:56:47 >
# 10:56:47 > "Done."
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list