Changeset: 6fff1c12113e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6fff1c12113e
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/server/rel_optimizer.c
        sql/server/rel_optimizer.h
Branch: Nov2019
Log Message:

Don't optimize merge tables when looking for dependencies. Also exclude table 
production relations with no sql_subfunc under them on dependency lookup


diffs (54 lines):

diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -5876,7 +5876,7 @@ rel_deps(mvc *sql, sql_rel *r, list *ref
                }
        } break;
        case op_table: {
-               if (r->flag == 0 || r->flag == 1) { /* table producing function 
*/
+               if ((r->flag == 0 || r->flag == 1) && r->r) { /* table 
producing function, excluding rel_relational_func cases */
                        sql_exp *op = r->r;
                        sql_subfunc *f = op->f;
                        cond_append(l, &f->func->base.id);
diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -9137,7 +9137,8 @@ optimize_rel(mvc *sql, sql_rel *rel, int
                changes = 0;
        }
 
-       rel = rewrite_topdown(sql, rel, &rel_merge_table_rewrite, &changes);
+       if (value_based_opt)
+               rel = rewrite_topdown(sql, rel, &rel_merge_table_rewrite, 
&changes);
        if (level <= 0 && mvc_debug_on(sql,8))
                rel = rewrite_topdown(sql, rel, &rel_add_dicts, &changes);
        *g_changes = changes;
@@ -9188,7 +9189,7 @@ rel_reset_subquery(sql_rel *rel)
 
 }
 
-static sql_rel *
+static sql_rel *x<
 optimize(mvc *sql, sql_rel *rel, int value_based_opt) 
 {
        list *refs = sa_list(sql->sa);
diff --git a/sql/server/rel_optimizer.h b/sql/server/rel_optimizer.h
--- a/sql/server/rel_optimizer.h
+++ b/sql/server/rel_optimizer.h
@@ -12,13 +12,13 @@
 #include "sql_relation.h"
 #include "sql_mvc.h"
 
-extern sql_rel * rel_optimizer(mvc *sql, sql_rel *rel, int value_based_opt);
+extern sql_rel *rel_optimizer(mvc *sql, sql_rel *rel, int value_based_opt);
 
 extern int exp_joins_rels(sql_exp *e, list *rels);
 
-extern void *name_find_column( sql_rel *rel, const char *rname, const char 
*name, int pnr, sql_rel **bt );
+extern void *name_find_column(sql_rel *rel, const char *rname, const char 
*name, int pnr, sql_rel **bt);
 extern int exps_unique(mvc *sql, sql_rel *rel, list *exps);
 
-extern sql_rel * rel_dce(mvc *sql, sql_rel *rel);
+extern sql_rel *rel_dce(mvc *sql, sql_rel *rel);
 
 #endif /*_REL_OPTIMIZER_H_*/
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to