|
|
|
@ -15919,7 +15919,6 @@ ATExecSetRelOptions(Relation rel, List *defList, AlterTableType operation, |
|
|
|
|
HeapTuple tuple; |
|
|
|
|
HeapTuple newtuple; |
|
|
|
|
Datum datum; |
|
|
|
|
bool isnull; |
|
|
|
|
Datum newOptions; |
|
|
|
|
Datum repl_val[Natts_pg_class]; |
|
|
|
|
bool repl_null[Natts_pg_class]; |
|
|
|
@ -15944,18 +15943,20 @@ ATExecSetRelOptions(Relation rel, List *defList, AlterTableType operation, |
|
|
|
|
* there were none before. |
|
|
|
|
*/ |
|
|
|
|
datum = (Datum) 0; |
|
|
|
|
isnull = true; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
bool isnull; |
|
|
|
|
|
|
|
|
|
/* Get the old reloptions */ |
|
|
|
|
datum = SysCacheGetAttr(RELOID, tuple, Anum_pg_class_reloptions, |
|
|
|
|
&isnull); |
|
|
|
|
if (isnull) |
|
|
|
|
datum = (Datum) 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* Generate new proposed reloptions (text array) */ |
|
|
|
|
newOptions = transformRelOptions(isnull ? (Datum) 0 : datum, |
|
|
|
|
defList, NULL, validnsps, false, |
|
|
|
|
newOptions = transformRelOptions(datum, defList, NULL, validnsps, false, |
|
|
|
|
operation == AT_ResetRelOptions); |
|
|
|
|
|
|
|
|
|
/* Validate */ |
|
|
|
@ -16065,18 +16066,20 @@ ATExecSetRelOptions(Relation rel, List *defList, AlterTableType operation, |
|
|
|
|
* pretend there were none before. |
|
|
|
|
*/ |
|
|
|
|
datum = (Datum) 0; |
|
|
|
|
isnull = true; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
bool isnull; |
|
|
|
|
|
|
|
|
|
/* Get the old reloptions */ |
|
|
|
|
datum = SysCacheGetAttr(RELOID, tuple, Anum_pg_class_reloptions, |
|
|
|
|
&isnull); |
|
|
|
|
if (isnull) |
|
|
|
|
datum = (Datum) 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
newOptions = transformRelOptions(isnull ? (Datum) 0 : datum, |
|
|
|
|
defList, "toast", validnsps, false, |
|
|
|
|
operation == AT_ResetRelOptions); |
|
|
|
|
newOptions = transformRelOptions(datum, defList, "toast", validnsps, |
|
|
|
|
false, operation == AT_ResetRelOptions); |
|
|
|
|
|
|
|
|
|
(void) heap_reloptions(RELKIND_TOASTVALUE, newOptions, true); |
|
|
|
|
|
|
|
|
|