Re: hstore ==> and deprecate =>

Florian Pflug <fgp@phlo.org>

From: Florian Pflug <fgp@phlo.org>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Peter Eisentraut <peter_e@gmx.net>, Robert Haas <robertmhaas@gmail.com>, Michael Glaesemann <grzm@seespotcode.net>, Merlin Moncure <mmoncure@gmail.com>, pgsql-hackers@postgresql.org
Date: 2010-06-12T14:15:54Z
Lists: pgsql-hackers
On Jun 12, 2010, at 14:57 , Tom Lane wrote:
> But actually, there's another issue here: hstore defines not one but
> three => operators:
> 
> 	text => text		yields hstore (with 1 element)
> 	text[] => text[]	yields hstore (with N elements)
> 	hstore => text[]	yields hstore (subset)
> 
> It's reasonable to say that the first two are bad design, but I'm
> a bit less willing to say that the last one is.  What shall we
> do with that?

Hm, the last one seems to be more akin to
        hstore - text        yields hstore (key removed)
        hstore - text[]      yields hstore (keys in array removed)
        hstore - hstore      yields hstore (keys in hstore removed)

since it's not a constructor like the first two, but rather an (intersection-like) operation on an existing hstore.

Inspired by the already existing
        hstore ?& text[]     yields boolean (true if set of keys subset of array)
I suggest
        hstore & text[]
as a replacement.

best regards,
Florian Pflug