mirror of
https://github.com/postgres/postgres.git
synced 2025-11-06 07:49:08 +03:00
ALTER DOMAIN .. SET / DROP NOT NULL
ALTER DOMAIN .. SET / DROP DEFAULT ALTER DOMAIN .. ADD / DROP CONSTRAINT New files: - doc/src/sgml/ref/alter_domain.sgml Rod Taylor
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.182 2002/11/15 03:09:38 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.183 2002/12/06 03:28:33 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "commands/sequence.h"
|
||||
#include "commands/tablecmds.h"
|
||||
#include "commands/trigger.h"
|
||||
#include "commands/typecmds.h"
|
||||
#include "commands/user.h"
|
||||
#include "commands/vacuum.h"
|
||||
#include "commands/view.h"
|
||||
@@ -560,6 +561,49 @@ ProcessUtility(Node *parsetree,
|
||||
}
|
||||
break;
|
||||
|
||||
case T_AlterDomainStmt:
|
||||
{
|
||||
AlterDomainStmt *stmt = (AlterDomainStmt *) parsetree;
|
||||
|
||||
/*
|
||||
* Some or all of these functions are recursive to cover
|
||||
* inherited things, so permission checks are done there.
|
||||
*/
|
||||
switch (stmt->subtype)
|
||||
{
|
||||
case 'T': /* ALTER COLUMN DEFAULT */
|
||||
|
||||
/*
|
||||
* Recursively alter column default for table and,
|
||||
* if requested, for descendants
|
||||
*/
|
||||
AlterDomainDefault(stmt->typename,
|
||||
stmt->def);
|
||||
break;
|
||||
case 'N': /* ALTER COLUMN DROP NOT NULL */
|
||||
AlterDomainNotNull(stmt->typename,
|
||||
false);
|
||||
break;
|
||||
case 'O': /* ALTER COLUMN SET NOT NULL */
|
||||
AlterDomainNotNull(stmt->typename,
|
||||
true);
|
||||
break;
|
||||
case 'C': /* ADD CONSTRAINT */
|
||||
AlterDomainAddConstraint(stmt->typename,
|
||||
stmt->def);
|
||||
break;
|
||||
case 'X': /* DROP CONSTRAINT */
|
||||
AlterDomainDropConstraint(stmt->typename,
|
||||
stmt->name,
|
||||
stmt->behavior);
|
||||
break;
|
||||
default: /* oops */
|
||||
elog(ERROR, "T_AlterDomainStmt: unknown subtype");
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case T_GrantStmt:
|
||||
ExecuteGrantStmt((GrantStmt *) parsetree);
|
||||
|
||||
Reference in New Issue
Block a user