summaryrefslogtreecommitdiff
path: root/src/backend/commands/alter.c
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2012-01-06 22:42:26 -0500
committerRobert Haas <rhaas@postgresql.org>2012-01-06 22:42:26 -0500
commit1489e2f26a4c0318938b3085f50976512f321d84 (patch)
treebc26ed1939cc2239a302e7c387efefe55550835d /src/backend/commands/alter.c
parent33aaa139e6302e81b4fbf2570be20188bb974c4f (diff)
Improve behavior of concurrent ALTER TABLE, and do some refactoring.
ALTER TABLE (and ALTER VIEW, ALTER SEQUENCE, etc.) now use a RangeVarGetRelid callback to check permissions before acquiring a table lock. We also now use the same callback for all forms of ALTER TABLE, rather than having separate, almost-identical callbacks for ALTER TABLE .. SET SCHEMA and ALTER TABLE .. RENAME, and no callback at all for everything else. I went ahead and changed the code so that no form of ALTER TABLE works on foreign tables; you must use ALTER FOREIGN TABLE instead. In 9.1, it was possible to use ALTER TABLE .. SET SCHEMA or ALTER TABLE .. RENAME on a foreign table, but not any other form of ALTER TABLE, which did not seem terribly useful or consistent. Patch by me; review by Noah Misch.
Diffstat (limited to 'src/backend/commands/alter.c')
-rw-r--r--src/backend/commands/alter.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/backend/commands/alter.c b/src/backend/commands/alter.c
index c41c70c27a4..7c658c0348a 100644
--- a/src/backend/commands/alter.c
+++ b/src/backend/commands/alter.c
@@ -192,8 +192,7 @@ ExecAlterObjectSchemaStmt(AlterObjectSchemaStmt *stmt)
case OBJECT_TABLE:
case OBJECT_VIEW:
case OBJECT_FOREIGN_TABLE:
- AlterTableNamespace(stmt->relation, stmt->newschema,
- stmt->objectType, AccessExclusiveLock);
+ AlterTableNamespace(stmt);
break;
case OBJECT_TSPARSER: