From: | Stefan Keller <sfkeller(at)gmail(dot)com> |
---|---|
To: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | View Index and UNION |
Date: | 2013-05-26 00:35:11 |
Message-ID: | CAFcOn29Ui7VU8tVrO-bQx3oXTq6FsykR+gHF5PvS=WD2d=875g@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi
I've encountered a fundamental problem which - to me - can only be
solved with an (future/possible) real index on views in PostgreSQL
(like the exist already in MS SQL Server and Ora):
Given following schema:
1. TABLE a and TABLE b, each with INDEX on attribute geom.
2. A VIEW with union:
CREATE VIEW myview AS
SELECT * FROM a
UNION
SELECT * FROM b;
3. And a simple query with KNN index and a coordinate "mypos" :
SELECT * FROM myview
ORDER BY ST_Geomfromtext(mypos) <-> myview.geom
Now, the problem is, that for the "order by" it is not enough that
each on the two tables calculate the ordering separately: We want a
total ordering over all involved tables!
In fact, the planner realizes that and chooses a seq scan over all
tuples of table a and b - which is slow and suboptimal!
To me, that's a use case where we would wish to have a distinct index on views.
Any opinions on this?
Yours, Stefan
From | Date | Subject | |
---|---|---|---|
Next Message | William King | 2013-05-26 01:27:18 | Re: View Index and UNION |
Previous Message | Jim Nasby | 2013-05-25 22:50:48 | Re: Using indexes for partial index builds |