Fix UNION/INTERSECT/EXCEPT so that when two inputs being merged have
Tom Lane <tgl@sss.pgh.pa.us>
Fix UNION/INTERSECT/EXCEPT so that when two inputs being merged have same data type and same typmod, we show that typmod as the output typmod, rather than generic -1. This responds to several complaints over the past few years about UNIONs unexpectedly dropping length or precision info.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/nodes/copyfuncs.c | modified | +2 −1 |
| src/backend/nodes/equalfuncs.c | modified | +2 −1 |
| src/backend/nodes/outfuncs.c | modified | +2 −1 |
| src/backend/nodes/readfuncs.c | modified | +2 −1 |
| src/backend/optimizer/path/allpaths.c | modified | +5 −1 |
| src/backend/optimizer/prep/prepjointree.c | modified | +2 −1 |
| src/backend/optimizer/prep/prepunion.c | modified | +5 −1 |
| src/backend/optimizer/util/tlist.c | modified | +3 −1 |
| src/backend/parser/analyze.c | modified | +51 −23 |
| src/include/catalog/catversion.h | modified | +2 −2 |
| src/include/nodes/parsenodes.h | modified | +3 −2 |