Saya sering melihat referensi ke WITH
kueri (ekspresi tabel umum, atau CTE) yang bertindak sebagai pagar optimasi, di mana server tidak diizinkan untuk mendorong filter ke dalam kueri CTE, menarik ekspresi umum keluar dari CTE, dll. Sering diklaim menjadi perilaku yang diperlukan oleh standar SQL.
CTE jelas merupakan pagar pengoptimalan di PostgreSQL ... tetapi apakah ini diperlukan oleh standar, atau sebenarnya hanya detail implementasi?
Misalnya, milis ini memposting klaim atau menyarankan bahwa itu standar:
Setelah menyebutkannya dalam komentar saya ditanya di mana itu ditentukan - dan setelah melihat satu-satunya rancangan SQL: 2008 saya memiliki akses ke Saya tidak memiliki banyak keberuntungan menemukannya.
Saya belum secara intensif mempelajari standar, jadi saya berharap untuk saran dari seseorang yang memiliki: Apakah pagar pengoptimalan CTE di PostgreSQL sebenarnya diperlukan oleh standar? Dan jika demikian, di mana itu ditentukan? Atau apakah pernyataan pada milis Pg salah?
Lihat juga pagar pengoptimalan CTE utas pada daftar agenda? .
STABLE
atauIMMUTABLE
fungsi.