Changeset: a2a1332a3c38 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a2a1332a3c38 Modified Files: sql/backends/monet5/rel_bin.c sql/include/sql_relation.h sql/rel.txt sql/server/rel_distribute.c sql/server/rel_dump.c sql/server/rel_exp.c sql/server/rel_optimizer.c sql/server/rel_partition.c sql/server/rel_propagate.c sql/server/rel_psm.c sql/server/rel_rel.c sql/server/rel_select.c sql/server/rel_select.h sql/server/rel_unnest.c sql/server/rel_updates.c sql/test/BugTracker-2014/Tests/orderby_count.Bug-3526.stable.out sql/test/bugs/Tests/selectlist_subquery-sf-1208599.stable.out sql/test/bugs/Tests/zero_or_one_bug.stable.out sql/test/in-value-list/Tests/various-in-value-list-queries.stable.out Branch: subquery Log Message:
removed apply diffs (truncated from 2370 to 300 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 @@ -1523,7 +1523,6 @@ rel2bin_args(backend *be, sql_rel *rel, case op_right: case op_full: - case op_apply: case op_semi: case op_anti: @@ -5462,8 +5461,6 @@ subrel_bin(backend *be, sql_rel *rel, li s = rel2bin_join(be, rel, refs); sql->type = Q_TABLE; break; - case op_apply: - assert(0); case op_semi: case op_anti: s = rel2bin_semijoin(be, rel, refs); @@ -5768,9 +5765,6 @@ rel_deps(mvc *sql, sql_rel *r, list *ref rel_deps(sql, r->r, refs, l) != 0) return -1; break; - case op_apply: - //assert(0); - break; case op_project: case op_select: case op_groupby: diff --git a/sql/include/sql_relation.h b/sql/include/sql_relation.h --- a/sql/include/sql_relation.h +++ b/sql/include/sql_relation.h @@ -161,7 +161,6 @@ typedef enum operator_type { op_full, op_semi, op_anti, - op_apply, op_union, op_inter, op_except, @@ -211,8 +210,6 @@ typedef enum operator_type { (op == op_semi || op == op_anti) #define is_joinop(op) \ (is_join(op) || is_semi(op)) -#define is_apply(op) \ - (op == op_apply) #define is_select(op) \ (op == op_select) #define is_set(op) \ diff --git a/sql/rel.txt b/sql/rel.txt --- a/sql/rel.txt +++ b/sql/rel.txt @@ -46,12 +46,6 @@ SEMI/ANTI -> l is left relation -> r is rigth relation -APPLY - (card MULTI) - -> exps are the bind variables (from the outer, correlated in the subquery) - -> l is outer relation - -> r is subquery relation - UNION|EXCEPT|INTERSECT (card ATOM, AGGR or MULTI (same card as lower relation)) -> exps is list of projection expressions diff --git a/sql/server/rel_distribute.c b/sql/server/rel_distribute.c --- a/sql/server/rel_distribute.c +++ b/sql/server/rel_distribute.c @@ -36,7 +36,6 @@ has_remote_or_replica( sql_rel *rel ) case op_right: case op_full: - case op_apply: case op_semi: case op_anti: @@ -207,7 +206,6 @@ replica(mvc *sql, sql_rel *rel, char *ur case op_right: case op_full: - case op_apply: case op_semi: case op_anti: @@ -328,7 +326,6 @@ distribute(mvc *sql, sql_rel *rel) case op_right: case op_full: - case op_apply: case op_semi: case op_anti: @@ -445,7 +442,6 @@ rel_remote_func(mvc *sql, sql_rel *rel) case op_right: case op_full: - case op_apply: case op_semi: case op_anti: diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c --- a/sql/server/rel_dump.c +++ b/sql/server/rel_dump.c @@ -281,8 +281,6 @@ op2string(operator_type op) return "project"; case op_select: return "select"; - case op_apply: - return "apply"; case op_join: case op_left: case op_right: @@ -399,7 +397,6 @@ rel_print_(mvc *sql, stream *fout, sql_ case op_left: case op_right: case op_full: - case op_apply: case op_semi: case op_anti: case op_union: @@ -412,17 +409,6 @@ rel_print_(mvc *sql, stream *fout, sql_ r = "right outer join"; else if (rel->op == op_full) r = "full outer join"; - else if (rel->op == op_apply) { - r = "apply"; - if (rel->flag == APPLY_JOIN) - r = "apply join"; - else if (rel->flag == APPLY_LOJ) - r = "apply left outer join"; - else if (rel->flag == APPLY_EXISTS) - r = "apply exists"; - else if (rel->flag == APPLY_NOTEXISTS) - r = "apply not exists"; - } else if (rel->op == op_semi) r = "semijoin"; else if (rel->op == op_anti) @@ -573,7 +559,6 @@ rel_print_refs(mvc *sql, stream* fout, s case op_left: case op_right: case op_full: - case op_apply: case op_semi: case op_anti: case op_union: diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c --- a/sql/server/rel_exp.c +++ b/sql/server/rel_exp.c @@ -1341,7 +1341,6 @@ rel_find_exp( sql_rel *rel, sql_exp *e) case op_right: case op_full: case op_join: - case op_apply: ne = rel_find_exp(rel->l, e); if (!ne) ne = rel_find_exp(rel->r, e); 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 @@ -112,7 +112,6 @@ name_find_column( sql_rel *rel, const ch case op_left: case op_right: case op_full: - case op_apply: case op_semi: case op_anti: /* first right (possible subquery) */ @@ -280,7 +279,6 @@ rel_properties(mvc *sql, global_props *g case op_right: case op_full: - case op_apply: case op_semi: case op_anti: @@ -321,7 +319,6 @@ rel_properties(mvc *sql, global_props *g case op_right: case op_full: - case op_apply: case op_semi: case op_anti: @@ -1150,7 +1147,6 @@ rel_join_order(mvc *sql, sql_rel *rel) case op_full: break; - case op_apply: case op_semi: case op_anti: @@ -4270,17 +4266,12 @@ rel_push_select_down(int *changes, mvc * return rel_merge_projects(changes, sql, rel); /* push select through join */ - if (is_select(rel->op) && r && (is_join(r->op) || is_apply(r->op)) && !(rel_is_ref(r))) { + if (is_select(rel->op) && r && is_join(r->op) && !(rel_is_ref(r))) { sql_rel *jl = r->l; sql_rel *jr = r->r; int left = r->op == op_join || r->op == op_left; int right = r->op == op_join || r->op == op_right; - if (is_apply(r->op)) { - left = right = 1; - if (r->flag == APPLY_LOJ) - right = 0; - } if (r->op == op_full) return rel; @@ -4394,7 +4385,7 @@ rel_push_select_down_join(int *changes, sql_rel *nr = NULL; sql_exp *re = e->r, *ne = rel_find_exp(r, re); - if (ne && ne->card >= CARD_AGGR) /* possibly changed because of apply rewrites */ + if (ne && ne->card >= CARD_AGGR) re->card = ne->card; if (re->card >= CARD_AGGR) { @@ -6327,8 +6318,6 @@ rel_mark_used(mvc *sql, sql_rel *rel, in rel_mark_used(sql, rel->l, 0); rel_mark_used(sql, rel->r, 0); break; - case op_apply: - break; } } @@ -6388,7 +6377,6 @@ rel_remove_unused(mvc *sql, sql_rel *rel case op_project: case op_groupby: - case op_apply: if (/*rel->l &&*/ rel->exps) { node *n; @@ -6495,9 +6483,6 @@ rel_dep_graph( char *deps, list *refs, s if (rel->r) rel_dep_graph(deps, refs, parent, rel->r); break; - - case op_apply: - assert(0); } } @@ -6631,9 +6616,6 @@ rel_dce_refs(mvc *sql, sql_rel *rel, lis if (rel->r) rel_dce_refs(sql, rel->r, refs); break; - - case op_apply: - assert(0); } if (rel_is_ref(rel) && !list_find(refs, rel, NULL)) @@ -6721,8 +6703,6 @@ rel_dce_down(mvc *sql, sql_rel *rel, lis if (rel->r) rel->r = rel_dce_down(sql, rel->r, refs, 0); return rel; - case op_apply: - assert(0); } return rel; } @@ -6807,7 +6787,6 @@ rel_add_projects(mvc *sql, sql_rel *rel) case op_left: case op_right: case op_full: - case op_apply: case op_semi: case op_anti: if (rel->l) @@ -8645,830 +8624,6 @@ rel_remove_union_partitions(int *changes return rel; } -/* TODO move all apply related stuff in to rel_apply.c/h */ -static int exps_uses_exps(list *users, list *exps); - -static int -exp_uses_exps(sql_exp *e, list *exps) -{ - sql_exp *ne = NULL; - - switch(e->type) { - case e_column: - if (e->l) { - ne = exps_bind_column2(exps, e->l, e->r); - } else { - ne = exps_bind_column(exps, e->r, NULL); - } - return (ne != NULL); - case e_convert: - return exp_uses_exps(e->l, exps); - case e_aggr: - case e_func: - if (e->l) _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list