Thread: 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)
Attachment
>>>>> "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 pgfoundryversion>> 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)