Commit 57b30e8
committed
Create a new expression node type RelabelType, which exists solely to
represent the result of a binary-compatible type coercion. At runtime
it just evaluates its argument --- but during type resolution, exprType
will pick up the output type of the RelabelType node instead of the type
of the argument. This solves some longstanding problems with dropped
type coercions, an example being 'select now()::abstime::int4' which
used to produce date-formatted output, not an integer, because the
coercion to int4 was dropped on the floor.1 parent bd8e071 commit 57b30e8
File tree
13 files changed
+325
-86
lines changed- src
- backend
- executor
- nodes
- optimizer/util
- parser
- utils/adt
- include/nodes
13 files changed
+325
-86
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
1176 | 1176 | | |
1177 | 1177 | | |
1178 | 1178 | | |
1179 | | - | |
| 1179 | + | |
1180 | 1180 | | |
1181 | 1181 | | |
1182 | 1182 | | |
| |||
1200 | 1200 | | |
1201 | 1201 | | |
1202 | 1202 | | |
1203 | | - | |
| 1203 | + | |
1204 | 1204 | | |
1205 | 1205 | | |
1206 | 1206 | | |
1207 | 1207 | | |
1208 | 1208 | | |
1209 | | - | |
1210 | | - | |
1211 | 1209 | | |
| 1210 | + | |
1212 | 1211 | | |
1213 | 1212 | | |
1214 | 1213 | | |
1215 | | - | |
| 1214 | + | |
1216 | 1215 | | |
1217 | 1216 | | |
1218 | | - | |
1219 | | - | |
1220 | | - | |
1221 | | - | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
1222 | 1221 | | |
1223 | 1222 | | |
1224 | | - | |
1225 | | - | |
1226 | | - | |
| 1223 | + | |
1227 | 1224 | | |
1228 | 1225 | | |
1229 | | - | |
1230 | | - | |
1231 | | - | |
1232 | | - | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
| 1229 | + | |
1233 | 1230 | | |
1234 | 1231 | | |
1235 | 1232 | | |
| |||
1238 | 1235 | | |
1239 | 1236 | | |
1240 | 1237 | | |
1241 | | - | |
| 1238 | + | |
1242 | 1239 | | |
1243 | 1240 | | |
1244 | | - | |
| 1241 | + | |
| 1242 | + | |
1245 | 1243 | | |
1246 | 1244 | | |
1247 | | - | |
| 1245 | + | |
1248 | 1246 | | |
1249 | 1247 | | |
1250 | | - | |
| 1248 | + | |
1251 | 1249 | | |
1252 | 1250 | | |
1253 | | - | |
| 1251 | + | |
1254 | 1252 | | |
1255 | 1253 | | |
1256 | | - | |
1257 | | - | |
1258 | | - | |
| 1254 | + | |
| 1255 | + | |
| 1256 | + | |
1259 | 1257 | | |
1260 | 1258 | | |
1261 | | - | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
1262 | 1262 | | |
1263 | 1263 | | |
1264 | 1264 | | |
1265 | 1265 | | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
| 1269 | + | |
| 1270 | + | |
| 1271 | + | |
1266 | 1272 | | |
1267 | | - | |
| 1273 | + | |
1268 | 1274 | | |
1269 | 1275 | | |
1270 | 1276 | | |
1271 | | - | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
1272 | 1280 | | |
1273 | 1281 | | |
1274 | 1282 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
873 | 873 | | |
874 | 874 | | |
875 | 875 | | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
876 | 896 | | |
877 | 897 | | |
878 | 898 | | |
| |||
1617 | 1637 | | |
1618 | 1638 | | |
1619 | 1639 | | |
| 1640 | + | |
| 1641 | + | |
| 1642 | + | |
1620 | 1643 | | |
1621 | 1644 | | |
1622 | 1645 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
262 | 262 | | |
263 | 263 | | |
264 | 264 | | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
265 | 277 | | |
266 | 278 | | |
267 | 279 | | |
| |||
806 | 818 | | |
807 | 819 | | |
808 | 820 | | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
809 | 824 | | |
810 | 825 | | |
811 | 826 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
650 | 650 | | |
651 | 651 | | |
652 | 652 | | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
653 | 669 | | |
654 | 670 | | |
655 | 671 | | |
| |||
1241 | 1257 | | |
1242 | 1258 | | |
1243 | 1259 | | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
1244 | 1263 | | |
1245 | 1264 | | |
1246 | 1265 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
770 | 770 | | |
771 | 771 | | |
772 | 772 | | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
773 | 786 | | |
774 | 787 | | |
775 | 788 | | |
| |||
1496 | 1509 | | |
1497 | 1510 | | |
1498 | 1511 | | |
| 1512 | + | |
| 1513 | + | |
| 1514 | + | |
1499 | 1515 | | |
1500 | 1516 | | |
1501 | 1517 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
1191 | 1191 | | |
1192 | 1192 | | |
1193 | 1193 | | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
| 1211 | + | |
| 1212 | + | |
| 1213 | + | |
| 1214 | + | |
| 1215 | + | |
| 1216 | + | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
| 1222 | + | |
1194 | 1223 | | |
1195 | 1224 | | |
1196 | 1225 | | |
| |||
1820 | 1849 | | |
1821 | 1850 | | |
1822 | 1851 | | |
| 1852 | + | |
| 1853 | + | |
1823 | 1854 | | |
1824 | 1855 | | |
1825 | 1856 | | |
| |||
0 commit comments