pgsql: Remove unnecessary restrictions about RowExprs in transformAExpr
От | Tom Lane |
---|---|
Тема | pgsql: Remove unnecessary restrictions about RowExprs in transformAExpr |
Дата | |
Msg-id | E1UloHj-0001J4-Qg@gemulon.postgresql.org обсуждение исходный текст |
Список | 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 ------ REL8_4_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/723543511472b4e5ec97e7302a10cd29ffe01081 Modified Files -------------- src/backend/parser/parse_expr.c | 48 ++++++++++++++++---------------- src/test/regress/expected/rowtypes.out | 30 ++++++++++++++++++++ src/test/regress/sql/rowtypes.sql | 11 ++++++++ 3 files changed, 65 insertions(+), 24 deletions(-)
В списке pgsql-committers по дате отправления: