SELECT *
se rozšiřuje v době provádění, stejně jako u všech podobných operací (CREATE VIEW
, CREATE TABLE AS
)
Klíčovým slovem je „časná vazba“ na rozdíl od „pozdní vazby“. Postgres ukládá seznam sloupců přítomných v době provádění SELECT *
, později přidané sloupce nejsou zahrnuto automaticky. řetězec dotazu sám se neuloží, pouze vnitřní reprezentace po rozbalení SELECT *
a další věci, jako je vyřešení všech identifikátorů.
REFRESH MATERIALIZED VIEW
nikdy změní definici dat, pouze data:
Manuál by o tom mohl být explicitnější, ale srovnání s chováním z CREATE TABLE AS
objasnil mi to: