> This form sets the storage mode for a column. See the similar form of ALTER TABLE for more details.
> Note that the storage mode has no effect unless the table's foreign-data wrapper chooses to pay attention to it.
Hi,
It looks like cb1ca4d [1], from nearly 10 years ago, allowed storage
on an FDW to
avoid introducing any special handling for foreign tables in the case of
inheritance/partitioning, especially when partitions are a mixture of
both normal
and foreign tables.
COMPRESSION, on the other hand, did not require special handling because,
when you run ALTER TABLE ... COMPRESSION on a parent table, the setting
is only applied to the parent table and to new partitions created afterward.
Existing partitions do not inherit the setting, as somewhat described here [2]:
"but the configured value will be inherited by newly-created partitions."
IMO, the correct approach is to disallow the STORAGE parameter on
foreign tables,
which is what [1] tried to avoid for some reason. However, since this
behavior has
existed for over 10 years, I don’t think we should change it.
Maybe someone has a different opinion about this, and we should disallow
setting STORAGE on an fdw table in future versions.
I am not in favor of allowing compression to be set on a foreign table
just for the
sake of consistency, when there is no reason for this on a foreign table.
[1] https://github.com/postgres/postgres/commit/cb1ca4d800621dc
[2] https://www.postgresql.org/docs/current/sql-altertable.html#SQL-ALTERTABLE-DESC-SET-COMPRESSION
Regards,
Sami