pgsql: Remove unnecessary restrictions about RowExprs in transformAExpr

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Remove unnecessary restrictions about RowExprs in transformAExpr
Date: 2013-06-09 22:40:27
Message-ID: E1UloHj-0001Iv-MR@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Remove unnecessary restrictions about RowExprs in transformAExprIn().

When the existing code here was written, it made sense to special-case
RowExprs because that was the only way that we could handle row comparisons
at all. Now that we have record_eq() and arrays of composites, the generic
logic for "scalar" types will in fact work on RowExprs too, so there's no
reason to throw error for combinations of RowExprs and other ways of
forming composite values, nor to ignore the possibility of using a
ScalarArrayOpExpr. But keep using the old logic when comparing two
RowExprs, for consistency with the main transformAExprOp() logic. (This
allows some cases with not-quite-identical rowtypes to succeed, so we might
get push-back if we removed it.) Per bug #8198 from Rafal Rzepecki.

Back-patch to all supported branches, since this works fine as far back as
8.4.

Rafal Rzepecki and Tom Lane

Branch
------
REL9_2_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/5cd77baab32a54da7534ca92e195dc0bc2e44ff4

Modified Files
--------------
src/backend/parser/parse_expr.c | 48 +++++++++++++++----------------
src/test/regress/expected/rowtypes.out | 49 ++++++++++++++++++++++++++++++++
src/test/regress/sql/rowtypes.sql | 20 +++++++++++++
3 files changed, 93 insertions(+), 24 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2013-06-09 23:42:03 pgsql: Tweak postgres_fdw regression test so autovacuum doesn't change
Previous Message Tom Lane 2013-06-09 19:27:36 pgsql: Remove ALTER DEFAULT PRIVILEGES' requirement of schema CREATE pe