Vlákno názorů k článku PostgreSQL 12 – bude rok 2019 rokem Postgresu? od Ivan Brezina - Trochu me zarazi to klicove slovo MATERIALIZED. Oracle...

  • Článek je starý, nové názory již nelze přidávat.
  • 20. 6. 2019 8:59

    Ivan Brezina

    Trochu me zarazi to klicove slovo MATERIALIZED. Oracle si tohle rozhoduje "za jizdy", kdyz generuje exekucni plan. A pokud to nefunguje na 100% tak je mozne to ohnout pomoci hintu /*+ INLINE */ vs. /*+ MATERIALIZED */. Prekvapuje me, ze si PostgreSQL "zasvini" gramatiku SQL pridanim klicoveho slova, ktere treba za par let ani nebude potreba.

    Takhle se spis chova MySQL kde se rozsiruje gramatika kvuli kdejake kravine.

  • 20. 6. 2019 11:16

    Pavel Stěhule

    MATERIALIZED už v Postgresu bylo (MATERIALIZED VIEW) a i když je to klíčové slovo, tak není rezervované - takže to neblokuje použití "materialized" jako SQL identifikátoru. Hinty v Postgresu nejsou - a pro tento konkrétní případ se zavádět nebudou. Na druhou stranu CTE v tom historickém chování se používalo jako hint (vynucovalo si materializaci), takže řešilo nějakou situaci, kterou optimalizátor nedokázal pořešit (např. kvůli špatným odhadům). A proto bylo potřeba rozšířit gramatiku (nicméně žádné klíčové slovo se v tomto případě nepřidávalo)