summaryrefslogtreecommitdiff
path: root/src/backend/commands/tablespace.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/tablespace.c')
-rw-r--r--src/backend/commands/tablespace.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/backend/commands/tablespace.c b/src/backend/commands/tablespace.c
index cb2499af7d2..05a89f0bde2 100644
--- a/src/backend/commands/tablespace.c
+++ b/src/backend/commands/tablespace.c
@@ -239,6 +239,7 @@ CreateTableSpace(CreateTableSpaceStmt *stmt)
Oid tablespaceoid;
char *location;
Oid ownerId;
+ Datum newOptions;
/* Must be super user */
if (!superuser())
@@ -322,7 +323,16 @@ CreateTableSpace(CreateTableSpaceStmt *stmt)
values[Anum_pg_tablespace_spcowner - 1] =
ObjectIdGetDatum(ownerId);
nulls[Anum_pg_tablespace_spcacl - 1] = true;
- nulls[Anum_pg_tablespace_spcoptions - 1] = true;
+
+ /* Generate new proposed spcoptions (text array) */
+ newOptions = transformRelOptions((Datum) 0,
+ stmt->options,
+ NULL, NULL, false, false);
+ (void) tablespace_reloptions(newOptions, true);
+ if (newOptions != (Datum) 0)
+ values[Anum_pg_tablespace_spcoptions - 1] = newOptions;
+ else
+ nulls[Anum_pg_tablespace_spcoptions - 1] = true;
tuple = heap_form_tuple(rel->rd_att, values, nulls);