hstore patch, part 2
Patch attached, also available at
http://www.rhodiumtoad.org.uk/junk/hstore_20090324.patch.txt
The user-visible changes are:
- removal of previous 65535-byte limit on keys/values; both keys and
values can now be as long as desired, within the 1GB limit for the
whole hstore value (though you'll find a lot of stuff errors if
you have hstores over 500MB, so don't try it).
- support for btree and hash opclasses (allows hstores to be
compared for equality, aggregated, and have UNIQUE indexes)
- binary I/O now supported
- many new functions and operators:
hstore -> text[] returns text[] (slice to value array)
hstore => text[] returns hstore (slice to new hstore)
hstore ?| text[] returns boolean (check for any of a list of keys)
hstore ?& text[] returns boolean (check for all of a list of keys)
hstore - text returns hstore (delete one element)
hstore - text[] returns hstore (delete many elements)
hstore - hstore returns hstore (delete matching pairs)
text[] => text[] returns hstore (construct from key/value arrays)
hstore = hstore returns hstore (equality)
hstore <> hstore returns hstore (inequality)
record #= hstore returns record (see populate_record)
- GiST and GIN support for ?| and ?& operators
- conversions between hstore and record values:
hstore(record) - construct an hstore from a record
populate_record(record,hstore)
- fill in fields of a record as specified by an hstore
(actually it's (anyelement,hstore) but it errors out if
the parameter isn't composite)
By popular demand, a version of this will go up on pgfoundry for use
with 8.3 etc.
--
Andrew (irc:RhodiumToad)
Attachments:
"Andrew" == Andrew Gierth <andrew@tao11.riddles.org.uk> writes:
Andrew> - many new functions and operators:
Andrew> hstore = hstore returns hstore (equality)
Andrew> hstore <> hstore returns hstore (inequality)
Of course those should be
hstore = hstore returns boolean (equality)
hstore <> hstore returns boolean (inequality)
(they are correct in the code)
--
Andrew.
On Mar 24, 2009, at 2:51 PM, Andrew Gierth wrote:
By popular demand, a version of this will go up on pgfoundry for use
with 8.3 etc.
Wow. Nice stuff! I hope it's not too late for 8.4…
Best,
David
On 3/24/09 3:38 PM, David E. Wheeler wrote:
On Mar 24, 2009, at 2:51 PM, Andrew Gierth wrote:
By popular demand, a version of this will go up on pgfoundry for use
with 8.3 etc.Wow. Nice stuff! I hope it's not too late for 8.4…
It is for anything but the undocumented size limits, which are a bug.
Let's please not add any more patches to 8.4.
--Josh
"David" == "David E Wheeler" <david@kineticode.com> writes:
On Mar 24, 2009, at 2:51 PM, Andrew Gierth wrote:
By popular demand, a version of this will go up on pgfoundry for
use with 8.3 etc.
David> Wow. Nice stuff! I hope it's not too late for 8.4…
I personally have no expectation of it getting into 8.4. (If someone
decides it's a nice no-brainer that could go in, well that's fine by
me, but I really don't think it likely.)
In the absence of feedback to the contrary, I will submit it for the
first commitfest of 8.5, and maintain the pgfoundry version for 8.3
and 8.4.
--
Andrew (irc:RhodiumToad)
Andrew Gierth wrote:
"David" == "David E Wheeler" <david@kineticode.com> writes:
On Mar 24, 2009, at 2:51 PM, Andrew Gierth wrote:
By popular demand, a version of this will go up on pgfoundry for
use with 8.3 etc.David> Wow. Nice stuff! I hope it's not too late for 8.4?
I personally have no expectation of it getting into 8.4. (If someone
decides it's a nice no-brainer that could go in, well that's fine by
me, but I really don't think it likely.)In the absence of feedback to the contrary, I will submit it for the
first commitfest of 8.5, and maintain the pgfoundry version for 8.3
and 8.4.
Andrew, do you want to add it to the 8.5 commitfest:
http://wiki.postgresql.org/wiki/CommitFestInProgress
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
"Bruce" == Bruce Momjian <bruce@momjian.us> writes:
In the absence of feedback to the contrary, I will submit it for
the first commitfest of 8.5, and maintain the pgfoundry version
for 8.3 and 8.4.
Bruce> Andrew, do you want to add it to the 8.5 commitfest:
I will do so soon but I need to revise it slightly first to account
for the GIN changes.
--
Andrew (irc:RhodiumToad)