Changeset: 146827d493c7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=146827d493c7
Modified Files:
sql/server/rel_rel.c
sql/server/rel_select.c
sql/server/rel_updates.c
sql/server/sql_tokens.h
sql/test/BugTracker/Tests/ambiguous_join.SF-1580565.stable.err
Branch: default
Log Message:
Small cleanup. Removed unused jt_union join.
diffs (195 lines):
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
@@ -2057,12 +2057,10 @@ rel_visitor(mvc *sql, sql_rel *rel, rel_
return sql_error(sql, 10, SQLSTATE(42000) "Query too complex:
running out of stack space");
if (!rel)
- return rel;
+ return NULL;
- if (topdown) {
- if (!(rel = do_rel_visitor(sql, rel, rel_rewriter, changes,
true)))
- return rel;
- }
+ if (topdown && !(rel = do_rel_visitor(sql, rel, rel_rewriter, changes,
true)))
+ return NULL;
sql_rel *(*func)(mvc *, sql_rel *, rel_rewrite_fptr, int*) = topdown ?
rel_visitor_topdown : rel_visitor_bottomup;
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -370,7 +370,7 @@ query_exp_optname(sql_query *query, sql_
return rel_table_optname(sql, tq, q->data.lval->t->data.sym);
}
default:
- (void) sql_error(sql, 02, SQLSTATE(42000) "case %d %s\n",
q->token, token2string(q->token));
+ (void) sql_error(sql, 02, SQLSTATE(42000) "case %d %s",
q->token, token2string(q->token));
}
return NULL;
}
@@ -1492,9 +1492,8 @@ rel_convert_types(mvc *sql, sql_rel *ll,
}
*L = ls;
*R = rs;
- if (!ls || !rs) {
+ if (!ls || !rs)
return -1;
- }
return 0;
}
return -1;
@@ -1556,10 +1555,8 @@ rel_filter(mvc *sql, sql_rel *rel, list
}
r = nexps;
}
- if (!f) {
+ if (!f)
return sql_error(sql, 02, SQLSTATE(42000) "SELECT: no such
FILTER function '%s'", filter_op);
- return NULL;
- }
e = exp_filter(sql->sa, l, r, f, anti);
/* atom or row => select */
@@ -4053,10 +4050,8 @@ rel_groupings(sql_query *query, sql_rel
if (!e)
return NULL;
if (e->type != e_column) { /*
store group by expressions in the stack */
- if
(is_sql_group_totals(f)) {
- (void)
sql_error(sql, 02, SQLSTATE(42000) "GROUP BY: grouping expressions not possible
with ROLLUP, CUBE and GROUPING SETS");
- return NULL;
- }
+ if
(is_sql_group_totals(f))
+ return
sql_error(sql, 02, SQLSTATE(42000) "GROUP BY: grouping expressions not possible
with ROLLUP, CUBE and GROUPING SETS");
if
(!stack_push_groupby_expression(sql, grp, e))
return NULL;
}
@@ -5147,7 +5142,6 @@ rel_table_exp(sql_query *query, sql_rel
if (!is_project((*rel)->op))
return NULL;
r = rel_named_table_function( query, (*rel)->l, column_e, 0);
-
if (!r)
return NULL;
*rel = r;
@@ -5195,9 +5189,8 @@ rel_table_exp(sql_query *query, sql_rel
sql_exp *
rel_column_exp(sql_query *query, sql_rel **rel, symbol *column_e, int f)
{
- if (column_e->token == SQL_COLUMN || column_e->token == SQL_IDENT) {
+ if (column_e->token == SQL_COLUMN || column_e->token == SQL_IDENT)
return column_exp(query, rel, column_e, f);
- }
return NULL;
}
@@ -5362,7 +5355,7 @@ join_on_column_name(sql_query *query, sq
node *n;
nme = number2name(name, sizeof(name), nr);
- if (!exps)
+ if (!exps || !r_exps)
return NULL;
for (n = exps->h; n; n = n->next) {
sql_exp *le = n->data;
@@ -5681,9 +5674,6 @@ rel_joinquery_(sql_query *query, sql_rel
l_nil = 1;
r_nil = 1;
break;
- case jt_union:
- /* fool compiler */
- return NULL;
}
lateral = check_is_lateral(tab2);
@@ -5712,7 +5702,7 @@ rel_joinquery_(sql_query *query, sql_rel
return NULL;
if (!lateral && rel_name(t1) && rel_name(t2) && strcmp(rel_name(t1),
rel_name(t2)) == 0) {
- sql_error(sql, 02, SQLSTATE(42000) "SELECT: '%s' on both sides
of the JOIN expression;", rel_name(t1));
+ sql_error(sql, 02, SQLSTATE(42000) "SELECT: '%s' on both sides
of the JOIN expression", rel_name(t1));
rel_destroy(t1);
rel_destroy(t2);
return NULL;
@@ -5723,12 +5713,10 @@ rel_joinquery_(sql_query *query, sql_rel
if (lateral)
set_dependent(inner);
- if (js && natural) {
- return sql_error(sql, 02, SQLSTATE(42000) "SELECT: cannot have
a NATURAL JOIN with a join specification (ON or USING);");
- }
- if (!js && !natural) {
- return sql_error(sql, 02, SQLSTATE(42000) "SELECT: must have
NATURAL JOIN or a JOIN with a join specification (ON or USING);");
- }
+ if (js && natural)
+ return sql_error(sql, 02, SQLSTATE(42000) "SELECT: cannot have
a NATURAL JOIN with a join specification (ON or USING)");
+ if (!js && !natural)
+ return sql_error(sql, 02, SQLSTATE(42000) "SELECT: must have
NATURAL JOIN or a JOIN with a join specification (ON or USING)");
if (js && js->token != SQL_USING) { /* On sql_logical_exp */
rel = rel_logical_exp(query, rel, js, sql_where | sql_join);
@@ -5746,7 +5734,7 @@ rel_joinquery_(sql_query *query, sql_rel
sql_exp *rs = rel_bind_column(sql, t2, nm, sql_where,
0);
if (!ls || !rs) {
- sql_error(sql, 02, SQLSTATE(42000) "JOIN:
tables '%s' and '%s' do not have a matching column '%s'\n",
rel_name(t1)?rel_name(t1):"", rel_name(t2)?rel_name(t2):"", nm);
+ sql_error(sql, 02, SQLSTATE(42000) "JOIN:
tables '%s' and '%s' do not have a matching column '%s'",
rel_name(t1)?rel_name(t1):"", rel_name(t2)?rel_name(t2):"", nm);
rel_destroy(rel);
return NULL;
}
@@ -5872,7 +5860,7 @@ rel_unionjoinquery(sql_query *query, sql
for (m = lexps->h; m; m = m->next) {
sql_exp *le = m->data;
sql_exp *rc = rel_bind_column(sql, rv, exp_name(le), sql_where,
0);
-
+
if (!rc && all)
break;
if (rc) {
diff --git a/sql/server/rel_updates.c b/sql/server/rel_updates.c
--- a/sql/server/rel_updates.c
+++ b/sql/server/rel_updates.c
@@ -1582,10 +1582,8 @@ rel_import(mvc *sql, sql_table *t, const
fwf_string_cur += sprintf(fwf_string_cur, LLFMT"%c",
dn->data.l_val, STREAM_FWF_FIELD_SEP);
ncol++;
}
- if(list_length(f->res) != ncol) {
- (void) sql_error(sql, 02, SQLSTATE(3F000) "COPY INTO:
fixed width import for %d columns but %d widths given.", list_length(f->res),
ncol);
- return NULL;
- }
+ if (list_length(f->res) != ncol)
+ return sql_error(sql, 02, SQLSTATE(3F000) "COPY INTO:
fixed width import for %d columns but %d widths given.", list_length(f->res),
ncol);
*fwf_string_cur = '\0';
}
diff --git a/sql/server/sql_tokens.h b/sql/server/sql_tokens.h
--- a/sql/server/sql_tokens.h
+++ b/sql/server/sql_tokens.h
@@ -182,8 +182,7 @@ typedef enum jt {
jt_inner = 0,
jt_left = 1,
jt_right = 2,
- jt_full = 3,
- jt_union = 4
+ jt_full = 3
} jt;
#endif
diff --git a/sql/test/BugTracker/Tests/ambiguous_join.SF-1580565.stable.err
b/sql/test/BugTracker/Tests/ambiguous_join.SF-1580565.stable.err
--- a/sql/test/BugTracker/Tests/ambiguous_join.SF-1580565.stable.err
+++ b/sql/test/BugTracker/Tests/ambiguous_join.SF-1580565.stable.err
@@ -12,11 +12,11 @@ stderr of test 'ambiguous_join.SF-158056
MAPI = (monetdb) /var/tmp/mtest-27483/.s.monetdb.35395
QUERY = select * from B left join B on B.id = B.id;
-ERROR = !SELECT: 'b' on both sides of the JOIN expression;
+ERROR = !SELECT: 'b' on both sides of the JOIN expression
CODE = 42000
MAPI = (monetdb) /var/tmp/mtest-30274/.s.monetdb.37685
QUERY = select * from A, B left join B on B.id = A.id;
-ERROR = !SELECT: 'b' on both sides of the JOIN expression;
+ERROR = !SELECT: 'b' on both sides of the JOIN expression
CODE = 42000
MAPI = (monetdb) /var/tmp/mtest-30274/.s.monetdb.37685
QUERY = select * from A, B left join B as b2 on B.id = A.id;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list