I have spent some time figuring out how to resolve the parsing conflicts in 
Bernd Helmle's updatable views patch.  The problem has now been reduced to 
specifically this situation:

CREATE VIEW foo AS SELECT expr :: TIME . WITH

(where expr is a_expr or b_expr and TIME could also be TIMESTAMP or TIME(x) or 
TIMESTAMP(x)).

The continuation here could be WITH TIME ZONE (calling for a shift) or WITH 
CHECK OPTION (calling for a reduce).

All the usual ideas about unfolding the rules or making keywords more reserved 
don't work (why should they).  A one-token lookahead simply can't parse this.

I have had some ideas about trying to play around with the precedence rules -- 
giving WITH TIME ZONE a higher precedence than WITH CHECK OPTION -- but I 
have no experience with that and I am apparently not doing it right, if that 
is supposed to work at all.

If we can't get that to work, it seems that we are out of options unless we 
want to just accept the conflicts.

How should we go about this, and what should Bernd do with his patch, which, 
as I understand it, has been held up for quite a while simply because he is 
concerned about this issue?

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faq

Reply via email to