Hi hackers! While working on Pluggable TOAST [1] we found out that creation of new relation with CREATE TABLE AS... or CREATE TABLE LIKE - method static ObjectAddress create_ctas_internal(List *attrList, IntoClause *into) does not receive any metadata from columns or tables used in query (if any). It makes sense to pass not only column type and size, but all other metadata - like attoptions,base relation OID (and, maybe, reloptions), if the column from existing relation was used.
A good example is the creation of new relation from base one where some other Toaster was assigned to a column - it seems reasonable that the same column in new table must have the same Toaster assigned as the base one. And we already have a couple of other practical uses for the metadata passed along with column definitions. Any thoughts or suggestions? [1] https://commitfest.postgresql.org/41/3490/ -- Regards, Nikita Malakhov Postgres Professional https://postgrespro.ru/