forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commitbfd6b3b
committed
Improve plpgsql's ability to handle arguments declared as RECORD.
Treat arguments declared as RECORD as if that were a polymorphic type(which it is, sort of), in that we substitute the actual argument typewhile forming the function cache lookup key. This allows the specificcomposite type to be known in some cases where it was not before,at the cost of making a separate function cache entry for each namedcomposite type that's passed to the function during a session. Theparticular symptom discussed in bug #17610 could be solved in othermore-efficient ways, but only at the cost of considerable developmentwork, and there are other cases where we'd still fail without this.Per bug #17610 from Martin Jurča. Back-patch to v11 where we firstallowed plpgsql functions to be declared as taking type RECORD.Discussion:https://postgr.es/m/17610-fb1eef75bf6c2364@postgresql.org1 parentd08a049 commitbfd6b3b
File tree
3 files changed
+76
-4
lines changed- src/pl/plpgsql/src
- expected
- sql
3 files changed
+76
-4
lines changedLines changed: 35 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2 | 2 |
| |
3 | 3 |
| |
4 | 4 |
| |
| 5 | + | |
5 | 6 |
| |
6 | 7 |
| |
7 | 8 |
| |
| |||
426 | 427 |
| |
427 | 428 |
| |
428 | 429 |
| |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
429 | 442 |
| |
430 | 443 |
| |
431 | 444 |
| |
| |||
438 | 451 |
| |
439 | 452 |
| |
440 | 453 |
| |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
441 | 476 |
| |
442 | 477 |
| |
443 | 478 |
| |
|
Lines changed: 30 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2498 | 2498 |
| |
2499 | 2499 |
| |
2500 | 2500 |
| |
2501 |
| - | |
2502 |
| - | |
2503 |
| - | |
| 2501 | + | |
| 2502 | + | |
| 2503 | + | |
| 2504 | + | |
| 2505 | + | |
| 2506 | + | |
| 2507 | + | |
| 2508 | + | |
| 2509 | + | |
2504 | 2510 |
| |
2505 | 2511 |
| |
2506 | 2512 |
| |
| |||
2512 | 2518 |
| |
2513 | 2519 |
| |
2514 | 2520 |
| |
| 2521 | + | |
| 2522 | + | |
2515 | 2523 |
| |
2516 | 2524 |
| |
2517 | 2525 |
| |
| |||
2520 | 2528 |
| |
2521 | 2529 |
| |
2522 | 2530 |
| |
| 2531 | + | |
| 2532 | + | |
| 2533 | + | |
| 2534 | + | |
| 2535 | + | |
| 2536 | + | |
| 2537 | + | |
| 2538 | + | |
| 2539 | + | |
| 2540 | + | |
| 2541 | + | |
| 2542 | + | |
| 2543 | + | |
| 2544 | + | |
| 2545 | + | |
| 2546 | + | |
| 2547 | + | |
| 2548 | + | |
2523 | 2549 |
| |
2524 | 2550 |
| |
2525 | 2551 |
| |
2526 |
| - | |
| 2552 | + | |
2527 | 2553 |
| |
2528 | 2554 |
| |
2529 | 2555 |
| |
|
Lines changed: 11 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3 | 3 |
| |
4 | 4 |
| |
5 | 5 |
| |
| 6 | + | |
6 | 7 |
| |
7 | 8 |
| |
8 | 9 |
| |
| |||
257 | 258 |
| |
258 | 259 |
| |
259 | 260 |
| |
| 261 | + | |
| 262 | + | |
260 | 263 |
| |
261 | 264 |
| |
262 | 265 |
| |
263 | 266 |
| |
264 | 267 |
| |
265 | 268 |
| |
266 | 269 |
| |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
267 | 278 |
| |
268 | 279 |
| |
269 | 280 |
| |
|
0 commit comments
Comments
(0)