- Notifications
You must be signed in to change notification settings - Fork4.9k
Commit4dbdb82
committed
Fix cache lookup hazards introduced byff9618e.
ff9618e introduced has_partition_ancestor_privs(), which is usedto check whether a user has MAINTAIN on any partition ancestors.This involves syscache lookups, and presently this function doesnot take any relation locks, so it is likely subject to the samekind of cache lookup failures that were fixed by19de0ab.To fix this problem, this commit partially revertsff9618e.Specifically, it removes the partition-related changes, includingthe has_partition_ancestor_privs() function mentioned above. Thismeans that MAINTAIN on a partitioned table is no longer sufficientto perform maintenance commands on its partitions. This is morelike how privileges for maintenance commands work on supportedversions. Privileges are checked for each partition, so a commandthat flows down to all partitions might refuse to process them(e.g., if the current user doesn't have MAINTAIN on the partition).In passing, adjust a few related comments and error messages, andadd a test for the privilege checks for CLUSTER on a partitionedtable.Reviewed-by: Michael Paquier, Jeff DavisDiscussion:https://postgr.es/m/20230613211246.GA219055%40nathanxps131 parentf5c446e commit4dbdb82
File tree
18 files changed
+74
-105
lines changed- doc/src/sgml/ref
- src
- backend/commands
- include/commands
- test
- isolation
- expected
- specs
- regress
- expected
- sql
18 files changed
+74
-105
lines changedLines changed: 1 addition & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
190 | 190 |
| |
191 | 191 |
| |
192 | 192 |
| |
193 |
| - | |
194 |
| - | |
195 |
| - | |
196 |
| - | |
| 193 | + | |
197 | 194 |
| |
198 | 195 |
| |
199 | 196 |
| |
|
Lines changed: 1 addition & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
137 | 137 |
| |
138 | 138 |
| |
139 | 139 |
| |
140 |
| - | |
141 |
| - | |
142 |
| - | |
143 |
| - | |
| 140 | + | |
144 | 141 |
| |
145 | 142 |
| |
146 | 143 |
| |
|
Lines changed: 1 addition & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
177 | 177 |
| |
178 | 178 |
| |
179 | 179 |
| |
180 |
| - | |
181 |
| - | |
182 |
| - | |
183 |
| - | |
| 180 | + | |
184 | 181 |
| |
185 | 182 |
| |
186 | 183 |
| |
|
Lines changed: 1 addition & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
306 | 306 |
| |
307 | 307 |
| |
308 | 308 |
| |
309 |
| - | |
310 |
| - | |
311 |
| - | |
312 |
| - | |
313 |
| - | |
| 309 | + | |
314 | 310 |
| |
315 | 311 |
| |
316 | 312 |
| |
|
Lines changed: 1 addition & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
452 | 452 |
| |
453 | 453 |
| |
454 | 454 |
| |
455 |
| - | |
456 |
| - | |
457 |
| - | |
458 |
| - | |
| 455 | + | |
459 | 456 |
| |
460 | 457 |
| |
461 | 458 |
| |
|
Lines changed: 7 additions & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1694 | 1694 |
| |
1695 | 1695 |
| |
1696 | 1696 |
| |
1697 |
| - | |
1698 |
| - | |
1699 |
| - | |
| 1697 | + | |
| 1698 | + | |
| 1699 | + | |
| 1700 | + | |
1700 | 1701 |
| |
| 1702 | + | |
| 1703 | + | |
1701 | 1704 |
| |
1702 | 1705 |
| |
1703 | 1706 |
| |
| |||
1720 | 1723 |
| |
1721 | 1724 |
| |
1722 | 1725 |
| |
1723 |
| - | |
1724 |
| - | |
| 1726 | + | |
1725 | 1727 |
| |
1726 | 1728 |
| |
1727 | 1729 |
| |
|
Lines changed: 12 additions & 15 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2853 | 2853 |
| |
2854 | 2854 |
| |
2855 | 2855 |
| |
2856 |
| - | |
2857 |
| - | |
2858 |
| - | |
2859 |
| - | |
2860 |
| - | |
| 2856 | + | |
| 2857 | + | |
| 2858 | + | |
| 2859 | + | |
| 2860 | + | |
| 2861 | + | |
| 2862 | + | |
| 2863 | + | |
2861 | 2864 |
| |
2862 | 2865 |
| |
2863 | 2866 |
| |
| |||
3064 | 3067 |
| |
3065 | 3068 |
| |
3066 | 3069 |
| |
3067 |
| - | |
3068 |
| - | |
3069 |
| - | |
3070 |
| - | |
3071 |
| - | |
3072 |
| - | |
3073 |
| - | |
3074 |
| - | |
| 3070 | + | |
| 3071 | + | |
| 3072 | + | |
3075 | 3073 |
| |
3076 | 3074 |
| |
3077 |
| - | |
3078 |
| - | |
| 3075 | + | |
3079 | 3076 |
| |
3080 | 3077 |
| |
3081 | 3078 |
| |
|
Lines changed: 0 additions & 8 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
19 | 19 |
| |
20 | 20 |
| |
21 | 21 |
| |
22 |
| - | |
23 | 22 |
| |
24 | 23 |
| |
25 | 24 |
| |
| |||
297 | 296 |
| |
298 | 297 |
| |
299 | 298 |
| |
300 |
| - | |
301 |
| - | |
302 |
| - | |
303 |
| - | |
304 |
| - | |
305 |
| - | |
306 |
| - | |
307 | 299 |
| |
308 | 300 |
|
Lines changed: 4 additions & 30 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
16986 | 16986 |
| |
16987 | 16987 |
| |
16988 | 16988 |
| |
| 16989 | + | |
16989 | 16990 |
| |
16990 | 16991 |
| |
16991 | 16992 |
| |
| |||
17006 | 17007 |
| |
17007 | 17008 |
| |
17008 | 17009 |
| |
17009 |
| - | |
17010 |
| - | |
17011 |
| - | |
17012 |
| - | |
17013 |
| - | |
17014 |
| - | |
17015 |
| - | |
17016 |
| - | |
17017 |
| - | |
17018 |
| - | |
17019 |
| - | |
17020 |
| - | |
17021 |
| - | |
17022 |
| - | |
17023 |
| - | |
17024 |
| - | |
17025 |
| - | |
17026 |
| - | |
17027 |
| - | |
17028 |
| - | |
17029 |
| - | |
17030 |
| - | |
17031 |
| - | |
17032 |
| - | |
17033 |
| - | |
17034 |
| - | |
17035 |
| - | |
17036 |
| - | |
17037 |
| - | |
17038 |
| - | |
| 17010 | + | |
| 17011 | + | |
| 17012 | + | |
17039 | 17013 |
| |
17040 | 17014 |
| |
17041 | 17015 |
| |
|
Lines changed: 2 additions & 8 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
41 | 41 |
| |
42 | 42 |
| |
43 | 43 |
| |
44 |
| - | |
45 | 44 |
| |
46 | 45 |
| |
47 | 46 |
| |
| |||
721 | 720 |
| |
722 | 721 |
| |
723 | 722 |
| |
724 |
| - | |
725 |
| - | |
726 | 723 |
| |
727 |
| - | |
728 |
| - | |
729 |
| - | |
| 724 | + | |
730 | 725 |
| |
731 | 726 |
| |
732 | 727 |
| |
733 |
| - | |
734 |
| - | |
| 728 | + | |
735 | 729 |
| |
736 | 730 |
| |
737 | 731 |
| |
|
Lines changed: 0 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
99 | 99 |
| |
100 | 100 |
| |
101 | 101 |
| |
102 |
| - | |
103 | 102 |
| |
104 | 103 |
| |
105 | 104 |
| |
|
Lines changed: 6 additions & 8 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3 | 3 |
| |
4 | 4 |
| |
5 | 5 |
| |
6 |
| - | |
| 6 | + | |
7 | 7 |
| |
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 | 11 |
| |
12 | 12 |
| |
13 | 13 |
| |
14 |
| - | |
| 14 | + | |
15 | 15 |
| |
16 | 16 |
| |
17 | 17 |
| |
| |||
21 | 21 |
| |
22 | 22 |
| |
23 | 23 |
| |
24 |
| - | |
25 |
| - | |
| 24 | + | |
| 25 | + | |
26 | 26 |
| |
27 |
| - | |
28 | 27 |
| |
29 | 28 |
| |
30 | 29 |
| |
31 | 30 |
| |
32 |
| - | |
| 31 | + | |
33 | 32 |
| |
34 |
| - | |
| 33 | + | |
35 | 34 |
| |
36 |
| - | |
37 | 35 |
|
Lines changed: 5 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
23 | 23 |
| |
24 | 24 |
| |
25 | 25 |
| |
26 |
| - | |
| 26 | + | |
27 | 27 |
| |
28 | 28 |
| |
29 | 29 |
| |
30 |
| - | |
| 30 | + | |
31 | 31 |
| |
32 | 32 |
| |
| 33 | + | |
| 34 | + | |
| 35 | + | |
33 | 36 |
| |
34 | 37 |
|
Lines changed: 6 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
502 | 502 |
| |
503 | 503 |
| |
504 | 504 |
| |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
505 | 509 |
| |
506 | 510 |
| |
507 | 511 |
| |
508 | 512 |
| |
509 | 513 |
| |
510 | 514 |
| |
| 515 | + | |
511 | 516 |
| |
512 | 517 |
| |
513 | 518 |
| |
514 | 519 |
| |
515 | 520 |
| |
516 | 521 |
| |
517 | 522 |
| |
518 |
| - | |
| 523 | + | |
519 | 524 |
| |
520 | 525 |
| |
521 | 526 |
| |
|
Lines changed: 2 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2831 | 2831 |
| |
2832 | 2832 |
| |
2833 | 2833 |
| |
2834 |
| - | |
| 2834 | + | |
2835 | 2835 |
| |
2836 |
| - | |
| 2836 | + | |
2837 | 2837 |
| |
2838 | 2838 |
| |
2839 | 2839 |
| |
|
Lines changed: 4 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2928 | 2928 |
| |
2929 | 2929 |
| |
2930 | 2930 |
| |
2931 |
| - | |
| 2931 | + | |
2932 | 2932 |
| |
2933 |
| - | |
| 2933 | + | |
2934 | 2934 |
| |
2935 |
| - | |
| 2935 | + | |
2936 | 2936 |
| |
2937 |
| - | |
| 2937 | + | |
2938 | 2938 |
| |
2939 | 2939 |
| |
2940 | 2940 |
| |
|
Lines changed: 18 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
442 | 442 |
| |
443 | 443 |
| |
444 | 444 |
| |
| 445 | + | |
445 | 446 |
| |
446 | 447 |
| |
| 448 | + | |
447 | 449 |
| |
| 450 | + | |
448 | 451 |
| |
449 | 452 |
| |
| 453 | + | |
450 | 454 |
| |
| 455 | + | |
451 | 456 |
| |
452 | 457 |
| |
| 458 | + | |
453 | 459 |
| |
454 | 460 |
| |
455 | 461 |
| |
| |||
478 | 484 |
| |
479 | 485 |
| |
480 | 486 |
| |
| 487 | + | |
| 488 | + | |
481 | 489 |
| |
| 490 | + | |
482 | 491 |
| |
| 492 | + | |
483 | 493 |
| |
| 494 | + | |
| 495 | + | |
484 | 496 |
| |
| 497 | + | |
485 | 498 |
| |
| 499 | + | |
486 | 500 |
| |
| 501 | + | |
| 502 | + | |
487 | 503 |
| |
| 504 | + | |
488 | 505 |
| |
| 506 | + | |
489 | 507 |
| |
490 | 508 |
| |
491 | 509 |
| |
|
0 commit comments
Comments
(0)