Changeset: a75b759bbbf9 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a75b759bbbf9
Modified Files:
sql/src/backends/monet5/sql.mx
Branch: Jun2010
Log Message:
fix alter table
diffs (43 lines):
diff -r f531c7a435af -r a75b759bbbf9 sql/src/backends/monet5/sql.mx
--- a/sql/src/backends/monet5/sql.mx Wed May 19 21:42:24 2010 +0200
+++ b/sql/src/backends/monet5/sql.mx Wed May 19 21:43:06 2010 +0200
@@ -1757,6 +1757,26 @@
}
static str
+drop_key( mvc *sql, char *sname, char *kname, int drop_action )
+{
+ sql_key *key;
+ sql_schema *ss = NULL;
+
+ if (sname != NULL && (ss = mvc_bind_schema(sql, sname)) == NULL)
+ return sql_message("DROP VIEW: no such schema '%s'", sname);
+
+ if (ss == NULL)
+ ss = cur_schema(sql);
+
+ if ((key = mvc_bind_key(sql, ss, kname )) == NULL)
+ return sql_message("ALTER TABLE: no such constraint '%s'",
kname);
+ if (!drop_action && mvc_check_dependency(sql, key->base.id,
KEY_DEPENDENCY, NULL))
+ return sql_message("ALTER TABLE: cannot drop constraint '%s':
there are database objects which depend on it", key->base.name);
+ mvc_drop_key(sql, ss, key, drop_action);
+ return MAL_SUCCEED;
+}
+
+static str
create_seq( mvc *sql, char *sname, sql_sequence *seq)
{
sql_schema *s = NULL;
@@ -1914,6 +1934,12 @@
sql_table *t = *(sql_table**) getArgReference(stk, pci, 3);
msg = alter_table(sql, sname, t);
} break;
+ case DDL_DROP_CONSTRAINT: {
+ int action = *(int*) getArgReference(stk, pci, 4);
+ str name = *(str*) getArgReference(stk, pci, 3);
+
+ msg = drop_key( sql, sname, name, action);
+ } break;
default:
throw(SQL, "sql.catalog", "catalog unknown type");
}
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list