Vedo riferimenti frequenti a WITH
query (espressioni di tabella comuni o CTE) che agiscono come un recinto di ottimizzazione, in cui il server non è autorizzato a spingere i filtri verso il basso nelle query CTE, estrarre espressioni comuni dal CTE, ecc. Viene spesso affermato essere un comportamento richiesto dagli standard SQL.
I CTE sono sicuramente una barriera di ottimizzazione in PostgreSQL ... ma è richiesto dallo standard, o in realtà solo dai dettagli di implementazione?
Ad esempio, questi post della mailing list rivendicano o suggeriscono che è standard:
Dopo averlo menzionato in un commento, mi è stato chiesto dove è specificato - e dopo aver visto l'unica bozza di SQL: 2008 ho accesso a non ho molta fortuna nel trovarlo.
Non ho ancora studiato intensamente lo standard, quindi spero in un suggerimento da qualcuno che abbia: La recinzione di ottimizzazione dei CTE in PostgreSQL è effettivamente richiesta dallo standard? E se è così, dove è specificato? O le dichiarazioni sulla mailing list Pg sono errate?
Vedi anche il recinto di ottimizzazione CTE del thread nell'elenco delle cose da fare? .
STABLE
oIMMUTABLE
funzioni.