hstore ==> and deprecate =>

Started by Robert Haasalmost 16 years ago94 messageshackers
Jump to latest
#1Robert Haas
robertmhaas@gmail.com

I believe that the consensus was mostly in favor of deprecating => as
an operator name, with the intent to abolish it completely in a future
release. Attached is a patch to implement ==> as an alternative
operator name for hstore, and to make the backend throw a warning when
=> is used as an operator name.

One wart is that => is used not only as a SQL-level operator, but also
by hstore_in() when interpreting hstore-type literals, and by
hstore_out() when generating them. My gut feeling is that we should
leave this part alone and only muck with the SQL operator, but perhaps
someone will care to argue the point.

http://archives.postgresql.org/pgsql-hackers/2010-05/msg01501.php

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company

Attachments:

hstore_op.patchapplication/octet-stream; name=hstore_op.patchDownload+124-86
#2Merlin Moncure
mmoncure@gmail.com
In reply to: Robert Haas (#1)
Re: hstore ==> and deprecate =>

On Tue, Jun 8, 2010 at 3:07 PM, Robert Haas <robertmhaas@gmail.com> wrote:

I believe that the consensus was mostly in favor of deprecating => as
an operator name, with the intent to abolish it completely in a future
release.  Attached is a patch to implement ==> as an alternative
operator name for hstore, and to make the backend throw a warning when
=> is used as an operator name.

One wart is that => is used not only as a SQL-level operator, but also
by hstore_in() when interpreting hstore-type literals, and by
hstore_out() when generating them.  My gut feeling is that we should
leave this part alone and only muck with the SQL operator, but perhaps
someone will care to argue the point.

http://archives.postgresql.org/pgsql-hackers/2010-05/msg01501.php

hm. any chance of a shorter operator, like '#'? I kinda agree that
hstore_in and the operator don't have to be the same, but requiring
three letter token for the two most high traffic operations w/hstore
seems off to me.

# is currently used for bitwise xor/geo

merlin

#3Robert Haas
robertmhaas@gmail.com
In reply to: Merlin Moncure (#2)
Re: hstore ==> and deprecate =>

On Tue, Jun 8, 2010 at 3:34 PM, Merlin Moncure <mmoncure@gmail.com> wrote:

On Tue, Jun 8, 2010 at 3:07 PM, Robert Haas <robertmhaas@gmail.com> wrote:

I believe that the consensus was mostly in favor of deprecating => as
an operator name, with the intent to abolish it completely in a future
release.  Attached is a patch to implement ==> as an alternative
operator name for hstore, and to make the backend throw a warning when
=> is used as an operator name.

One wart is that => is used not only as a SQL-level operator, but also
by hstore_in() when interpreting hstore-type literals, and by
hstore_out() when generating them.  My gut feeling is that we should
leave this part alone and only muck with the SQL operator, but perhaps
someone will care to argue the point.

http://archives.postgresql.org/pgsql-hackers/2010-05/msg01501.php

hm.  any chance of a  shorter operator, like '#'?  I kinda agree that
hstore_in and the operator don't have to be the same, but requiring
three letter token for the two most high traffic operations w/hstore
seems off to me.

# is currently used for bitwise xor/geo

I'm happy to do whatever the consensus is. I thought it would be
easier to remember if the two operators were spelled at least somewhat
similarly, but I just work here.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company

#4Pavel Stehule
pavel.stehule@gmail.com
In reply to: Merlin Moncure (#2)
Re: hstore ==> and deprecate =>

2010/6/8 Merlin Moncure <mmoncure@gmail.com>:

On Tue, Jun 8, 2010 at 3:07 PM, Robert Haas <robertmhaas@gmail.com> wrote:

I believe that the consensus was mostly in favor of deprecating => as
an operator name, with the intent to abolish it completely in a future
release.  Attached is a patch to implement ==> as an alternative
operator name for hstore, and to make the backend throw a warning when
=> is used as an operator name.

One wart is that => is used not only as a SQL-level operator, but also
by hstore_in() when interpreting hstore-type literals, and by
hstore_out() when generating them.  My gut feeling is that we should
leave this part alone and only muck with the SQL operator, but perhaps
someone will care to argue the point.

http://archives.postgresql.org/pgsql-hackers/2010-05/msg01501.php

hm.  any chance of a  shorter operator, like '#'?  I kinda agree that
hstore_in and the operator don't have to be the same, but requiring
three letter token for the two most high traffic operations w/hstore
seems off to me.

I am for Robert's proposal - ===> is one char longer - but
significantly readable

Regards

Pavel

p.s. I hope so in 9.1 will be complete hstore module marked as deprecated

Show quoted text

# is currently used for bitwise xor/geo

merlin

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Pavel Stehule (#4)
Re: hstore ==> and deprecate =>

Pavel Stehule <pavel.stehule@gmail.com> writes:

p.s. I hope so in 9.1 will be complete hstore module marked as deprecated

Really? And replaced with what? And why wouldn't the replacement use
the same operator names?

regards, tom lane

#6Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#5)
Re: hstore ==> and deprecate =>

Tom Lane wrote:

Pavel Stehule <pavel.stehule@gmail.com> writes:

p.s. I hope so in 9.1 will be complete hstore module marked as deprecated

Really? And replaced with what? And why wouldn't the replacement use
the same operator names?

Yeah. I'll be looking for throats to cut if that happens. I have several
apps that use it extensively. If anything, I want it brought into core -
it has wide ranging usefulness.

cheers

andrew

#7Michael Glaesemann
grzm@seespotcode.net
In reply to: Robert Haas (#3)
Re: hstore ==> and deprecate =>

On Jun 8, 2010, at 15:38 , Robert Haas wrote:

On Tue, Jun 8, 2010 at 3:34 PM, Merlin Moncure <mmoncure@gmail.com> wrote:

hm. any chance of a shorter operator, like '#'? I kinda agree that
hstore_in and the operator don't have to be the same, but requiring
three letter token for the two most high traffic operations w/hstore
seems off to me.

# is currently used for bitwise xor/geo

I'm happy to do whatever the consensus is. I thought it would be
easier to remember if the two operators were spelled at least somewhat
similarly, but I just work here.

Perhaps
->
Would a colon work?

(That's enough bikeshedding for me.)

Michael Glaesemann
grzm seespotcode net

#8Robert Haas
robertmhaas@gmail.com
In reply to: Michael Glaesemann (#7)
Re: hstore ==> and deprecate =>

On Tue, Jun 8, 2010 at 3:56 PM, Michael Glaesemann <grzm@seespotcode.net> wrote:

On Jun 8, 2010, at 15:38 , Robert Haas wrote:

On Tue, Jun 8, 2010 at 3:34 PM, Merlin Moncure <mmoncure@gmail.com> wrote:

hm.  any chance of a  shorter operator, like '#'?  I kinda agree that
hstore_in and the operator don't have to be the same, but requiring
three letter token for the two most high traffic operations w/hstore
seems off to me.

# is currently used for bitwise xor/geo

I'm happy to do whatever the consensus is.  I thought it would be
easier to remember if the two operators were spelled at least somewhat
similarly, but I just work here.

Perhaps
->

That's already in use to mean something else.

Would a colon work?

Nope.

ERROR: syntax error at or near ":"

(That's enough bikeshedding for me.)

Test first, then post? :-)

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company

#9Michael Glaesemann
grzm@seespotcode.net
In reply to: Robert Haas (#8)
Re: hstore ==> and deprecate =>

On Jun 8, 2010, at 16:17 , Robert Haas wrote:

(That's enough bikeshedding for me.)

Test first, then post? :-)

What? :) If I was productively contributing, I wouldn't be bikeshedding, now would I?

Michael Glaesemann
grzm seespotcode net

#10David E. Wheeler
david@kineticode.com
In reply to: Merlin Moncure (#2)
Re: hstore ==> and deprecate =>

On Jun 8, 2010, at 12:34 PM, Merlin Moncure wrote:

hm. any chance of a shorter operator, like '#'? I kinda agree that
hstore_in and the operator don't have to be the same, but requiring
three letter token for the two most high traffic operations w/hstore
seems off to me.

# is currently used for bitwise xor/geo

Not at all the same.

What about ~> ?

Best,

David

#11Pavel Stehule
pavel.stehule@gmail.com
In reply to: Tom Lane (#5)
Re: hstore ==> and deprecate =>

2010/6/8 Tom Lane <tgl@sss.pgh.pa.us>:

Pavel Stehule <pavel.stehule@gmail.com> writes:

p.s. I hope so in 9.1 will be complete hstore module marked as deprecated

Really?  And replaced with what?  And why wouldn't the replacement use
the same operator names?

We talked about integrated hash tables support.

regards

Pavel

Show quoted text

                       regards, tom lane

#12Bruce Momjian
bruce@momjian.us
In reply to: Robert Haas (#1)
Re: hstore ==> and deprecate =>

On Tue, Jun 8, 2010 at 8:07 PM, Robert Haas <robertmhaas@gmail.com> wrote:

I believe that the consensus was mostly in favor of deprecating => as
an operator name, with the intent to abolish it completely in a future
release.  Attached is a patch to implement ==> as an alternative
operator name for hstore, and to make the backend throw a warning when
=> is used as an operator name.

I don't think we can throw warnings for DML except in the most dire
circumstances. In an OLTP system with high throughput a warning would
fill the logs quickly, effectively making it impossible to use the
syntax being warned about. If we're willing to do that we would just
use an ERROR anyways which I don't think we're willing to do. People
might need a transition period when they still use => because they
need to write code which will work with either old or new versions.

One wart is that => is used not only as a SQL-level operator, but also
by hstore_in() when interpreting hstore-type literals, and by
hstore_out() when generating them.  My gut feeling is that we should
leave this part alone and only muck with the SQL operator, but perhaps
someone will care to argue the point.

I hate these kinds of inconsistencies. I would prefer both operators
be consistent.

--
greg

#13Robert Haas
robertmhaas@gmail.com
In reply to: Bruce Momjian (#12)
Re: hstore ==> and deprecate =>

On Wed, Jun 9, 2010 at 6:41 AM, Greg Stark <gsstark@mit.edu> wrote:

On Tue, Jun 8, 2010 at 8:07 PM, Robert Haas <robertmhaas@gmail.com> wrote:

I believe that the consensus was mostly in favor of deprecating => as
an operator name, with the intent to abolish it completely in a future
release.  Attached is a patch to implement ==> as an alternative
operator name for hstore, and to make the backend throw a warning when
=> is used as an operator name.

I don't think we can throw warnings for DML except in the most dire
circumstances.

The patch doesn't.

One wart is that => is used not only as a SQL-level operator, but also
by hstore_in() when interpreting hstore-type literals, and by
hstore_out() when generating them.  My gut feeling is that we should
leave this part alone and only muck with the SQL operator, but perhaps
someone will care to argue the point.

I hate these kinds of inconsistencies. I would prefer both operators
be consistent.

Sure, me too, but I think this is the best we can do.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company

#14Dimitri Fontaine
dimitri@2ndQuadrant.fr
In reply to: Bruce Momjian (#12)
Re: hstore ==> and deprecate =>

Greg Stark <gsstark@mit.edu> writes:

On Tue, Jun 8, 2010 at 8:07 PM, Robert Haas <robertmhaas@gmail.com> wrote:

I believe that the consensus was mostly in favor of deprecating => as
an operator name, with the intent to abolish it completely in a future
release.  Attached is a patch to implement ==> as an alternative
operator name for hstore, and to make the backend throw a warning when
=> is used as an operator name.

I don't think we can throw warnings for DML except in the most dire
circumstances.

What about a WARNING at CREATE OPERATOR time?

One wart is that => is used not only as a SQL-level operator, but also
by hstore_in() when interpreting hstore-type literals, and by
hstore_out() when generating them.  My gut feeling is that we should
leave this part alone and only muck with the SQL operator, but perhaps
someone will care to argue the point.

I hate these kinds of inconsistencies. I would prefer both operators
be consistent.

dim=# select 'foo' => 'bar', 'foo => bar'::hstore;
?column? | hstore
--------------+--------------
"foo"=>"bar" | "foo"=>"bar"
(1 ligne)

Well it's not an operator in the second case, it's part of the input
"language" of the datatype. So consistency would be good enough if we
had both the legacy input syntax support and the new one, right?

Regards,
--
dim

#15Robert Haas
robertmhaas@gmail.com
In reply to: Dimitri Fontaine (#14)
Re: hstore ==> and deprecate =>

On Wed, Jun 9, 2010 at 6:53 AM, Dimitri Fontaine <dfontaine@hi-media.com> wrote:

Greg Stark <gsstark@mit.edu> writes:

On Tue, Jun 8, 2010 at 8:07 PM, Robert Haas <robertmhaas@gmail.com> wrote:

I believe that the consensus was mostly in favor of deprecating => as
an operator name, with the intent to abolish it completely in a future
release.  Attached is a patch to implement ==> as an alternative
operator name for hstore, and to make the backend throw a warning when
=> is used as an operator name.

I don't think we can throw warnings for DML except in the most dire
circumstances.

What about a WARNING at CREATE OPERATOR time?

That's what the patch I sent already does.

One wart is that => is used not only as a SQL-level operator, but also
by hstore_in() when interpreting hstore-type literals, and by
hstore_out() when generating them.  My gut feeling is that we should
leave this part alone and only muck with the SQL operator, but perhaps
someone will care to argue the point.

I hate these kinds of inconsistencies. I would prefer both operators
be consistent.

dim=# select 'foo' => 'bar', 'foo => bar'::hstore;
  ?column?   |    hstore
--------------+--------------
 "foo"=>"bar" | "foo"=>"bar"
(1 ligne)

Well it's not an operator in the second case, it's part of the input
"language" of the datatype. So consistency would be good enough if we
had both the legacy input syntax support and the new one, right?

I'm not following this part.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company

#16Dimitri Fontaine
dimitri@2ndQuadrant.fr
In reply to: Robert Haas (#15)
Re: hstore ==> and deprecate =>

Robert Haas <robertmhaas@gmail.com> writes:

What about a WARNING at CREATE OPERATOR time?

That's what the patch I sent already does.

Great :)
I read comments in the email instead of the commit…

I'm not following this part.

I'm wondering if deprecating => as an SQL operator, we should too
deprecate its usage in input text for hstore. I don't think so.

--
Dimitri Fontaine
PostgreSQL DBA, Architecte

#17Robert Haas
robertmhaas@gmail.com
In reply to: Dimitri Fontaine (#16)
Re: hstore ==> and deprecate =>

On Wed, Jun 9, 2010 at 9:06 AM, Dimitri Fontaine <dfontaine@hi-media.com> wrote:

Robert Haas <robertmhaas@gmail.com> writes:

What about a WARNING at CREATE OPERATOR time?

That's what the patch I sent already does.

Great :)
I read comments in the email instead of the commit…

I'm not following this part.

I'm wondering if deprecating => as an SQL operator, we should too
deprecate its usage in input text for hstore. I don't think so.

I don't think so, either. The most someone might want to do is make
==> work wherever => does now, but I wouldn't want to start monkeying
with that without some input from Andrew Gierth; and I don't think
it's a stop-ship issue for 9.0.

Unless there is more than one vote for some alternative other than
what I've done here (which so far there isn't), I'm going to add some
docs to this patch and commit it later today. Because the SQL
committee has standardized an incompatible syntax, there are no
perfect alternatives here.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company

#18Andrew Gierth
andrew@tao11.riddles.org.uk
In reply to: Robert Haas (#17)
Re: hstore ==> and deprecate =>

"Robert" == Robert Haas <robertmhaas@gmail.com> writes:

Robert> I don't think so, either. The most someone might want to do
Robert> is make ==> work wherever => does now, but I wouldn't want to
Robert> start monkeying with that without some input from Andrew
Robert> Gierth; and I don't think it's a stop-ship issue for 9.0.

I'd really like to find a better operator name than ==>. But I'm not
convinced one exists.

While I don't like the inconsistency between ==> or whatever and the use
of => in type input and output, I regard the text representation as being
much harder to change safely, since client code will be parsing it. In this
case the inconsistency seems like a much smaller problem than changing the
text representation.

--
Andrew (irc:RhodiumToad)

#19Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#1)
Re: hstore ==> and deprecate =>

Robert Haas <robertmhaas@gmail.com> writes:

+ if (!strcmp(oprName, "=>"))

BTW, project standard is to spell that like

+ if (strcmp(oprName, "=>") == 0)

The other way looks confusingly like a "not equal" test.

+ (errmsg("The use of => as an operator name is deprecated and may be disallowed in a future release.")));

Also, this doesn't follow message style guidelines. Possibly better:

errmsg("=> is deprecated as an operator name"),
errdetail("This name may be disallowed altogether in future versions of PostgreSQL.")

regards, tom lane

#20Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Gierth (#18)
Re: hstore ==> and deprecate =>

Andrew Gierth <andrew@tao11.riddles.org.uk> writes:

I'd really like to find a better operator name than ==>. But I'm not
convinced one exists.

I agree.

While I don't like the inconsistency between ==> or whatever and the use
of => in type input and output, I regard the text representation as being
much harder to change safely, since client code will be parsing it. In this
case the inconsistency seems like a much smaller problem than changing the
text representation.

Perhaps it would be sane to make hstore_in accept either => or ==>, but
not change hstore_out (for now)?

regards, tom lane

#21David E. Wheeler
david@kineticode.com
In reply to: Tom Lane (#20)
#22Robert Haas
robertmhaas@gmail.com
In reply to: David E. Wheeler (#21)
#23Tom Lane
tgl@sss.pgh.pa.us
In reply to: David E. Wheeler (#21)
#24David E. Wheeler
david@kineticode.com
In reply to: Tom Lane (#23)
#25Robert Haas
robertmhaas@gmail.com
In reply to: David E. Wheeler (#24)
#26David E. Wheeler
david@kineticode.com
In reply to: Robert Haas (#25)
#27Andrew Gierth
andrew@tao11.riddles.org.uk
In reply to: Tom Lane (#20)
#28Merlin Moncure
mmoncure@gmail.com
In reply to: David E. Wheeler (#24)
#29Peter Eisentraut
peter_e@gmx.net
In reply to: Robert Haas (#8)
#30Robert Haas
robertmhaas@gmail.com
In reply to: Peter Eisentraut (#29)
#31Peter Eisentraut
peter_e@gmx.net
In reply to: Robert Haas (#30)
#32Peter Eisentraut
peter_e@gmx.net
In reply to: Robert Haas (#3)
#33Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#31)
#34Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#32)
#35David E. Wheeler
david@kineticode.com
In reply to: Tom Lane (#34)
#36Tom Lane
tgl@sss.pgh.pa.us
In reply to: David E. Wheeler (#35)
#37David E. Wheeler
david@kineticode.com
In reply to: Tom Lane (#36)
#38Joseph Adams
joeyadams3.14159@gmail.com
In reply to: Tom Lane (#34)
#39Tom Lane
tgl@sss.pgh.pa.us
In reply to: Joseph Adams (#38)
#40Merlin Moncure
mmoncure@gmail.com
In reply to: Tom Lane (#39)
#41Peter Eisentraut
peter_e@gmx.net
In reply to: Tom Lane (#33)
#42Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#41)
#43Florian Pflug
fgp@phlo.org
In reply to: Tom Lane (#42)
#44David E. Wheeler
david@kineticode.com
In reply to: Tom Lane (#39)
#45David E. Wheeler
david@kineticode.com
In reply to: Florian Pflug (#43)
#46Tom Lane
tgl@sss.pgh.pa.us
In reply to: David E. Wheeler (#44)
#47Tom Lane
tgl@sss.pgh.pa.us
In reply to: David E. Wheeler (#45)
#48Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#47)
#49David E. Wheeler
david@kineticode.com
In reply to: Tom Lane (#47)
#50Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#47)
#51Andrew Gierth
andrew@tao11.riddles.org.uk
In reply to: Tom Lane (#42)
#52Robert Haas
robertmhaas@gmail.com
In reply to: Andrew Gierth (#51)
#53David E. Wheeler
david@kineticode.com
In reply to: Robert Haas (#52)
#54Robert Haas
robertmhaas@gmail.com
In reply to: David E. Wheeler (#53)
#55David E. Wheeler
david@kineticode.com
In reply to: Robert Haas (#54)
#56Robert Haas
robertmhaas@gmail.com
In reply to: David E. Wheeler (#55)
#57David E. Wheeler
david@kineticode.com
In reply to: Robert Haas (#56)
#58Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#56)
#59David E. Wheeler
david@kineticode.com
In reply to: Tom Lane (#58)
#60Tom Lane
tgl@sss.pgh.pa.us
In reply to: David E. Wheeler (#59)
#61David E. Wheeler
david@kineticode.com
In reply to: Tom Lane (#60)
#62Florian Pflug
fgp@phlo.org
In reply to: David E. Wheeler (#61)
#63Josh Berkus
josh@agliodbs.com
In reply to: Robert Haas (#56)
#64Robert Haas
robertmhaas@gmail.com
In reply to: Josh Berkus (#63)
#65Josh Berkus
josh@agliodbs.com
In reply to: Robert Haas (#64)
#66David E. Wheeler
david@kineticode.com
In reply to: Josh Berkus (#65)
#67Robert Haas
robertmhaas@gmail.com
In reply to: Josh Berkus (#65)
#68Josh Berkus
josh@agliodbs.com
In reply to: David E. Wheeler (#66)
#69Tom Lane
tgl@sss.pgh.pa.us
In reply to: Josh Berkus (#68)
#70David E. Wheeler
david@kineticode.com
In reply to: Tom Lane (#69)
#71Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#69)
#72Robert Haas
robertmhaas@gmail.com
In reply to: Andrew Dunstan (#71)
#73Josh Berkus
josh@agliodbs.com
In reply to: Tom Lane (#69)
#74David E. Wheeler
david@kineticode.com
In reply to: Josh Berkus (#73)
#75Bruce Momjian
bruce@momjian.us
In reply to: David E. Wheeler (#74)
#76David E. Wheeler
david@kineticode.com
In reply to: Bruce Momjian (#75)
#77Bruce Momjian
bruce@momjian.us
In reply to: David E. Wheeler (#76)
#78David E. Wheeler
david@kineticode.com
In reply to: Florian Pflug (#62)
#79Robert Haas
robertmhaas@gmail.com
In reply to: David E. Wheeler (#78)
#80Tom Lane
tgl@sss.pgh.pa.us
In reply to: David E. Wheeler (#78)
#81David E. Wheeler
david@kineticode.com
In reply to: Robert Haas (#79)
#82Josh Berkus
josh@agliodbs.com
In reply to: David E. Wheeler (#81)
#83Tom Lane
tgl@sss.pgh.pa.us
In reply to: Josh Berkus (#82)
#84David E. Wheeler
david@kineticode.com
In reply to: Tom Lane (#83)
#85Robert Haas
robertmhaas@gmail.com
In reply to: David E. Wheeler (#84)
#86David E. Wheeler
david@kineticode.com
In reply to: Robert Haas (#85)
#87Robert Haas
robertmhaas@gmail.com
In reply to: David E. Wheeler (#86)
#88David E. Wheeler
david@kineticode.com
In reply to: Robert Haas (#87)
#89Robert Haas
robertmhaas@gmail.com
In reply to: David E. Wheeler (#88)
#90David E. Wheeler
david@kineticode.com
In reply to: Robert Haas (#89)
#91Tom Lane
tgl@sss.pgh.pa.us
In reply to: David E. Wheeler (#86)
#92Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#91)
#93Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#92)
#94Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#93)