You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'a' as the Greenplum Database data distribution key for this table.
5191
5191
HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
@@ -5204,9 +5204,84 @@ SELECT * FROM rls_tbl WHERE a <<< 1000;
5204
5204
---
5205
5205
(0 rows)
5206
5206
5207
+
RESET SESSION AUTHORIZATION;
5208
+
CREATE TABLE rls_child_tbl () INHERITS (rls_tbl);
5209
+
INSERT INTO rls_child_tbl SELECT x/10 FROM generate_series(1, 100) x;
5210
+
ANALYZE rls_child_tbl;
5211
+
CREATE TABLE rls_ptbl (a int) PARTITION BY RANGE (a);
5212
+
CREATE TABLE rls_part PARTITION OF rls_ptbl FOR VALUES FROM (-100) TO (100);
5213
+
INSERT INTO rls_ptbl SELECT x/10 FROM generate_series(1, 100) x;
5214
+
ANALYZE rls_ptbl, rls_part;
5215
+
ALTER TABLE rls_ptbl ENABLE ROW LEVEL SECURITY;
5216
+
ALTER TABLE rls_part ENABLE ROW LEVEL SECURITY;
5217
+
GRANT SELECT ON rls_ptbl TO regress_rls_alice;
5218
+
GRANT SELECT ON rls_part TO regress_rls_alice;
5219
+
CREATE POLICY p1 ON rls_tbl USING (a < 0);
5220
+
CREATE POLICY p2 ON rls_ptbl USING (a < 0);
5221
+
CREATE POLICY p3 ON rls_part USING (a < 0);
5222
+
SET SESSION AUTHORIZATION regress_rls_alice;
5223
+
SELECT * FROM rls_tbl WHERE a <<< 1000;
5224
+
INFO: GPORCA failed to produce a plan, falling back to Postgres-based planner
5225
+
DETAIL: Falling back to Postgres-based planner because GPORCA does not support the following feature: Inherited tables
5226
+
a
5227
+
---
5228
+
(0 rows)
5229
+
5230
+
SELECT * FROM rls_child_tbl WHERE a <<< 1000;
5231
+
ERROR: permission denied for table rls_child_tbl
5232
+
SELECT * FROM rls_ptbl WHERE a <<< 1000;
5233
+
a
5234
+
---
5235
+
(0 rows)
5236
+
5237
+
SELECT * FROM rls_part WHERE a <<< 1000;
5238
+
a
5239
+
---
5240
+
(0 rows)
5241
+
5242
+
SELECT * FROM (SELECT * FROM rls_tbl UNION ALL
5243
+
SELECT * FROM rls_tbl) t WHERE a <<< 1000;
5244
+
INFO: GPORCA failed to produce a plan, falling back to Postgres-based planner
5245
+
DETAIL: Falling back to Postgres-based planner because GPORCA does not support the following feature: Inherited tables
5246
+
a
5247
+
---
5248
+
(0 rows)
5249
+
5250
+
SELECT * FROM (SELECT * FROM rls_child_tbl UNION ALL
5251
+
SELECT * FROM rls_child_tbl) t WHERE a <<< 1000;
5252
+
ERROR: permission denied for table rls_child_tbl
5253
+
RESET SESSION AUTHORIZATION;
5254
+
REVOKE SELECT ON rls_tbl FROM regress_rls_alice;
5255
+
CREATE VIEW rls_tbl_view AS SELECT * FROM rls_tbl;
5256
+
ALTER TABLE rls_child_tbl ENABLE ROW LEVEL SECURITY;
5257
+
GRANT SELECT ON rls_child_tbl TO regress_rls_alice;
5258
+
CREATE POLICY p4 ON rls_child_tbl USING (a < 0);
5259
+
SET SESSION AUTHORIZATION regress_rls_alice;
5260
+
SELECT * FROM rls_tbl WHERE a <<< 1000;
5261
+
ERROR: permission denied for table rls_tbl
5262
+
SELECT * FROM rls_tbl_view WHERE a <<< 1000;
5263
+
ERROR: permission denied for view rls_tbl_view
5264
+
SELECT * FROM rls_child_tbl WHERE a <<< 1000;
5265
+
a
5266
+
---
5267
+
(0 rows)
5268
+
5269
+
SELECT * FROM (SELECT * FROM rls_tbl UNION ALL
5270
+
SELECT * FROM rls_tbl) t WHERE a <<< 1000;
5271
+
ERROR: permission denied for table rls_tbl
5272
+
SELECT * FROM (SELECT * FROM rls_child_tbl UNION ALL
5273
+
SELECT * FROM rls_child_tbl) t WHERE a <<< 1000;
5274
+
a
5275
+
---
5276
+
(0 rows)
5277
+
5207
5278
DROP OPERATOR <<< (int, int);
5208
5279
DROP FUNCTION op_leak(int, int);
5209
5280
RESET SESSION AUTHORIZATION;
5281
+
DROP TABLE rls_part;
5282
+
DROP TABLE rls_ptbl;
5283
+
DROP TABLE rls_child_tbl;
5284
+
DROP VIEW rls_tbl_view;
5210
5285
DROP TABLE rls_tbl;
5211
5286
-- Bug #16006: whole-row Vars in a policy don't play nice with sub-selects
0 commit comments