mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
Add assign_expr_collations() to CreatePolicy() and AlterPolicy().
As noted by Noah Misch, CreatePolicy() and AlterPolicy() omit to call assign_expr_collations() on the node trees. Fix the omission and add his test case to the rowsecurity regression test.
This commit is contained in:
@ -2730,6 +2730,27 @@ ERROR: permission denied for relation copy_t
|
||||
RESET SESSION AUTHORIZATION;
|
||||
DROP TABLE copy_t;
|
||||
--
|
||||
-- Collation support
|
||||
--
|
||||
BEGIN;
|
||||
SET row_security = force;
|
||||
CREATE TABLE coll_t (c) AS VALUES ('bar'::text);
|
||||
CREATE POLICY coll_p ON coll_t USING (c < ('foo'::text COLLATE "C"));
|
||||
ALTER TABLE coll_t ENABLE ROW LEVEL SECURITY;
|
||||
SELECT (string_to_array(polqual, ':'))[7] AS inputcollid FROM pg_policy WHERE polrelid = 'coll_t'::regclass;
|
||||
inputcollid
|
||||
------------------
|
||||
inputcollid 950
|
||||
(1 row)
|
||||
|
||||
SELECT * FROM coll_t;
|
||||
c
|
||||
-----
|
||||
bar
|
||||
(1 row)
|
||||
|
||||
ROLLBACK;
|
||||
--
|
||||
-- Clean up objects
|
||||
--
|
||||
RESET SESSION AUTHORIZATION;
|
||||
|
@ -1087,6 +1087,18 @@ COPY copy_t FROM STDIN; --fail - permission denied.
|
||||
RESET SESSION AUTHORIZATION;
|
||||
DROP TABLE copy_t;
|
||||
|
||||
--
|
||||
-- Collation support
|
||||
--
|
||||
BEGIN;
|
||||
SET row_security = force;
|
||||
CREATE TABLE coll_t (c) AS VALUES ('bar'::text);
|
||||
CREATE POLICY coll_p ON coll_t USING (c < ('foo'::text COLLATE "C"));
|
||||
ALTER TABLE coll_t ENABLE ROW LEVEL SECURITY;
|
||||
SELECT (string_to_array(polqual, ':'))[7] AS inputcollid FROM pg_policy WHERE polrelid = 'coll_t'::regclass;
|
||||
SELECT * FROM coll_t;
|
||||
ROLLBACK;
|
||||
|
||||
--
|
||||
-- Clean up objects
|
||||
--
|
||||
|
Reference in New Issue
Block a user