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 -- [email protected]
To unsubscribe send an email to [email protected]