Changeset: 4a22cee0355a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4a22cee0355a
Modified Files:
sql/server/rel_select.c
Branch: graph0
Log Message:
SEMA: Avoid to return a nested table attribute
diffs (34 lines):
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
@@ -4885,6 +4885,21 @@ rel_unique_names(mvc *sql, sql_rel *rel)
return rel;
}
+
+static sql_rel *
+validate_result_type (mvc *sql, sql_rel *rel){
+ list *exps = rel_projections(sql, rel, NULL, true, false);
+ for(node *n = exps->h; n; n = n->next){
+ sql_exp *e = n->data;
+ sql_subtype *type = exp_subtype(e);
+ if(list_length(type->attributes) != 0){
+ return sql_error(sql, 01, "SELECT: Nested table
attribute in the topmost projection: %s", exp_name(e));
+ }
+ }
+
+ return rel;
+}
+
static sql_rel *
rel_query(mvc *sql, sql_rel *rel, symbol *sq, int toplevel, exp_kind ek, int
apply)
{
@@ -5445,6 +5460,8 @@ rel_selects(mvc *sql, symbol *s)
}
if (!ret && sql->errstr[0] == 0)
(void) sql_error(sql, 02, "relational query without result");
+ else
+ ret = validate_result_type(sql, ret);
return ret;
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list