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