Changeset: b100823be403 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b100823be403
Modified Files:
sql/server/rel_unnest.c
sql/test/SQLancer/Tests/sqlancer06.stable.err
Branch: Oct2020
Log Message:
fix another sqlancer bug. No need for special handling of single values with
group by's, as we do this already using the 'single' join handling.
diffs (56 lines):
diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c
--- a/sql/server/rel_unnest.c
+++ b/sql/server/rel_unnest.c
@@ -2279,22 +2279,6 @@ rewrite_anyequal(mvc *sql, sql_rel *rel,
return e;
}
-static const char *
-compare_aggr_op( char *compare, int quantifier)
-{
- if (quantifier == 0)
- return "zero_or_one";
- switch(compare[0]) {
- case '<':
- if (compare[1] == '>')
- return "all";
- return "min";
- case '>':
- return "max";
- default:
- return "all";
- }
-}
/* exp visitor */
/* rewrite compare expressions including quantifiers any and all */
static sql_exp *
@@ -2412,14 +2396,6 @@ rewrite_compare(visitor *v, sql_rel *rel
re = exp_aggr1(v->sql->sa, re, a, 0, 1,
CARD_AGGR, has_nil(re));
re = rel_groupby_add_aggr(v->sql, rsq,
re);
set_processed(rsq);
- } else if (rsq && exp_card(re) > CARD_ATOM) {
- sql_subfunc *zero_or_one =
sql_bind_func(v->sql->sa, NULL, compare_aggr_op(op, quantifier),
exp_subtype(re), NULL, F_AGGR);
-
- rsq = rel_groupby(v->sql, rsq, NULL);
-
- re = exp_aggr1(v->sql->sa, re,
zero_or_one, 0, 0, CARD_AGGR, has_nil(re));
- re = rel_groupby_add_aggr(v->sql, rsq,
re);
- set_processed(rsq);
}
if (rsq)
(void)rewrite_inner(v->sql, rel, rsq,
is_cnt?op_left:op_join);
diff --git a/sql/test/SQLancer/Tests/sqlancer06.stable.err
b/sql/test/SQLancer/Tests/sqlancer06.stable.err
--- a/sql/test/SQLancer/Tests/sqlancer06.stable.err
+++ b/sql/test/SQLancer/Tests/sqlancer06.stable.err
@@ -19,9 +19,8 @@ ERROR = !INSERT INTO: UNIQUE constraint
CODE = 40002
MAPI = (monetdb) /var/tmp/mtest-331577/.s.monetdb.32973
QUERY = SELECT CAST(((t0.c0)<(COALESCE((SELECT DISTINCT t0.c0 FROM t0, t2,
t1), t0.c0, t2.c0))) AS INT) FROM t2 RIGHT OUTER JOIN t0 ON t2.c0 = ANY(SELECT
t1.c0 FROM t1, t2);
-ERROR = !zero_or_one: cardinality violation, scalar expression expected
-CODE = M0M29
-MAPI = (monetdb) /var/tmp/mtest-174425/.s.monetdb.32391
+ERROR = !GDK reported error: BATsubcross: more than one match
+MAPI = (monetdb) /var/tmp/mtest-2100068/.s.monetdb.34872
QUERY = SELECT t1.c2 FROM t2 RIGHT OUTER JOIN t1 ON (t2.c1) WHERE (SELECT
t1.c2 FROM t1) = ALL(SELECT t0.c2 FROM t0, t2);
ERROR = !GDK reported error: BATsubcross: more than one match
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list