On 16 January 2013 17:25, Thom Brown <t...@linux.com> wrote:

> On 16 January 2013 17:20, Kevin Grittner <kgri...@mail.com> wrote:
>
>> Thom Brown wrote:
>>
>> > 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?";
>>
>> You are very good at coming up with these, Thom!
>>
>> Will investigate.
>>
>> Can you confirm that *selecting* from the MV works as you would
>> expect; it is just the presentation in \d+ that's a problem?
>>
>
> Yes, nothing wrong with using the MV, or refreshing it:
>
> postgres=# TABLE mv_test2;
>  moo | ?column?
> -----+----------
>    1 |        2
>    1 |        3
> (2 rows)
>
> postgres=# SELECT * FROM mv_test2;
>  moo | ?column?
> -----+----------
>    1 |        2
>    1 |        3
> (2 rows)
>
> postgres=# REFRESH MATERIALIZED VIEW mv_test2;
> REFRESH MATERIALIZED VIEW
>
> But a pg_dump of the MV has the same issue as the view definition:
>
> --
> -- Name: mv_test2; Type: MATERIALIZED VIEW; Schema: public; Owner: thom;
> Tablespace:
> --
>
> CREATE MATERIALIZED VIEW mv_test2 (
>     moo,
>     "?column?"
> ) AS
>     SELECT "*SELECT* 1".moo, "*SELECT* 1"."?column?"
>   WITH NO DATA;
>

A separate issue is with psql tab-completion:

postgres=# COMMENT ON MATERIALIZED VIEW ^IIS

This should be offering MV names instead of prematurely providing the "IS"
keyword.

-- 
Thom

Reply via email to