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
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list