Changeset: b81ea145dfa7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b81ea145dfa7
Modified Files:
        sql/server/rel_basetable.c
        sql/server/rel_select.c
Branch: nested
Log Message:

more name fixing


diffs (59 lines):

diff --git a/sql/server/rel_basetable.c b/sql/server/rel_basetable.c
--- a/sql/server/rel_basetable.c
+++ b/sql/server/rel_basetable.c
@@ -197,6 +197,9 @@ rel_nested_basetable_add_cols(mvc *sql, 
                                e->f = sa_list(sql->sa);
                        if (!e || !e->f)
                                return NULL;
+                       sql_alias *ta = a_create(sa, c->base.name);
+                       ta->parent = atname;
+                       atname = ta;
                } else {
                        e = exp_alias(sql, atname, c->base.name, atname, 
c->base.name, &c->type, CARD_MULTI, c->null, is_column_unique(c), 1);
                }
@@ -217,8 +220,10 @@ rel_nested_basetable_add_cols(mvc *sql, 
                if (ce && ce != e) {
                        append(ce->f, e);
                        composite--;
-                       if (!composite)
+                       if (!composite) {
                                ce = NULL;
+                               atname = atname->parent;
+                       }
                } else {
                        append(exps, e);
                }
@@ -277,6 +282,9 @@ rel_nested_basetable(mvc *sql, sql_table
                                e->f = sa_list(sql->sa);
                        if (!e || !e->f)
                                return NULL;
+                       sql_alias *ta = a_create(sa, c->base.name);
+                       ta->parent = atname;
+                       atname = ta;
                } else {
                        e = exp_alias(sql, atname, c->base.name, atname, 
c->base.name, &c->type, CARD_MULTI, c->null, is_column_unique(c), 0);
                }
@@ -298,8 +306,10 @@ rel_nested_basetable(mvc *sql, sql_table
                if (ce && ce != e) {
                        append(ce->f, e);
                        composite--;
-                       if (!composite)
+                       if (!composite) {
                                ce = NULL;
+                               atname = atname->parent;
+                       }
                } else {
                        append(rel->exps, e);
                }
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
@@ -729,7 +729,7 @@ rel_unnest_func(sql_query *query, list *
                if (r && is_basetable(r->op)) {
                        sql_table *t = r->l;
                        sql_column *c = t?mvc_bind_column(query->sql, t, 
exp_name(e)):NULL;
-                       if (!c)
+                       if (!c || !c->storage_type)
                                return sql_error(query->sql, ERR_NOTFOUND, 
SQLSTATE(42000) "SELECT: unnest multiset column '%s' missing", exp_name(e));
 
                        sql_table *st = mvc_bind_table(query->sql, t->s, 
c->storage_type);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to