Changeset: a629ebd9beac for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/a629ebd9beac
Modified Files:
        sql/server/rel_rel.c
        sql/test/SQLancer/Tests/sqlancer18.test
Branch: default
Log Message:

don't add an identity column on projects distinct.


diffs (33 lines):

diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c
--- a/sql/server/rel_rel.c
+++ b/sql/server/rel_rel.c
@@ -1404,7 +1404,7 @@ static sql_rel *
                *exp = NULL;
                return rel;
        }
-       if (!is_simple_project(rel->op) || !list_empty(rel->r) || 
rel_is_ref(rel))
+       if (!is_simple_project(rel->op) || need_distinct(rel) || 
!list_empty(rel->r) || rel_is_ref(rel))
                rel = rel_project(sql->sa, rel, exps);
        e = rel->exps->h->data;
        e = exp_column(sql->sa, exp_relname(e), exp_name(e), exp_subtype(e), 
rel->card, has_nil(e), is_intern(e));
@@ -1419,7 +1419,7 @@ static sql_rel *
 sql_rel *
 rel_add_identity(mvc *sql, sql_rel *rel, sql_exp **exp)
 {
-       if (rel && is_project(rel->op) && (*exp = exps_find_identity(rel->exps, 
rel->l)) != NULL)
+       if (rel && is_project(rel->op) && !need_distinct(rel) && (*exp = 
exps_find_identity(rel->exps, rel->l)) != NULL)
                return rel;
        return _rel_add_identity(sql, rel, exp);
 }
diff --git a/sql/test/SQLancer/Tests/sqlancer18.test 
b/sql/test/SQLancer/Tests/sqlancer18.test
--- a/sql/test/SQLancer/Tests/sqlancer18.test
+++ b/sql/test/SQLancer/Tests/sqlancer18.test
@@ -314,7 +314,7 @@ SELECT vx.vc0 FROM vx WHERE vx.vc0 <> AL
 1970-01-01
 NULL
 
-statement error GDK reported error: BATsubcross: more than one match
+statement error GDK reported error: mergejoin: more than one match
 SELECT max((SELECT (SELECT rt2.c1 FROM t2) FROM t2 as rt2))
 
 statement ok
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to