hstore patch, part 2

Lists: pgsql-hackers
From: Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk>
To: pgsql-hackers(at)postgresql(dot)org
Subject: hstore patch, part 2
Date: 2009-03-24 18:51:43
Message-ID: 87skl2rby8.fsf@news-spur.riddles.org.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

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 Content-Type Size
hstore_20090324.patch.gz application/octet-stream 22.8 KB

From: Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Re: hstore patch, part 2
Date: 2009-03-24 19:14:13
Message-ID: 87ocvqrawq.fsf@news-spur.riddles.org.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

>>>>> "Andrew" == Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)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.


From: "David E(dot) Wheeler" <david(at)kineticode(dot)com>
To: Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: hstore patch, part 2
Date: 2009-03-24 22:38:18
Message-ID: 7AD94081-DE7D-444A-A949-EB08D03C1A34@kineticode.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

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


From: Josh Berkus <josh(at)agliodbs(dot)com>
To: "David E(dot) Wheeler" <david(at)kineticode(dot)com>
Cc: Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: hstore patch, part 2
Date: 2009-03-25 00:50:14
Message-ID: 49C97FC6.2090206@agliodbs.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

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


From: Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Re: hstore patch, part 2
Date: 2009-03-25 01:11:23
Message-ID: 877i2equdg.fsf@news-spur.riddles.org.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

>>>>> "David" == "David E Wheeler" <david(at)kineticode(dot)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)


From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: hstore patch, part 2
Date: 2009-04-09 16:33:24
Message-ID: 200904091633.n39GXOC15751@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Andrew Gierth wrote:
> >>>>> "David" == "David E Wheeler" <david(at)kineticode(dot)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(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +


From: Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk>
To: bruce(at)momjian(dot)us (Bruce Momjian), pgsql-hackers(at)postgresql(dot)org
Subject: Re: hstore patch, part 2
Date: 2009-04-09 16:55:24
Message-ID: 87prflix6r.fsf@news-spur.riddles.org.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

>>>>> "Bruce" == Bruce Momjian <bruce(at)momjian(dot)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)