Commit e0e492e
committed
Track nesting depth correctly when drilling down into RECORD Vars.
expandRecordVariable() failed to adjust the parse nesting structure
correctly when recursing to inspect an outer-level Var. This could
result in assertion failures or core dumps in corner cases.
Likewise, get_name_for_var_field() failed to adjust the deparse
namespace stack correctly when recursing to inspect an outer-level
Var. In this case the likely result was a "bogus varno" error
while deparsing a view.
Per bug #18077 from Jingzhou Fu. Back-patch to all supported
branches.
Richard Guo, with some adjustments by me
Discussion: https://postgr.es/m/18077-b9db97c6e0ab45d8@postgresql.org1 parent a396e20 commit e0e492e
File tree
4 files changed
+119
-20
lines changed- src
- backend
- parser
- utils/adt
- test/regress
- expected
- sql
4 files changed
+119
-20
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1499 | 1499 | | |
1500 | 1500 | | |
1501 | 1501 | | |
1502 | | - | |
| 1502 | + | |
| 1503 | + | |
1503 | 1504 | | |
1504 | 1505 | | |
1505 | 1506 | | |
| |||
1587 | 1588 | | |
1588 | 1589 | | |
1589 | 1590 | | |
1590 | | - | |
| 1591 | + | |
| 1592 | + | |
| 1593 | + | |
| 1594 | + | |
1591 | 1595 | | |
1592 | 1596 | | |
| 1597 | + | |
1593 | 1598 | | |
| 1599 | + | |
| 1600 | + | |
| 1601 | + | |
1594 | 1602 | | |
1595 | 1603 | | |
1596 | 1604 | | |
| |||
1641 | 1649 | | |
1642 | 1650 | | |
1643 | 1651 | | |
1644 | | - | |
| 1652 | + | |
1645 | 1653 | | |
1646 | | - | |
| 1654 | + | |
1647 | 1655 | | |
1648 | 1656 | | |
1649 | | - | |
1650 | 1657 | | |
1651 | 1658 | | |
1652 | 1659 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7820 | 7820 | | |
7821 | 7821 | | |
7822 | 7822 | | |
7823 | | - | |
| 7823 | + | |
| 7824 | + | |
| 7825 | + | |
| 7826 | + | |
7824 | 7827 | | |
| 7828 | + | |
| 7829 | + | |
7825 | 7830 | | |
7826 | 7831 | | |
7827 | 7832 | | |
| 7833 | + | |
| 7834 | + | |
| 7835 | + | |
7828 | 7836 | | |
7829 | | - | |
| 7837 | + | |
7830 | 7838 | | |
7831 | | - | |
7832 | | - | |
| 7839 | + | |
7833 | 7840 | | |
7834 | 7841 | | |
7835 | 7842 | | |
7836 | 7843 | | |
7837 | | - | |
7838 | | - | |
| 7844 | + | |
7839 | 7845 | | |
7840 | 7846 | | |
7841 | 7847 | | |
| |||
7927 | 7933 | | |
7928 | 7934 | | |
7929 | 7935 | | |
7930 | | - | |
| 7936 | + | |
7931 | 7937 | | |
7932 | 7938 | | |
7933 | 7939 | | |
7934 | 7940 | | |
7935 | 7941 | | |
7936 | 7942 | | |
7937 | 7943 | | |
7938 | | - | |
7939 | | - | |
7940 | | - | |
| 7944 | + | |
| 7945 | + | |
| 7946 | + | |
7941 | 7947 | | |
7942 | 7948 | | |
7943 | | - | |
| 7949 | + | |
7944 | 7950 | | |
7945 | 7951 | | |
7946 | 7952 | | |
| 7953 | + | |
| 7954 | + | |
| 7955 | + | |
7947 | 7956 | | |
7948 | | - | |
| 7957 | + | |
7949 | 7958 | | |
7950 | | - | |
7951 | | - | |
7952 | | - | |
| 7959 | + | |
7953 | 7960 | | |
7954 | 7961 | | |
7955 | 7962 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1240 | 1240 | | |
1241 | 1241 | | |
1242 | 1242 | | |
| 1243 | + | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
| 1248 | + | |
| 1249 | + | |
| 1250 | + | |
| 1251 | + | |
| 1252 | + | |
| 1253 | + | |
| 1254 | + | |
| 1255 | + | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
| 1269 | + | |
| 1270 | + | |
| 1271 | + | |
| 1272 | + | |
| 1273 | + | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
| 1281 | + | |
| 1282 | + | |
| 1283 | + | |
| 1284 | + | |
| 1285 | + | |
| 1286 | + | |
| 1287 | + | |
| 1288 | + | |
| 1289 | + | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
| 1296 | + | |
| 1297 | + | |
| 1298 | + | |
| 1299 | + | |
| 1300 | + | |
| 1301 | + | |
| 1302 | + | |
1243 | 1303 | | |
1244 | 1304 | | |
1245 | 1305 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
494 | 494 | | |
495 | 495 | | |
496 | 496 | | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
497 | 522 | | |
498 | 523 | | |
499 | 524 | | |
| |||
0 commit comments