Skip site navigation (1) Skip section navigation (2)

Re: Materialized views WIP patch

From: Thom Brown <thom(at)linux(dot)com>
To: Kevin Grittner <kgrittn(at)mail(dot)com>
Cc: Marko Tiikkaja <pgmail(at)joh(dot)to>, Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Materialized views WIP patch
Date: 2013-01-16 17:07:29
Message-ID: CAA-aLv52bEa58aYUGCO4hZY+kiL6RGi-+_eJEz-FNzznVpbNMQ@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-hackers
On 16 January 2013 05:40, Kevin Grittner <kgrittn(at)mail(dot)com> wrote:

> Here is a new version of the patch, with most issues discussed in
> previous posts fixed.
>
> I've been struggling with two areas:
>
>  - pg_dump sorting for MVs which depend on other MVs
>  - proper handling of the relisvalid flag for unlogged MVs after recovery
>

Some weirdness:

postgres=# CREATE VIEW v_test2 AS SELECT 1 moo;
CREATE VIEW
postgres=# CREATE MATERIALIZED VIEW mv_test2 AS SELECT moo, 2*moo FROM
v_test2 UNION ALL SELECT moo, 3*moo FROM v_test2;
SELECT 2
postgres=# \d+ mv_test2
                  Materialized view "public.mv_test2"
  Column  |  Type   | Modifiers | Storage | Stats target | Description
----------+---------+-----------+---------+--------------+-------------
 moo      | integer |           | plain   |              |
 ?column? | integer |           | plain   |              |
View definition:
 SELECT "*SELECT* 1".moo, "*SELECT* 1"."?column?";
Has OIDs: no

The "weirdness" I refer you to is the view definition.  This does not occur
with a straightforward UNION.

This does not occur with a regular view:

postgres=# CREATE VIEW v_test3 AS SELECT moo, 2*moo FROM v_test2 UNION ALL
SELECT moo, 3*moo FROM v_test2;
CREATE VIEW
postgres=# \d+ v_test3
                 View "public.v_test3"
  Column  |  Type   | Modifiers | Storage | Description
----------+---------+-----------+---------+-------------
 moo      | integer |           | plain   |
 ?column? | integer |           | plain   |
View definition:
         SELECT v_test2.moo, 2 * v_test2.moo
           FROM v_test2
UNION ALL
         SELECT v_test2.moo, 3 * v_test2.moo
           FROM v_test2;

-- 
Thom

In response to

pgsql-hackers by date

Next:From: Bruce MomjianDate: 2013-01-16 17:11:42
Subject: Re: Parallel query execution
Previous:From: Fujii MasaoDate: 2013-01-16 17:06:48
Subject: Re: Teaching pg_receivexlog to follow timeline switches

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group