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

Reply via email to