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