Re: RLS policy dump/restore failure due to elided type-casts
От | David G. Johnston |
---|---|
Тема | Re: RLS policy dump/restore failure due to elided type-casts |
Дата | |
Msg-id | CAKFQuwaiBXNFyFXAezOqyopYFgJ-cAn+Fe4MCt_y1eMgp9y3uQ@mail.gmail.com обсуждение исходный текст |
Ответ на | RLS policy dump/restore failure due to elided type-casts (Karl Czajkowski <karlcz@isi.edu>) |
Ответы |
Re: RLS policy dump/restore failure due to elided type-casts
|
Список | pgsql-general |
CREATE POLICY delete_stuff ON stuff
FOR DELETE USING ('example attribute value' = ANY ( ((SELECT current_attributes()))::text[] ));
The following (untested) structure should be immune to this problem...use the knowledge as you see fit.
USING ('example_attribute_value' = ANY ( ARRAY( SELECT unnest(attr) FROM current_attributes() ca (attr) ) )
I cannot imagine the ARRAY(...) being removed and its presence should force the scalar = ANY(array) interpretation.
This does seem broken and likely to be back-patched though - and unnest+ARRAY is definitely inefficient so there is a trade-off involved - but hopefully only in the short-term (a couple of months probably...?).
David J.
В списке pgsql-general по дате отправления: