Numeric 508 datatype

Started by Simon Riggsalmost 21 years ago82 messageshackersgeneralpatches
Jump to latest
#1Simon Riggs
simon@2ndQuadrant.com
hackersgeneralpatches

Now we're into 8.2devel mode, its time to submit the previously
discussed patch that:

- reduces Numeric storage format by 2 bytes
- limits scale to +/- 508 decimal places

This is sufficient to allow Numeric to continue to be used as the
default numeric representation for all numbers in the parser.

Passes: make check on cvstip, as well as some tests not in there.

Code comments explain the new format and consequences.

As previously agreed, reviewing this is a 2 stage process:
1. review/possibly agree OK to commit
2. check with everybody on GENERAL that the restriction to 508 is
acceptable

Figure there's no point doing (2) until we agree the proposal/code is
workable.

As Atsushi-san point out, there is also come CPU optimization to be done
on Numeric comparison, and also on other areas such as aggregation. I've
not done this yet.

Best Regards, Simon Riggs

Attachments:

num508.patchtext/x-patch; charset=UTF-8; name=num508.patchDownload+266-193
#2Andreas Pflug
pgadmin@pse-consulting.de
In reply to: Simon Riggs (#1)
hackersgeneralpatches
Re: Numeric 508 datatype

Simon Riggs wrote:

Now we're into 8.2devel mode, its time to submit the previously
discussed patch that:

- reduces Numeric storage format by 2 bytes

This makes the often discussed binary upgrade impossible, so I wonder if
two bytes savings are worth the trouble.

Regards,
Andreas

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andreas Pflug (#2)
hackersgeneralpatches
Re: Numeric 508 datatype

Andreas Pflug <pgadmin@pse-consulting.de> writes:

Simon Riggs wrote:

Now we're into 8.2devel mode, its time to submit the previously
discussed patch that:
- reduces Numeric storage format by 2 bytes

This makes the often discussed binary upgrade impossible, so I wonder if
two bytes savings are worth the trouble.

Unless someone actually steps forward and produces a working pg_upgrade
in the 8.2 timeframe, this objection is moot.

regards, tom lane

#4Andreas Pflug
pgadmin@pse-consulting.de
In reply to: Tom Lane (#3)
hackersgeneralpatches
Re: Numeric 508 datatype

Tom Lane wrote:

Andreas Pflug <pgadmin@pse-consulting.de> writes:

Simon Riggs wrote:

Now we're into 8.2devel mode, its time to submit the previously
discussed patch that:
- reduces Numeric storage format by 2 bytes

This makes the often discussed binary upgrade impossible, so I wonder if
two bytes savings are worth the trouble.

Unless someone actually steps forward and produces a working pg_upgrade
in the 8.2 timeframe, this objection is moot.

Hm, so if this patch is applied now, and in 5 months or so somebody
implements pg_upgrade, this numeric storage patch would be rolled back?
OTOH, an upgrade mechanism that's compatible for future 8.3+ versions
only seems not too attractive.
A solution might be to keep the current numeric implementation under a
different name (deprecatednumeric or so), for backward compatibility
(this should apply to future storage format changes as well).

Regards,
Andreas

#5Joshua D. Drake
jd@commandprompt.com
In reply to: Andreas Pflug (#4)
hackersgeneralpatches
Re: Numeric 508 datatype

Hm, so if this patch is applied now, and in 5 months or so somebody
implements pg_upgrade, this numeric storage patch would be rolled back?
OTOH, an upgrade mechanism that's compatible for future 8.3+ versions
only seems not too attractive.

With Slony and Replicator I don't really see the need for in place
upgrades.

Joshua D. Drake

Show quoted text

A solution might be to keep the current numeric implementation under a
different name (deprecatednumeric or so), for backward compatibility
(this should apply to future storage format changes as well).

Regards,
Andreas

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match

#6Dave Page
dpage@pgadmin.org
In reply to: Joshua D. Drake (#5)
patches
Re: Numeric 508 datatype

-----Original Message-----
From: pgsql-patches-owner@postgresql.org
[mailto:pgsql-patches-owner@postgresql.org] On Behalf Of
Joshua D. Drake
Sent: 17 November 2005 15:58
To: Andreas Pflug
Cc: Tom Lane; Simon Riggs; pgsql-patches@postgresql.org
Subject: Re: [PATCHES] Numeric 508 datatype

Hm, so if this patch is applied now, and in 5 months or so somebody
implements pg_upgrade, this numeric storage patch would be

rolled back?

OTOH, an upgrade mechanism that's compatible for future

8.3+ versions

only seems not too attractive.

With Slony and Replicator I don't really see the need for in place
upgrades.

They're not exactly easy to setup for the casual user (well, I assume
replicator isn't but it's not relevant to the majority of our users
anyway).

Regards, Dave.

#7Andrew Dunstan
andrew@dunslane.net
In reply to: Joshua D. Drake (#5)
hackersgeneralpatches
Re: Numeric 508 datatype

Joshua D. Drake wrote:

With Slony and Replicator I don't really see the need for in place
upgrades.

Maintaining a replica is hardly a cost-free exercise.

However, I don't think we can promise never to change the ondisk
representation of data, nor the page layout. Sometimes an inplace
upgrade just won't work, ISTM.

cheers

andrew

#8Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#7)
hackersgeneralpatches
Re: Numeric 508 datatype

Andrew Dunstan <andrew@dunslane.net> writes:

However, I don't think we can promise never to change the ondisk
representation of data, nor the page layout. Sometimes an inplace
upgrade just won't work, ISTM.

We have talked about batching on-disk changes so that they'd only occur
once every few release cycles. But until we have a pg_upgrade, there is
no reason to adopt such a policy.

regards, tom lane

#9Simon Riggs
simon@2ndQuadrant.com
In reply to: Tom Lane (#8)
hackersgeneralpatches
Re: Numeric 508 datatype

On Thu, 2005-11-17 at 11:20 -0500, Tom Lane wrote:

Andrew Dunstan <andrew@dunslane.net> writes:

However, I don't think we can promise never to change the ondisk
representation of data, nor the page layout. Sometimes an inplace
upgrade just won't work, ISTM.

We have talked about batching on-disk changes so that they'd only occur
once every few release cycles. But until we have a pg_upgrade, there is
no reason to adopt such a policy.

If the patch is accepted technically, in can be applied at any time,
right up to code freeze for this or the next release. It's a fairly
independent patch.

I'd suggest we check it out now, then put it in a holding pen for awhile
to see if an upgrade tool emerges.

Best Regards, Simon Riggs

#10Tom Lane
tgl@sss.pgh.pa.us
In reply to: Simon Riggs (#9)
hackersgeneralpatches
Re: Numeric 508 datatype

Simon Riggs <simon@2ndquadrant.com> writes:

If the patch is accepted technically, in can be applied at any time,
right up to code freeze for this or the next release. It's a fairly
independent patch.

I'd suggest we check it out now, then put it in a holding pen for awhile
to see if an upgrade tool emerges.

I'm disinclined to do that unless there's a pretty firm commitment from
someone to work on pg_upgrade in the near future. Patches that are not
in the tree tend to suffer from code drift; if we wait six months or a
year to apply what you've done then we'll likely be looking at
significantly more work to get it in. We'd also be losing the direct
and indirect testing that the patch would get were it in the tree over
that length of time.

regards, tom lane

#11Joshua D. Drake
jd@commandprompt.com
In reply to: Dave Page (#6)
patches
Re: Numeric 508 datatype

They're not exactly easy to setup for the casual user (well, I assume
replicator isn't but it's not relevant to the majority of our users
anyway).

Well FYI any half way competent person can set up replicator in 30
minutes or less ;), that said
in place upgrades are a feature that will take up a lot of man power
EVERY release I would think.

I could be wrong but I would rather see the resources put into other things.

J

Show quoted text

Regards, Dave.

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match

#12Andreas Pflug
pgadmin@pse-consulting.de
In reply to: Tom Lane (#8)
hackersgeneralpatches
Re: Numeric 508 datatype

Tom Lane wrote:

Andrew Dunstan <andrew@dunslane.net> writes:

However, I don't think we can promise never to change the ondisk
representation of data, nor the page layout. Sometimes an inplace
upgrade just won't work, ISTM.

We have talked about batching on-disk changes so that they'd only occur
once every few release cycles. But until we have a pg_upgrade, there is
no reason to adopt such a policy.

IMHO such a policy is a _prerequisite_ for somebody to come up
implementing pg_upgrade. Why spend time on pg_upgrade if there's no
policy to support it?

Regards,
Andreas

#13Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Andreas Pflug (#12)
hackersgeneralpatches
Re: Numeric 508 datatype

Andreas Pflug wrote:

Tom Lane wrote:

Andrew Dunstan <andrew@dunslane.net> writes:

However, I don't think we can promise never to change the ondisk
representation of data, nor the page layout. Sometimes an inplace
upgrade just won't work, ISTM.

We have talked about batching on-disk changes so that they'd only occur
once every few release cycles. But until we have a pg_upgrade, there is
no reason to adopt such a policy.

IMHO such a policy is a _prerequisite_ for somebody to come up
implementing pg_upgrade. Why spend time on pg_upgrade if there's no
policy to support it?

Is anybody working or considering to work on pg_upgrade, or is all this
hypothetical? Our past history has seen lots of people offering to work
on pg_upgrade, and none has produced a working version. Is it fair or
useful to impose restrictions on development just because it's remotely
possible that somebody is going to be motivated enough to consider
producing it?

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

#14Andreas Pflug
pgadmin@pse-consulting.de
In reply to: Alvaro Herrera (#13)
hackersgeneralpatches
Re: Numeric 508 datatype

Alvaro Herrera wrote:

Is anybody working or considering to work on pg_upgrade, or is all this
hypothetical? Our past history has seen lots of people offering to work
on pg_upgrade, and none has produced a working version. Is it fair or
useful to impose restrictions on development just because it's remotely
possible that somebody is going to be motivated enough to consider
producing it?

Depends on the impact the restriction imposes. If
stability/scalability/functionality or so is affected, this sounds not
tolerable. If it's about not saving two bytes that have been spoiled for
ages before, or keeping a backward compatibility type, it appears
feasible to me.
Changing on-disk structures at the start of the 8.2 dev cycle is a
guarantee that nobody will implement pg_upgrade for 8.2.

Regards,
Andreas

#15Bruce Momjian
bruce@momjian.us
In reply to: Andreas Pflug (#14)
hackersgeneralpatches
Re: Numeric 508 datatype

Andreas Pflug wrote:

Alvaro Herrera wrote:

Is anybody working or considering to work on pg_upgrade, or is all this
hypothetical? Our past history has seen lots of people offering to work
on pg_upgrade, and none has produced a working version. Is it fair or
useful to impose restrictions on development just because it's remotely
possible that somebody is going to be motivated enough to consider
producing it?

Depends on the impact the restriction imposes. If
stability/scalability/functionality or so is affected, this sounds not
tolerable. If it's about not saving two bytes that have been spoiled for
ages before, or keeping a backward compatibility type, it appears
feasible to me.
Changing on-disk structures at the start of the 8.2 dev cycle is a
guarantee that nobody will implement pg_upgrade for 8.2.

Let's go ahead and apply the patch. While this change isn't very
significant, I bet there will be other changes in 8.2 where we will want
to change the database for a significant benefit, like reducing the
tuple header by 4 bytes by recompressing the four xid/cid fields back
into three.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
#16Andrew Dunstan
andrew@dunslane.net
In reply to: Bruce Momjian (#15)
hackersgeneralpatches
Re: Numeric 508 datatype

Bruce Momjian wrote:

Let's go ahead and apply the patch. While this change isn't very
significant, I bet there will be other changes in 8.2 where we will want
to change the database for a significant benefit, like reducing the
tuple header by 4 bytes by recompressing the four xid/cid fields back
into three.

All of which makes me very uncomfortable about doing 64 bit enums. I am
still trying to think of a better solution.

cheers

andrew

#17Bruce Momjian
bruce@momjian.us
In reply to: Simon Riggs (#1)
hackersgeneralpatches
Re: Numeric 508 datatype

Where are we on this patch? It is ready for the patch queue?

---------------------------------------------------------------------------

Simon Riggs wrote:

Now we're into 8.2devel mode, its time to submit the previously
discussed patch that:

- reduces Numeric storage format by 2 bytes
- limits scale to +/- 508 decimal places

This is sufficient to allow Numeric to continue to be used as the
default numeric representation for all numbers in the parser.

Passes: make check on cvstip, as well as some tests not in there.

Code comments explain the new format and consequences.

As previously agreed, reviewing this is a 2 stage process:
1. review/possibly agree OK to commit
2. check with everybody on GENERAL that the restriction to 508 is
acceptable

Figure there's no point doing (2) until we agree the proposal/code is
workable.

As Atsushi-san point out, there is also come CPU optimization to be done
on Numeric comparison, and also on other areas such as aggregation. I've
not done this yet.

Best Regards, Simon Riggs

[ Attachment, skipping... ]

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
#18Simon Riggs
simon@2ndQuadrant.com
In reply to: Bruce Momjian (#17)
hackersgeneralpatches
Re: Numeric 508 datatype

On Thu, 2005-12-01 at 23:34 -0500, Bruce Momjian wrote:

Where are we on this patch? It is ready for the patch queue?

It's good to be applied, AFAIK.

Simon Riggs wrote:

As previously agreed, reviewing this is a 2 stage process:
1. review/possibly agree OK to commit
2. check with everybody on GENERAL that the restriction to 508 is
acceptable

Figure there's no point doing (2) until we agree the proposal/code is
workable.

I was hoping you'd give me a "this looks good enough to apply"
thumbs-up, then I'll ask for comments via a Weekly News item.

If I ask for comments and then it is technically rejected we would be
wasting everybody's time.

Best Regards, Simon Riggs

#19Bruce Momjian
bruce@momjian.us
In reply to: Simon Riggs (#1)
hackersgeneralpatches
Re: Numeric 508 datatype

Simon Riggs wrote:

Now we're into 8.2devel mode, its time to submit the previously
discussed patch that:

- reduces Numeric storage format by 2 bytes
- limits scale to +/- 508 decimal places

This is sufficient to allow Numeric to continue to be used as the
default numeric representation for all numbers in the parser.

Passes: make check on cvstip, as well as some tests not in there.

Code comments explain the new format and consequences.

As previously agreed, reviewing this is a 2 stage process:
1. review/possibly agree OK to commit
2. check with everybody on GENERAL that the restriction to 508 is
acceptable

Figure there's no point doing (2) until we agree the proposal/code is
workable.

OK, seems all objections have been dealt with so it goes into the patch
queue. I will ask on 'general'.

The only downside I see is that I can't impress people by doing:

SELECT factorial(4000);

I don't suppose the _impression_ factor is worth two bytes per value.
Shame.

I suppose people wanting to do such manipulations will have to store the
numbers as text and use a server-side library like perl to do
calculations.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
#20Bruce Momjian
bruce@momjian.us
In reply to: Bruce Momjian (#19)
hackersgeneralpatches
Re: Numeric 508 datatype

Bruce Momjian wrote:

OK, seems all objections have been dealt with so it goes into the patch
queue. I will ask on 'general'.

The only downside I see is that I can't impress people by doing:

SELECT factorial(4000);

I don't suppose the _impression_ factor is worth two bytes per value.
Shame.

I suppose people wanting to do such manipulations will have to store the
numbers as text and use a server-side library like perl to do
calculations.

Oops, I was wrong about this. The patch changes the maximum _specified_
precision:

/*
! * Hardcoded precision limit - arbitrary, but must be small enough that
! * dscale values will fit in 14 bits.
*/
! #define NUMERIC_MAX_PRECISION 1000

	  /*
	   * Internal limits on the scales chosen for calculation results
	--- 15,23 ----
	  #define _PG_NUMERIC_H_

/*
! * Hardcoded precision limit - maximum that can fit in Numeric storage
*/
! #define NUMERIC_MAX_PRECISION 508

but in fact, our computational precision is 4096, and we silently
overflow for values greater than that:

test=> create table test(x numeric);
CREATE TABLE
test=> insert into test values (factorial(4000));
INSERT 0 1

The length is 4096 digits, and so is factorial(10000) --- clearly wrong.
I now see in the TODO:

* Change NUMERIC to enforce the maximum precision, and increase it

So we are really decreasing the specified precision from 1000 to 508,
and the computational precision from 4096 to 508. Is there any plan to
fix the silent overflow problem? Is that in the patch? I don't see it.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
#21Bruce Momjian
bruce@momjian.us
In reply to: Simon Riggs (#1)
hackersgeneralpatches
#22Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#20)
hackersgeneralpatches
#23Roger Hand
RHand@kailea.com
In reply to: Bruce Momjian (#21)
general
#24Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#22)
hackersgeneralpatches
#25Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#24)
hackersgeneralpatches
#26Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#25)
hackersgeneralpatches
#27Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#26)
hackersgeneralpatches
#28Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#27)
hackersgeneralpatches
#29Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#28)
hackersgeneralpatches
#30Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Bruce Momjian (#28)
hackersgeneralpatches
#31Tom Lane
tgl@sss.pgh.pa.us
In reply to: Alvaro Herrera (#30)
hackersgeneralpatches
#32Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Tom Lane (#31)
hackersgeneralpatches
#33Bruce Momjian
bruce@momjian.us
In reply to: Alvaro Herrera (#32)
hackersgeneralpatches
#34Tom Lane
tgl@sss.pgh.pa.us
In reply to: Alvaro Herrera (#32)
hackersgeneralpatches
#35Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Tom Lane (#34)
hackersgeneralpatches
#36Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#21)
hackersgeneralpatches
#37Tom Lane
tgl@sss.pgh.pa.us
In reply to: Roger Hand (#23)
general
#38Bruce Momjian
bruce@momjian.us
In reply to: Alvaro Herrera (#35)
hackersgeneralpatches
#39Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#38)
hackersgeneralpatches
#40Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#39)
hackersgeneralpatches
#41Simon Riggs
simon@2ndQuadrant.com
In reply to: Bruce Momjian (#28)
hackersgeneralpatches
#42Bruce Momjian
bruce@momjian.us
In reply to: Simon Riggs (#41)
hackersgeneralpatches
#43Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#40)
hackersgeneralpatches
#44Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#43)
hackersgeneralpatches
#45Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#44)
hackersgeneralpatches
#46Michael Fuhr
mike@fuhr.org
In reply to: Tom Lane (#45)
hackersgeneralpatches
#47Bruce Momjian
bruce@momjian.us
In reply to: Michael Fuhr (#46)
hackersgeneralpatches
#48Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#47)
hackersgeneralpatches
#49Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#48)
hackersgeneralpatches
#50Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#49)
hackersgeneralpatches
#51Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#50)
hackersgeneralpatches
#52Bruce Momjian
bruce@momjian.us
In reply to: Bruce Momjian (#47)
hackersgeneralpatches
#53Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#51)
hackersgeneralpatches
#54Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#53)
hackersgeneralpatches
#55Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#54)
hackersgeneralpatches
#56Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#54)
hackersgeneralpatches
#57Tom Lane
tgl@sss.pgh.pa.us
In reply to: Tom Lane (#36)
hackersgeneralpatches
#58Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#56)
hackersgeneralpatches
#59Martijn van Oosterhout
kleptog@svana.org
In reply to: Tom Lane (#57)
hackersgeneralpatches
#60Tom Lane
tgl@sss.pgh.pa.us
In reply to: Martijn van Oosterhout (#59)
hackersgeneralpatches
#61Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#58)
hackersgeneralpatches
#62Bruno Wolff III
bruno@wolff.to
In reply to: Tom Lane (#60)
hackersgeneralpatches
#63Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#61)
hackersgeneralpatches
#64Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#63)
hackersgeneralpatches
#65Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#64)
hackersgeneralpatches
#66Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#58)
hackersgeneralpatches
#67Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#66)
hackersgeneralpatches
#68Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#67)
hackersgeneralpatches
#69Tom Lane
tgl@sss.pgh.pa.us
In reply to: Tom Lane (#68)
hackersgeneralpatches
#70Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#69)
hackersgeneralpatches
#71Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#70)
hackersgeneralpatches
#72John D. Burger
john@mitre.org
In reply to: Bruno Wolff III (#62)
hackersgeneralpatches
#73Bruce Momjian
bruce@momjian.us
In reply to: John D. Burger (#72)
hackersgeneralpatches
#74Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#73)
hackersgeneralpatches
#75Gregory Maxwell
gmaxwell@gmail.com
In reply to: Tom Lane (#74)
hackersgeneralpatches
#76Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#74)
hackersgeneralpatches
#77Michael Fuhr
mike@fuhr.org
In reply to: Bruce Momjian (#76)
hackersgeneralpatches
#78Tom Lane
tgl@sss.pgh.pa.us
In reply to: Michael Fuhr (#77)
hackersgeneralpatches
#79John D. Burger
john@mitre.org
In reply to: Tom Lane (#78)
hackersgeneralpatches
#80Tom Lane
tgl@sss.pgh.pa.us
In reply to: John D. Burger (#79)
hackersgeneralpatches
#81Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#80)
hackersgeneralpatches
#82Jim Nasby
Jim.Nasby@BlueTreble.com
In reply to: John D. Burger (#72)
hackersgeneralpatches