Changeset: 46726fe8bc42 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=46726fe8bc42 Modified Files: Branch: default Log Message:
merged cleanup diffs (150 lines): 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 @@ -163,7 +163,7 @@ #define is_semi(op) \ (op == op_semi || op == op_anti) #define is_select(op) \ - (op == op_select /*|| op == op_semi || op == op_anti*/) + (op == op_select) #define is_set(op) \ (op == op_union || op == op_inter || op == op_except) #define is_union(op) \ 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 @@ -1706,7 +1706,7 @@ rel_select_cse(int *changes, mvc *sql, sql_rel *rel) { (void)sql; - if (rel->op == op_select && !rel_is_ref(rel) && rel->exps) { + if (is_select(rel->op) && !rel_is_ref(rel) && rel->exps) { list *nexps = new_exp_list(sql->sa); node *n; @@ -1856,7 +1856,7 @@ (void)sql; *changes = 0; - if (rel->op == op_select && !rel_is_ref(rel) && rel->exps) { + if (is_select(rel->op) && !rel_is_ref(rel) && rel->exps) { node *n, *o; list *nexps = NULL; @@ -2062,7 +2062,7 @@ (void)sql; /* merge 2 selects */ r = rel->l; - if (rel->op == op_select && r && !(rel_is_ref(r)) && (r->op == op_select || r->op == op_except)) { + if (is_select(rel->op) && r && is_select(r->op) && !(rel_is_ref(r))) { (void)list_merge(r->exps, rel->exps, (fdup)NULL); rel->l = NULL; rel_destroy(rel); @@ -2073,7 +2073,7 @@ * Push select through semi/anti join * select (semi(A,B)) == semi(select(A), B) */ - if (rel->op == op_select && r && is_semi(r->op) && !(rel_is_ref(r))) { + if (is_select(rel->op) && r && is_semi(r->op) && !(rel_is_ref(r))) { rel->l = r->l; r->l = rel; (*changes)++; @@ -2106,7 +2106,7 @@ return rel_merge_projects(changes, sql, rel); /* push select through join */ - if (rel->op == op_select && r && is_join(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; @@ -2146,7 +2146,7 @@ } /* merge select and cross product ? */ - if (rel->op == op_select && r && r->op == op_join && !(rel_is_ref(r))) { + if (is_select(rel->op) && r && r->op == op_join && !(rel_is_ref(r))) { list *exps = rel->exps; if (!r->exps) @@ -2166,7 +2166,7 @@ } /* push select through set */ - if (rel->op == op_select && r && is_set(r->op) && !(rel_is_ref(r))) { + if (is_select(rel->op) && r && is_set(r->op) && !(rel_is_ref(r))) { sql_rel *res = r; sql_rel *sl = r->l; sql_rel *sr = r->r; @@ -2206,7 +2206,7 @@ return res; } - if (rel->op == op_select && r && r->op == op_project && !(rel_is_ref(r))) { + if (is_select(rel->op) && r && r->op == op_project && !(rel_is_ref(r))) { sql_rel *pl; /* we cannot push through rank (row_number etc) functions or projects with distinct */ @@ -2255,7 +2255,7 @@ r = rel->l; /* push select through join */ - if (rel->op == op_select && r && r->op == op_join && !(rel_is_ref(r))) { + if (is_select(rel->op) && r && r->op == op_join && !(rel_is_ref(r))) { rel->exps = new_exp_list(sql->sa); for (n = exps->h; n; n = n->next) { sql_exp *e = n->data; @@ -2296,7 +2296,7 @@ if ((is_join(rel->op) || is_semi(rel->op) || is_select(rel->op) || is_project(rel->op) || rel->op == op_topn) && rel->l) { sql_rel *l = rel->l; - if (l->op == op_select && !(rel_is_ref(l)) && + if (is_select(l->op) && !(rel_is_ref(l)) && (!l->exps || list_length(l->exps) == 0)) { rel->l = l->l; l->l = NULL; @@ -2306,7 +2306,7 @@ } if ((is_join(rel->op) || is_semi(rel->op) || is_set(rel->op)) && rel->r) { sql_rel *r = rel->r; - if (r->op == op_select && !(rel_is_ref(r)) && + if (is_select(r->op) && !(rel_is_ref(r)) && (!r->exps || list_length(r->exps) == 0)) { rel->r = r->l; r->l = NULL; @@ -3380,7 +3380,7 @@ { (void)sql; *changes = 0; - if (rel->op == op_select) { + if (is_select(rel->op)) { list *exps = NULL; sql_idx *i = find_index(sql->sa, rel, &exps); @@ -3445,7 +3445,7 @@ { (void)sql; *changes = 0; - if (rel->op == op_select && rel->exps && list_length(rel->exps)>1) { + if (is_select(rel->op) && rel->exps && list_length(rel->exps)>1) { list *exps = NULL; exps = list_sort(rel->exps, (fkeyvalue)&exp_keyvalue, (fdup)NULL); @@ -3460,7 +3460,7 @@ { (void)sql; *changes = 0; - if (rel->op == op_select && rel->exps) { + if (is_select(rel->op) && rel->exps) { node *n; list *exps = list_new(sql->sa); @@ -3635,7 +3635,7 @@ rel_find_range(int *changes, mvc *sql, sql_rel *rel) { *changes = 0; - if ((is_join(rel->op) || rel->op == op_select) && rel->exps && list_length(rel->exps)>1) + if ((is_join(rel->op) || is_select(rel->op)) && rel->exps && list_length(rel->exps)>1) rel->exps = exp_merge_range(sql->sa, rel->exps); return rel; } _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list