Changeset: c6c91400555f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c6c91400555f
Modified Files:
sql/server/rel_optimizer.c
Branch: Apr2019
Log Message:
fixed bug 6703, ie only order the dependent referenced subqueries once
diffs (42 lines):
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
@@ -6516,7 +6516,7 @@ rel_dependencies(mvc *sql, list *refs)
static void
rel_dce_refs(mvc *sql, sql_rel *rel, list *refs)
{
- if (!rel)
+ if (!rel || (rel_is_ref(rel) && list_find(refs, rel, NULL)))
return ;
switch(rel->op) {
@@ -6529,6 +6529,7 @@ rel_dce_refs(mvc *sql, sql_rel *rel, lis
if (rel->l && (rel->op != op_table || rel->flag != 2))
rel_dce_refs(sql, rel->l, refs);
+ break;
case op_basetable:
case op_insert:
@@ -6751,7 +6752,7 @@ sql_rel *
rel_dce(mvc *sql, sql_rel *rel)
{
list *refs = sa_list(sql->sa);
- node *n;
+ //node *n;
if (refs == NULL)
return NULL;
@@ -6773,12 +6774,6 @@ rel_dce(mvc *sql, sql_rel *rel)
rel = rel_add_projects(sql, rel);
rel_used(rel);
rel_dce_sub(sql, rel, refs);
-
- if (refs) {
- refs = rel_dependencies(sql, refs);
- for (n = refs->h; n; n = n->next)
- rel_dce_sub(sql, n->data, refs);
- }
return rel;
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list