Tom has refactored where and how certain parts of the work get done
for materialized views, reducing issues with modularity violations.
I have been and will continue to review his changes to better
understand how the pieces of the code fit together, so hopefully he
won't need to do so much with future contributions.  He has not, so
far, changed functionality or the regression tests -- although he
has complained about things, of which the below is the all of what
remains as an issue for him as far as I know.  I may have missed
something; if so, it would be great to be reminded of what.

What remains is a choice between three alternatives on which no
consensus has been reached.  There are three things that, as fas as
I can tell, *everyone* agrees would be nice to be true about the
matview implementation for 9.3, but it does not seem feasible to
have more than two:

(1)  The ability to count on the results from a query which
references a matview to reflect valid data from *some* point in
time.

(2)  The ability to create unlogged materialized views.

(3)  The ability to consider a zero-length matview heap and a
matview heap with allocated-but-empty pages as logically identical.

Tom wants to ditch (2) to allow the others.  Robert wants to ditch
(1) to allow the others.  I want to ditch (3) to allow the others. 
Andres wants (3) and has not expressed an opinion on which he would
prefer to give up to get it.  I believe Josh Berkus has mentioned
how useful he thinks both (1) and (2) would be, without really
commenting on (3).

I am convinced that we can solve (3) in a later release without any
significant impact on those already using matviews, including
unlogged ones.  Tom and Robert have suggested that the current
implementation would paint us into a corner or pose a pg_upgrade
hazard, without any clear indication of the mechanism of the
problem.

The logjam has caused me to hold back on finishing up the direction
I prefer, for fear of conflicts with other work that someone else
may be trying to do.  Given that time is short, I'm going to apply
the patch which inserts five lines (two of them comment lines) on
the basis that at least the way that is currently implemented will
have no known bugs, and it's just not that much to rip back out if
we reach consensus on another direction.

How to we resolve this impasse?

-- 
Kevin Grittner
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to