On Wed, Apr 20, 2016 at 6:04 PM, David G. Johnston < david.g.johns...@gmail.com> wrote:
> On Wed, Apr 20, 2016 at 5:18 PM, Karl Czajkowski <kar...@isi.edu> 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.