diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2024-11-19 18:26:19 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2024-11-19 18:26:19 -0500 |
commit | 6b66dba3f8d8b5f9fc761749e5f0643829f09307 (patch) | |
tree | ae79f7ea677906ca0909c4841a9e52b6251e6fc6 /src/backend/utils/adt/ruleutils.c | |
parent | 4f8df7a3fb750007ff5018f8125e0d4793cab337 (diff) | |
download | postgresql-6b66dba3f8d8b5f9fc761749e5f0643829f09307.tar.gz postgresql-6b66dba3f8d8b5f9fc761749e5f0643829f09307.zip |
Compare collations before merging UNION operations.
In the dim past we figured it was okay to ignore collations
when combining UNION set-operation nodes into a single N-way
UNION operation. I believe that was fine at the time, but
it stopped being fine when we added nondeterministic collations:
the semantics of distinct-ness are affected by those. v17 made
it even less fine by allowing per-child sorting operations to
be merged via MergeAppend, although I think we accidentally
avoided any live bug from that.
Add a check that collations match before deciding that two
UNION nodes are equivalent. I also failed to resist the
temptation to comment plan_union_children() a little better.
Back-patch to all supported branches (v13 now), since they
all have nondeterministic collations.
Discussion: https://postgr.es/m/3605568.1731970579@sss.pgh.pa.us
Diffstat (limited to 'src/backend/utils/adt/ruleutils.c')
0 files changed, 0 insertions, 0 deletions