diff options
| author | Andrew Dunstan | 2012-09-22 16:53:31 +0000 |
|---|---|---|
| committer | Andrew Dunstan | 2012-09-22 16:53:31 +0000 |
| commit | 6d12b68cd7a93e279c8c690749b334c9f59ac7fa (patch) | |
| tree | fadc9d82179c4ad7cd49198c97208b17e9db45bc /src/include | |
| parent | 11e131854f8231a21613f834c40fe9d046926387 (diff) | |
Allow IF NOT EXISTS when add a new enum label.
If the label is already in the enum the statement becomes a no-op.
This will reduce the pain that comes from our not allowing this
operation inside a transaction block.
Andrew Dunstan, reviewed by Tom Lane and Magnus Hagander.
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/catalog/pg_enum.h | 3 | ||||
| -rw-r--r-- | src/include/nodes/parsenodes.h | 1 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/include/catalog/pg_enum.h b/src/include/catalog/pg_enum.h index 91c1ab1de7d..8842a8706b5 100644 --- a/src/include/catalog/pg_enum.h +++ b/src/include/catalog/pg_enum.h @@ -65,6 +65,7 @@ typedef FormData_pg_enum *Form_pg_enum; extern void EnumValuesCreate(Oid enumTypeOid, List *vals); extern void EnumValuesDelete(Oid enumTypeOid); extern void AddEnumLabel(Oid enumTypeOid, const char *newVal, - const char *neighbor, bool newValIsAfter); + const char *neighbor, bool newValIsAfter, + bool skipIfExists); #endif /* PG_ENUM_H */ diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index 19178b55512..98fe850c927 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -2306,6 +2306,7 @@ typedef struct AlterEnumStmt char *newVal; /* new enum value's name */ char *newValNeighbor; /* neighboring enum value, if specified */ bool newValIsAfter; /* place new enum value after neighbor? */ + bool skipIfExists; /* ignore statement if label already exists */ } AlterEnumStmt; /* ---------------------- |
