Search Postgresql Archives

Re: RLS policy dump/restore failure due to elided type-casts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Apr 20, 2016 at 6:04 PM, David G. Johnston <david.g.johnston@xxxxxxxxx> wrote:
On Wed, Apr 20, 2016 at 5:18 PM, Karl Czajkowski <karlcz@xxxxxxx> wrote:

  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...?).


​Actually, the ARRAY is pointless - just use the scalar = ANY(subquery) form which the unnest makes work correctly.

David J.​
 

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux