pgsql: Fix postgres_fdw to cope with duplicate GROUP BY entries.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Fix postgres_fdw to cope with duplicate GROUP BY entries.
Date: 2018-01-12 21:53:01
Message-ID: E1ea7G1-0006VU-8X@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix postgres_fdw to cope with duplicate GROUP BY entries.

Commit 7012b132d, which added the ability to push down aggregates and
grouping to the remote server, wasn't careful to ensure that the remote
server would have the same idea we do about which columns are the grouping
columns, in cases where there are textually identical GROUP BY expressions.
Such cases typically led to "targetlist item has multiple sortgroupref
labels" errors.

To fix this reliably, switch over to using "GROUP BY column-number" syntax
rather than "GROUP BY expression" in transmitted queries, and adjust
foreign_grouping_ok() to be more careful about duplicating the sortgroupref
labeling of the local pathtarget.

Per bug #14890 from Sean Johnston. Back-patch to v10 where the buggy code
was introduced.

Jeevan Chalke, reviewed by Ashutosh Bapat

Discussion: https://postgr.es/m/20171107134948.1508.94783@wrigleys.postgresql.org

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/e9f2703ab7b29f7e9100807cfbd19ddebbaa0b12

Modified Files
--------------
contrib/postgres_fdw/deparse.c | 17 ++-
contrib/postgres_fdw/expected/postgres_fdw.out | 163 ++++++++++++++-----------
contrib/postgres_fdw/postgres_fdw.c | 83 ++++++-------
contrib/postgres_fdw/sql/postgres_fdw.sql | 6 +
4 files changed, 150 insertions(+), 119 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Bruce Momjian 2018-01-12 21:53:36 pgsql: docs: replace dblink() mention with foreign data mention
Previous Message Tom Lane 2018-01-12 20:47:15 pgsql: Avoid unnecessary failure in SELECT concurrent with ALTER NO INH