Changeset: 2cca856c1f50 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2cca856c1f50
Modified Files:
        sql/server/rel_rewriter.c
Branch: default
Log Message:

Don't simplify single inner joins or selects


diffs (14 lines):

diff --git a/sql/server/rel_rewriter.c b/sql/server/rel_rewriter.c
--- a/sql/server/rel_rewriter.c
+++ b/sql/server/rel_rewriter.c
@@ -181,8 +181,8 @@ rewrite_simplify(visitor *v, sql_rel *re
                int changes = v->changes, level = *(int*)v->data;
                rel->exps = exps_simplify_exp(v, rel->exps);
                /* At a select or inner join relation if the single expression 
is false, eliminate the inner relations with a dummy projection */
-               if (v->value_based_opt && (v->changes > changes || level == 0) 
&& list_length(rel->exps) == 1 &&
-                       (is_select(rel->op) || is_innerjoin(rel->op)) && 
(exp_is_false(rel->exps->h->data) || exp_is_null(rel->exps->h->data))) {
+               if (v->value_based_opt && (v->changes > changes || level == 0) 
&& (is_select(rel->op) || is_innerjoin(rel->op)) &&
+                       !is_single(rel) && list_length(rel->exps) == 1 && 
(exp_is_false(rel->exps->h->data) || exp_is_null(rel->exps->h->data))) {
                        list *nexps = sa_list(v->sql->sa), *toconvert = 
rel_projections(v->sql, rel->l, NULL, 1, 1);
                        if (is_innerjoin(rel->op))
                                toconvert = list_merge(toconvert, 
rel_projections(v->sql, rel->r, NULL, 1, 1), NULL);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to