On Tue, Apr 1, 2014 at 12:52 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> In bug #9817 there's a complaint that the planner fails to consider
> these expressions equivalent:
> foo('a'::text, 'b'::text)
> foo(variadic array['a'::text, 'b'::text])
> when foo() is declared as taking variadic text[].
My first reaction to this was "who cares? after all, the user should
just write the expression the same way both times and then they won't
have this problem". But after going and looking at the bug report I
see that the user wrote it the first way consistently, but pg_dump
blithely rewrote it to the second way. I'm disinclined to view that
as a planner problem; it seems to me to be a pg_dump or ruleutils bug.If those two things don't have the same parse
representation,then
pg_dump has no business treating them as equivalent - even if we were
to put enough smarts into the planner to paper over that
non-equivalence.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company