Commit 01f7d29
committed
Improve plpgsql's handling of record field references by forcing all potential
field references in SQL expressions to have RECFIELD datum-array entries at
parse time. If it turns out that the reference is actually to a SQL column,
the RECFIELD entry is useless, but it costs little. This allows us to get rid
of the previous use of FieldSelect applied to a whole-row Param for the record
variable; which was not only slower than a direct RECFIELD reference, but
failed for references to system columns of a trigger's NEW or OLD record.
Per report and fix suggestion from Dean Rasheed.1 parent f537e7d commit 01f7d29
4 files changed
+77
-74
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 | | |
| |||
369 | 369 | | |
370 | 370 | | |
371 | 371 | | |
372 | | - | |
| 372 | + | |
373 | 373 | | |
374 | 374 | | |
375 | 375 | | |
376 | 376 | | |
377 | 377 | | |
378 | 378 | | |
379 | | - | |
| 379 | + | |
380 | 380 | | |
381 | 381 | | |
382 | 382 | | |
383 | 383 | | |
384 | 384 | | |
385 | 385 | | |
386 | | - | |
| 386 | + | |
387 | 387 | | |
388 | 388 | | |
389 | 389 | | |
| |||
401 | 401 | | |
402 | 402 | | |
403 | 403 | | |
404 | | - | |
| 404 | + | |
405 | 405 | | |
406 | 406 | | |
407 | 407 | | |
| |||
2121 | 2121 | | |
2122 | 2122 | | |
2123 | 2123 | | |
2124 | | - | |
| 2124 | + | |
2125 | 2125 | | |
2126 | 2126 | | |
2127 | 2127 | | |
2128 | 2128 | | |
2129 | 2129 | | |
2130 | 2130 | | |
2131 | 2131 | | |
2132 | | - | |
2133 | | - | |
2134 | | - | |
| 2132 | + | |
| 2133 | + | |
| 2134 | + | |
2135 | 2135 | | |
2136 | 2136 | | |
2137 | 2137 | | |
| |||
2176 | 2176 | | |
2177 | 2177 | | |
2178 | 2178 | | |
2179 | | - | |
| 2179 | + | |
2180 | 2180 | | |
2181 | 2181 | | |
2182 | 2182 | | |
| |||
2221 | 2221 | | |
2222 | 2222 | | |
2223 | 2223 | | |
2224 | | - | |
2225 | | - | |
| 2224 | + | |
| 2225 | + | |
2226 | 2226 | | |
2227 | 2227 | | |
2228 | 2228 | | |
| |||
2327 | 2327 | | |
2328 | 2328 | | |
2329 | 2329 | | |
2330 | | - | |
| 2330 | + | |
2331 | 2331 | | |
2332 | 2332 | | |
2333 | 2333 | | |
| |||
2341 | 2341 | | |
2342 | 2342 | | |
2343 | 2343 | | |
2344 | | - | |
2345 | | - | |
2346 | | - | |
| 2344 | + | |
| 2345 | + | |
| 2346 | + | |
2347 | 2347 | | |
2348 | 2348 | | |
2349 | 2349 | | |
| |||
2371 | 2371 | | |
2372 | 2372 | | |
2373 | 2373 | | |
2374 | | - | |
| 2374 | + | |
2375 | 2375 | | |
2376 | | - | |
| 2376 | + | |
2377 | 2377 | | |
2378 | 2378 | | |
2379 | 2379 | | |
2380 | | - | |
| 2380 | + | |
2381 | 2381 | | |
2382 | 2382 | | |
2383 | 2383 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
1132 | 1132 | | |
1133 | 1133 | | |
1134 | 1134 | | |
1135 | | - | |
1136 | | - | |
1137 | | - | |
1138 | | - | |
1139 | | - | |
| 1135 | + | |
1140 | 1136 | | |
1141 | 1137 | | |
1142 | 1138 | | |
| |||
1153 | 1149 | | |
1154 | 1150 | | |
1155 | 1151 | | |
1156 | | - | |
1157 | | - | |
1158 | | - | |
1159 | | - | |
| 1152 | + | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
1160 | 1156 | | |
1161 | | - | |
1162 | | - | |
1163 | | - | |
1164 | | - | |
1165 | | - | |
1166 | | - | |
1167 | | - | |
1168 | | - | |
1169 | | - | |
1170 | 1157 | | |
1171 | 1158 | | |
1172 | 1159 | | |
1173 | 1160 | | |
1174 | 1161 | | |
1175 | 1162 | | |
1176 | 1163 | | |
1177 | | - | |
| 1164 | + | |
1178 | 1165 | | |
1179 | 1166 | | |
1180 | 1167 | | |
| |||
1187 | 1174 | | |
1188 | 1175 | | |
1189 | 1176 | | |
1190 | | - | |
1191 | | - | |
1192 | | - | |
1193 | | - | |
| 1177 | + | |
1194 | 1178 | | |
1195 | 1179 | | |
1196 | 1180 | | |
| |||
1257 | 1241 | | |
1258 | 1242 | | |
1259 | 1243 | | |
1260 | | - | |
1261 | | - | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
| 1248 | + | |
| 1249 | + | |
1262 | 1250 | | |
1263 | 1251 | | |
1264 | 1252 | | |
| |||
1281 | 1269 | | |
1282 | 1270 | | |
1283 | 1271 | | |
| 1272 | + | |
1284 | 1273 | | |
1285 | 1274 | | |
1286 | 1275 | | |
| |||
1313 | 1302 | | |
1314 | 1303 | | |
1315 | 1304 | | |
1316 | | - | |
1317 | | - | |
| 1305 | + | |
| 1306 | + | |
| 1307 | + | |
| 1308 | + | |
| 1309 | + | |
| 1310 | + | |
1318 | 1311 | | |
1319 | 1312 | | |
1320 | 1313 | | |
| |||
1338 | 1331 | | |
1339 | 1332 | | |
1340 | 1333 | | |
1341 | | - | |
1342 | | - | |
| 1334 | + | |
| 1335 | + | |
| 1336 | + | |
| 1337 | + | |
1343 | 1338 | | |
1344 | 1339 | | |
1345 | 1340 | | |
| |||
1366 | 1361 | | |
1367 | 1362 | | |
1368 | 1363 | | |
1369 | | - | |
1370 | | - | |
| 1364 | + | |
| 1365 | + | |
| 1366 | + | |
1371 | 1367 | | |
1372 | 1368 | | |
1373 | 1369 | | |
| |||
1385 | 1381 | | |
1386 | 1382 | | |
1387 | 1383 | | |
1388 | | - | |
1389 | | - | |
1390 | | - | |
1391 | | - | |
| 1384 | + | |
1392 | 1385 | | |
1393 | 1386 | | |
1394 | 1387 | | |
| |||
1399 | 1392 | | |
1400 | 1393 | | |
1401 | 1394 | | |
| 1395 | + | |
1402 | 1396 | | |
1403 | 1397 | | |
1404 | 1398 | | |
| |||
1429 | 1423 | | |
1430 | 1424 | | |
1431 | 1425 | | |
1432 | | - | |
1433 | | - | |
| 1426 | + | |
| 1427 | + | |
| 1428 | + | |
| 1429 | + | |
| 1430 | + | |
| 1431 | + | |
1434 | 1432 | | |
1435 | 1433 | | |
1436 | 1434 | | |
| |||
1446 | 1444 | | |
1447 | 1445 | | |
1448 | 1446 | | |
1449 | | - | |
| 1447 | + | |
1450 | 1448 | | |
1451 | 1449 | | |
1452 | 1450 | | |
| |||
1468 | 1466 | | |
1469 | 1467 | | |
1470 | 1468 | | |
1471 | | - | |
1472 | | - | |
| 1469 | + | |
| 1470 | + | |
1473 | 1471 | | |
1474 | 1472 | | |
1475 | 1473 | | |
| |||
1487 | 1485 | | |
1488 | 1486 | | |
1489 | 1487 | | |
1490 | | - | |
1491 | | - | |
1492 | | - | |
1493 | | - | |
| 1488 | + | |
| 1489 | + | |
1494 | 1490 | | |
1495 | 1491 | | |
1496 | 1492 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
27 | | - | |
| 26 | + | |
| 27 | + | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
| 36 | + | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
40 | | - | |
| 39 | + | |
41 | 40 | | |
42 | 41 | | |
43 | 42 | | |
| |||
193 | 192 | | |
194 | 193 | | |
195 | 194 | | |
196 | | - | |
| 195 | + | |
197 | 196 | | |
198 | 197 | | |
199 | 198 | | |
| |||
567 | 566 | | |
568 | 567 | | |
569 | 568 | | |
570 | | - | |
| 569 | + | |
571 | 570 | | |
572 | 571 | | |
573 | 572 | | |
| |||
0 commit comments