Commit 6f8cb1e
committed
Make viewquery a copy in rewriteTargetView()
Rather than expect the Query returned by get_view_query() to be
read-only and then copy bits and pieces of it out, simply copy the
entire structure when we get it. This addresses an issue where
AcquireRewriteLocks, which is called by acquireLocksOnSubLinks(),
scribbles on the parsetree passed in, which was actually an entry
in relcache, leading to segfaults with certain view definitions.
This also future-proofs us a bit for anyone adding more code to this
path.
The acquireLocksOnSubLinks() was added in commit c3e0ddd.
Back-patch to 9.3 as that commit was.1 parent 99ccb23 commit 6f8cb1e
File tree
3 files changed
+133
-12
lines changed- src
- backend/rewrite
- test/regress
- expected
- sql
3 files changed
+133
-12
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2033 | 2033 | | |
2034 | 2034 | | |
2035 | 2035 | | |
| 2036 | + | |
| 2037 | + | |
| 2038 | + | |
2036 | 2039 | | |
2037 | 2040 | | |
2038 | 2041 | | |
| |||
2620 | 2623 | | |
2621 | 2624 | | |
2622 | 2625 | | |
2623 | | - | |
2624 | | - | |
| 2626 | + | |
| 2627 | + | |
| 2628 | + | |
| 2629 | + | |
| 2630 | + | |
| 2631 | + | |
| 2632 | + | |
| 2633 | + | |
2625 | 2634 | | |
| 2635 | + | |
2626 | 2636 | | |
2627 | 2637 | | |
2628 | 2638 | | |
| |||
2786 | 2796 | | |
2787 | 2797 | | |
2788 | 2798 | | |
2789 | | - | |
| 2799 | + | |
2790 | 2800 | | |
2791 | 2801 | | |
2792 | 2802 | | |
| |||
2798 | 2808 | | |
2799 | 2809 | | |
2800 | 2810 | | |
2801 | | - | |
2802 | | - | |
2803 | | - | |
2804 | | - | |
2805 | | - | |
2806 | | - | |
| 2811 | + | |
| 2812 | + | |
| 2813 | + | |
| 2814 | + | |
| 2815 | + | |
| 2816 | + | |
2807 | 2817 | | |
2808 | | - | |
| 2818 | + | |
2809 | 2819 | | |
2810 | 2820 | | |
2811 | 2821 | | |
| |||
2956 | 2966 | | |
2957 | 2967 | | |
2958 | 2968 | | |
2959 | | - | |
| 2969 | + | |
2960 | 2970 | | |
2961 | 2971 | | |
2962 | 2972 | | |
| |||
3035 | 3045 | | |
3036 | 3046 | | |
3037 | 3047 | | |
3038 | | - | |
| 3048 | + | |
3039 | 3049 | | |
3040 | 3050 | | |
3041 | 3051 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2353 | 2353 | | |
2354 | 2354 | | |
2355 | 2355 | | |
| 2356 | + | |
| 2357 | + | |
| 2358 | + | |
| 2359 | + | |
| 2360 | + | |
| 2361 | + | |
| 2362 | + | |
| 2363 | + | |
| 2364 | + | |
| 2365 | + | |
| 2366 | + | |
| 2367 | + | |
| 2368 | + | |
| 2369 | + | |
| 2370 | + | |
| 2371 | + | |
| 2372 | + | |
| 2373 | + | |
| 2374 | + | |
| 2375 | + | |
| 2376 | + | |
| 2377 | + | |
| 2378 | + | |
| 2379 | + | |
| 2380 | + | |
| 2381 | + | |
| 2382 | + | |
| 2383 | + | |
| 2384 | + | |
| 2385 | + | |
| 2386 | + | |
| 2387 | + | |
| 2388 | + | |
| 2389 | + | |
| 2390 | + | |
| 2391 | + | |
| 2392 | + | |
| 2393 | + | |
| 2394 | + | |
| 2395 | + | |
| 2396 | + | |
| 2397 | + | |
| 2398 | + | |
| 2399 | + | |
| 2400 | + | |
| 2401 | + | |
| 2402 | + | |
| 2403 | + | |
| 2404 | + | |
| 2405 | + | |
| 2406 | + | |
| 2407 | + | |
| 2408 | + | |
| 2409 | + | |
| 2410 | + | |
| 2411 | + | |
| 2412 | + | |
| 2413 | + | |
| 2414 | + | |
| 2415 | + | |
| 2416 | + | |
| 2417 | + | |
| 2418 | + | |
| 2419 | + | |
| 2420 | + | |
| 2421 | + | |
| 2422 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1020 | 1020 | | |
1021 | 1021 | | |
1022 | 1022 | | |
| 1023 | + | |
| 1024 | + | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
| 1031 | + | |
| 1032 | + | |
| 1033 | + | |
| 1034 | + | |
| 1035 | + | |
| 1036 | + | |
| 1037 | + | |
| 1038 | + | |
| 1039 | + | |
| 1040 | + | |
| 1041 | + | |
| 1042 | + | |
| 1043 | + | |
| 1044 | + | |
| 1045 | + | |
| 1046 | + | |
| 1047 | + | |
| 1048 | + | |
| 1049 | + | |
| 1050 | + | |
| 1051 | + | |
| 1052 | + | |
| 1053 | + | |
| 1054 | + | |
| 1055 | + | |
| 1056 | + | |
| 1057 | + | |
| 1058 | + | |
| 1059 | + | |
| 1060 | + | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + | |
| 1066 | + | |
0 commit comments