Changeset: 05e7db16c72b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=05e7db16c72b
Modified Files:
        sql/include/sql_relation.h
        sql/server/rel_rel.c
        sql/server/rel_unnest.c
Branch: Oct2020
Log Message:

Removed unused 'subquery' property


diffs (91 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
@@ -246,9 +246,6 @@ typedef enum operator_type {
 #define is_processed(rel)      ((rel)->processed)
 #define set_processed(rel)     (rel)->processed = 1
 #define reset_processed(rel)   (rel)->processed = 0
-#define is_subquery(rel)       ((rel)->subquery)
-#define set_subquery(rel)      (rel)->subquery = 1
-#define reset_subquery(rel)    (rel)->subquery = 0
 #define is_dependent(rel)      ((rel)->dependent)
 #define set_dependent(rel)     (rel)->dependent = 1
 #define reset_dependent(rel)   (rel)->dependent = 0
@@ -282,7 +279,6 @@ typedef struct relation {
         outer:1,       /* used as outer (ungrouped) */
         grouped:1,     /* groupby processed all the group by exps */
         single:1,
-        subquery:1,    /* is this part a subquery, this is needed for proper 
name binding */
         used:1;        /* used by rewrite_fix_count at rel_unnest, so a 
relation is not modified twice */
        void *p;        /* properties for the optimizer, distribution */
 } sql_rel;
diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c
--- a/sql/server/rel_rel.c
+++ b/sql/server/rel_rel.c
@@ -230,16 +230,6 @@ rel_select_copy(sql_allocator *sa, sql_r
        return rel;
 }
 
-static int
-rel_issubquery(sql_rel*r)
-{
-       if (!r->subquery) {
-               if (is_select(r->op))
-                       return rel_issubquery(r->l);
-       }
-       return r->subquery;
-}
-
 static sql_rel *
 rel_bind_column_(mvc *sql, int *exp_has_nil, sql_rel *rel, const char *cname, 
int no_tname)
 {
@@ -254,17 +244,13 @@ rel_bind_column_(mvc *sql, int *exp_has_
        case op_left:
        case op_right:
        case op_full: {
-               sql_rel *right = rel->r;
-
                r = rel_bind_column_(sql, exp_has_nil, rel->r, cname, no_tname);
-               if (!r || !rel_issubquery(right)) {
-                       sql_exp *e = r?exps_bind_column(r->exps, cname, 
&ambiguous, &multi, 0):NULL;
+               sql_exp *e = r?exps_bind_column(r->exps, cname, &ambiguous, 
&multi, 0):NULL;
 
-                       if (!r || !e || !is_freevar(e)) {
-                               l = rel_bind_column_(sql, exp_has_nil, rel->l, 
cname, no_tname);
-                               if (l && r && !rel_issubquery(r) && 
!is_dependent(rel))
-                                       return sql_error(sql, ERR_AMBIGUOUS, 
SQLSTATE(42000) "SELECT: identifier '%s' ambiguous", cname);
-                       }
+               if (!r || !e || !is_freevar(e)) {
+                       l = rel_bind_column_(sql, exp_has_nil, rel->l, cname, 
no_tname);
+                       if (l && r && !is_dependent(rel))
+                               return sql_error(sql, ERR_AMBIGUOUS, 
SQLSTATE(42000) "SELECT: identifier '%s' ambiguous", cname);
                }
                if (sql->session->status == -ERR_AMBIGUOUS)
                        return NULL;
diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c
--- a/sql/server/rel_unnest.c
+++ b/sql/server/rel_unnest.c
@@ -1514,14 +1514,6 @@ static sql_rel *
        return rel;
 }
 
-static sql_rel *
-rel_reset_subquery(visitor *v, sql_rel *rel)
-{
-       (void)v;
-       rel->subquery = 0;
-       return rel;
-}
-
 static sql_exp *
 rewrite_inner(mvc *sql, sql_rel *rel, sql_rel *inner, operator_type op)
 {
@@ -3166,8 +3158,6 @@ rel_unnest(mvc *sql, sql_rel *rel)
 {
        visitor v = { .sql = sql };
 
-       rel = rel_visitor_topdown(&v, rel, &rel_reset_subquery);
-       v.changes = 0;
        rel = rel_exp_visitor_bottomup(&v, rel, &rewrite_simplify_exp, false);
        rel = rel_visitor_bottomup(&v, rel, &rewrite_simplify);
        rel = rel_visitor_bottomup(&v, rel, &rewrite_or_exp);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to