Changeset: aff41cb5846e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/aff41cb5846e
Modified Files:
        sql/backends/monet5/sql_cat.c
        sql/storage/store.c
Branch: tempscs2os
Log Message:

and more fixes


diffs (68 lines):

diff --git a/sql/backends/monet5/sql_cat.c b/sql/backends/monet5/sql_cat.c
--- a/sql/backends/monet5/sql_cat.c
+++ b/sql/backends/monet5/sql_cat.c
@@ -1120,6 +1120,13 @@ alter_table(Client cntxt, mvc *sql, char
        if (!(nt = mvc_bind_table(sql, s, t->base.name)))
                throw(SQL,"sql.alter_table", SQLSTATE(42S02) "ALTER TABLE: no 
such table '%s'", t->base.name);
 
+       sql_table *gt = NULL;
+       if (nt && isTempTable(nt)) {
+               gt = (sql_table*)os_find_id(s->tables, sql->session->tr, 
nt->base.id);
+               if (gt)
+                       nt = gt;
+       }
+
        /* First check if all the changes are allowed */
        if (t->idxs) {
                /* only one pkey */
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -3273,11 +3273,7 @@ sql_trans_copy_key( sql_trans *tr, sql_t
        int neg = -1, action = -1, nr, res = LOG_OK;
        node *n;
        sql_key *nk;
-       sql_table *dup = NULL;
-
-       if ((res = new_table(tr, t, &dup)))
-               return res;
-       t = dup;
+
        if ((res = key_dup(tr, k, t, &nk)))
                return res;
        sql_fkey *fk = (sql_fkey*)nk;
@@ -3351,11 +3347,7 @@ sql_trans_copy_idx( sql_trans *tr, sql_t
        sql_table *sysic = find_sql_table(tr, syss, "objects");
        node *n;
        int nr, res = LOG_OK, ncols = list_length(i->columns);
-       sql_table *dup = NULL;
-
-       if ((res = new_table(tr, t, &dup)))
-               return res;
-       t = dup;
+
        sql_idx *ni = SA_ZNEW(tr->sa, sql_idx);
        base_init(tr->sa, &ni->base, i->base.id?i->base.id:next_oid(tr->store), 
true, i->base.name);
        ni->columns = list_new(tr->sa, (fdestroy) &kc_destroy);
@@ -3477,12 +3469,7 @@ sql_trans_copy_column( sql_trans *tr, sq
        sqlstore *store = tr->store;
        sql_schema *syss = find_sql_schema(tr, isGlobal(t)?"sys":"tmp");
        sql_table *syscolumn = find_sql_table(tr, syss, "_columns");
-       sql_table *dup = NULL;
        int res = LOG_OK;
-
-       if ((res = new_table(tr, t, &dup)))
-               return res;
-       t = dup;
        sql_column *col = SA_ZNEW(tr->sa, sql_column);
        base_init(tr->sa, &col->base, 
c->base.id?c->base.id:next_oid(tr->store), true, c->base.name);
        dup_sql_type(tr, t->s, &(c->type), &(col->type));
@@ -5871,7 +5858,7 @@ sql_trans_drop_table(sql_trans *tr, sql_
        }
 
        if (!isDeclaredTable(t))
-               if ((res = sys_drop_table(tr, t, drop_action)))
+               if ((res = sys_drop_table(tr, gt?gt:t, drop_action)))
                        return res;
 
        t->base.deleted = 1;
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to