From: Yugo Nagata <nag...@sraoss.co.jp> > 1. Create a temporary table only once at the first view maintenance in > this session. This is possible if we store names or oid of temporary > tables used for each materialized view in memory. However, users may > access to these temptables whenever during the session. > > 2. Use tuplestores instead of temprary tables. Tuplestores can be > converted to Ephemeral Name Relation (ENR) and used in queries. > It doesn't need updating system catalogs, but indexes can not be > used to access.
How about unlogged tables ? I thought the point of using a temp table is to avoid WAL overhead. One concern about the temp table is that it precludes the use of distributed transactions (PREPARE TRANSACTION fails if the transaction accessed a temp table.) This could become a headache when FDW has supported 2PC (which Sawada-san started and Horicuchi-san has taken over.) In the near future, PostgreSQL may evolve into a shared nothing database with distributed transactions like Postgres-XL. Regards Takayuki Tsunakawa