Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit44e0ebe

Browse files
committed
tests for function postprocess_child_table_and_atts()
1 parent6c6e05c commit44e0ebe

File tree

2 files changed

+105
-2
lines changed

2 files changed

+105
-2
lines changed

‎expected/pathman_permissions.out

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ SELECT prepend_range_partition('permissions.user1_table');
7777
permissions.user1_table_4
7878
(1 row)
7979

80-
SELECT attname, attaclfrom pg_attribute
80+
SELECT attname, attaclFROM pg_attribute
8181
WHERE attrelid = (SELECT "partition" FROM pathman_partition_list
8282
WHERE parent = 'permissions.user1_table'::REGCLASS
8383
ORDER BY range_min::int ASC /* prepend */
@@ -166,6 +166,73 @@ NOTICE: 10 rows copied from permissions.user2_table_2
166166
3
167167
(1 row)
168168

169+
/* Switch to #1 */
170+
SET ROLE user1;
171+
CREATE TABLE permissions.dropped_column(a int, val int not null, b int, c int);
172+
INSERT INTO permissions.dropped_column SELECT i,i,i,i FROM generate_series(1, 30) i;
173+
GRANT SELECT(val), INSERT(val) ON permissions.dropped_column TO user2;
174+
SELECT create_range_partitions('permissions.dropped_column', 'val', 1, 10);
175+
NOTICE: sequence "dropped_column_seq" does not exist, skipping
176+
create_range_partitions
177+
-------------------------
178+
3
179+
(1 row)
180+
181+
SELECT attrelid::regclass, attname, attacl FROM pg_attribute
182+
WHERE attrelid = ANY (SELECT "partition" FROM pathman_partition_list
183+
WHERE parent = 'permissions.dropped_column'::REGCLASS)
184+
AND attacl IS NOT NULL
185+
ORDER BY attrelid::regclass::text; /* check ACL for each column */
186+
attrelid | attname | attacl
187+
------------------------------+---------+------------------
188+
permissions.dropped_column_1 | val | {user2=ar/user1}
189+
permissions.dropped_column_2 | val | {user2=ar/user1}
190+
permissions.dropped_column_3 | val | {user2=ar/user1}
191+
(3 rows)
192+
193+
ALTER TABLE permissions.dropped_column DROP COLUMN a; /* DROP "a" */
194+
SELECT append_range_partition('permissions.dropped_column');
195+
append_range_partition
196+
------------------------------
197+
permissions.dropped_column_4
198+
(1 row)
199+
200+
SELECT attrelid::regclass, attname, attacl FROM pg_attribute
201+
WHERE attrelid = ANY (SELECT "partition" FROM pathman_partition_list
202+
WHERE parent = 'permissions.dropped_column'::REGCLASS)
203+
AND attacl IS NOT NULL
204+
ORDER BY attrelid::regclass::text; /* check ACL for each column (+1 partition) */
205+
attrelid | attname | attacl
206+
------------------------------+---------+------------------
207+
permissions.dropped_column_1 | val | {user2=ar/user1}
208+
permissions.dropped_column_2 | val | {user2=ar/user1}
209+
permissions.dropped_column_3 | val | {user2=ar/user1}
210+
permissions.dropped_column_4 | val | {user2=ar/user1}
211+
(4 rows)
212+
213+
ALTER TABLE permissions.dropped_column DROP COLUMN b; /* DROP "b" */
214+
SELECT append_range_partition('permissions.dropped_column');
215+
append_range_partition
216+
------------------------------
217+
permissions.dropped_column_5
218+
(1 row)
219+
220+
SELECT attrelid::regclass, attname, attacl FROM pg_attribute
221+
WHERE attrelid = ANY (SELECT "partition" FROM pathman_partition_list
222+
WHERE parent = 'permissions.dropped_column'::REGCLASS)
223+
AND attacl IS NOT NULL
224+
ORDER BY attrelid::regclass::text; /* check ACL for each column (+1 partition) */
225+
attrelid | attname | attacl
226+
------------------------------+---------+------------------
227+
permissions.dropped_column_1 | val | {user2=ar/user1}
228+
permissions.dropped_column_2 | val | {user2=ar/user1}
229+
permissions.dropped_column_3 | val | {user2=ar/user1}
230+
permissions.dropped_column_4 | val | {user2=ar/user1}
231+
permissions.dropped_column_5 | val | {user2=ar/user1}
232+
(5 rows)
233+
234+
DROP TABLE permissions.dropped_column CASCADE;
235+
NOTICE: drop cascades to 5 other objects
169236
/* Finally reset user */
170237
RESET ROLE;
171238
DROP OWNED BY user1;

‎sql/pathman_permissions.sql

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ GRANT UPDATE(a) ON permissions.user1_table TO user2; /* per-column ACL */
6262
/* Should be able to prepend a partition*/
6363
SET ROLE user2;
6464
SELECT prepend_range_partition('permissions.user1_table');
65-
SELECT attname, attaclfrom pg_attribute
65+
SELECT attname, attaclFROM pg_attribute
6666
WHERE attrelid= (SELECT"partition"FROM pathman_partition_list
6767
WHERE parent='permissions.user1_table'::REGCLASS
6868
ORDER BY range_min::intASC/* prepend*/
@@ -104,6 +104,42 @@ INSERT INTO permissions.user2_table SELECT generate_series(1, 30);
104104
SELECT drop_partitions('permissions.user2_table');
105105

106106

107+
/* Switch to #1*/
108+
SET ROLE user1;
109+
CREATETABLEpermissions.dropped_column(aint, valintnot null, bint, cint);
110+
INSERT INTOpermissions.dropped_columnSELECT i,i,i,iFROM generate_series(1,30) i;
111+
112+
GRANTSELECT(val), INSERT(val)ONpermissions.dropped_column TO user2;
113+
114+
SELECT create_range_partitions('permissions.dropped_column','val',1,10);
115+
116+
SELECT attrelid::regclass, attname, attaclFROM pg_attribute
117+
WHERE attrelid= ANY (SELECT"partition"FROM pathman_partition_list
118+
WHERE parent='permissions.dropped_column'::REGCLASS)
119+
AND attaclIS NOT NULL
120+
ORDER BY attrelid::regclass::text;/* check ACL for each column*/
121+
122+
ALTERTABLEpermissions.dropped_column DROP COLUMN a;/* DROP "a"*/
123+
SELECT append_range_partition('permissions.dropped_column');
124+
125+
SELECT attrelid::regclass, attname, attaclFROM pg_attribute
126+
WHERE attrelid= ANY (SELECT"partition"FROM pathman_partition_list
127+
WHERE parent='permissions.dropped_column'::REGCLASS)
128+
AND attaclIS NOT NULL
129+
ORDER BY attrelid::regclass::text;/* check ACL for each column (+1 partition)*/
130+
131+
ALTERTABLEpermissions.dropped_column DROP COLUMN b;/* DROP "b"*/
132+
SELECT append_range_partition('permissions.dropped_column');
133+
134+
SELECT attrelid::regclass, attname, attaclFROM pg_attribute
135+
WHERE attrelid= ANY (SELECT"partition"FROM pathman_partition_list
136+
WHERE parent='permissions.dropped_column'::REGCLASS)
137+
AND attaclIS NOT NULL
138+
ORDER BY attrelid::regclass::text;/* check ACL for each column (+1 partition)*/
139+
140+
DROPTABLEpermissions.dropped_column CASCADE;
141+
142+
107143
/* Finally reset user*/
108144
RESET ROLE;
109145

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp