Thread: hstore patch, part 2

hstore patch, part 2

From
Andrew Gierth
Date:
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

Re: hstore patch, part 2

From
Andrew Gierth
Date:
>>>>> "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.


Re: hstore patch, part 2

From
"David E. Wheeler"
Date:
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

Re: hstore patch, part 2

From
Josh Berkus
Date:
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


Re: hstore patch, part 2

From
Andrew Gierth
Date:
>>>>> "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)


Re: hstore patch, part 2

From
Bruce Momjian
Date:
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. +


Re: hstore patch, part 2

From
Andrew Gierth
Date:
>>>>> "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)