Re: Grouping Sets: Fix unrecognized node type bug

From: Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk>
To: Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp>
Cc: jeevan(dot)chalke(at)enterprisedb(dot)com, atri(dot)jiit(at)gmail(dot)com, pgsql-hackers(at)postgresql(dot)org, pgsql-bugs(at)postgresql(dot)org
Subject: Re: Grouping Sets: Fix unrecognized node type bug
Date: 2015-07-17 18:57:22
Message-ID: 87lheehend.fsf@news-spur.riddles.org.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

>>>>> "Kyotaro" == Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp> writes:

Kyotaro> Hello, this looks to be a kind of thinko. The attached patch
Kyotaro> fixes it.

No, that's still wrong. Just knowing that there is a List is not enough
to tell whether to concat it or append it.

Jeevan's original patch tries to get around this by making the RowExpr
case wrap another List around its result (which is then removed by the
concat), but this is the wrong approach too because it breaks nested
RowExprs (which isn't valid syntax in the spec, because the spec allows
only column references in GROUP BY, not arbitrary expressions, but which
we have no reason not to support).

Attached is the current version of my fix (with Jeevan's regression
tests plus one of mine).

--
Andrew (irc:RhodiumToad)

Attachment Content-Type Size
gsets_fix_unrecognized_error_bug_2.patch text/x-patch 5.1 KB

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tobias Pfeiffer 2015-07-18 05:11:31 Re: BUG #13504: Types in math functions table is incorrect
Previous Message Andrew Gierth 2015-07-17 17:33:44 Re: [HACKERS] GSets: Getting collation related error when GSets has text column

Browse pgsql-hackers by date

  From Date Subject
Next Message Fabien COELHO 2015-07-17 19:26:44 Re: pgbench - allow backslash-continuations in custom scripts
Previous Message Heikki Linnakangas 2015-07-17 18:54:03 Re: 9.6 First Commitfest Begins