7.4Beta

Started by Peter Childsover 22 years ago99 messageshackersgeneral
Jump to latest
#1Peter Childs
blue.dragon@blueyonder.co.uk
hackersgeneral

Just loaded up 7.4Beta on a test system, to try and work out what the major
changes are/improvements.... I also started up pg_vacuum as this is now
working very well on our semi-live system (semi-live because we have not
finished developing the system yet.....)
Anyway. After trying to throw our 7.3 config file at it and it crashed badly
I resorted to the defaults. some of the settings in the config file have
changed. (Can somone make the config files backward compatable so at least
they ignor depricated settings!)
I throw last nights backup at it. Data went in in about 1/2 an hour then the
constraints went in and they took at age. about 2 hours.....
Is there anyway to speed up the database constraint code? Because quite
frankly at the current speed your probably better off without the
constraints.... (Same problem with 7.3 come to think about it.)
Otherwise 7.4. seams fine.
Question, when is replication and rolling backup comming. I want to be able
to take the last backup and a list of all the updates since then and get back
to the current database quickly.

Peter Childs

#2Bruce Momjian
bruce@momjian.us
In reply to: Peter Childs (#1)
hackersgeneral
Re: [GENERAL] 7.4Beta

[ Beta discussion moved to hackers.]

Peter Childs wrote:

Just loaded up 7.4Beta on a test system, to try and work out what the major
changes are/improvements.... I also started up pg_vacuum as this is now
working very well on our semi-live system (semi-live because we have not
finished developing the system yet.....)
Anyway. After trying to throw our 7.3 config file at it and it crashed badly
I resorted to the defaults. some of the settings in the config file have
changed. (Can somone make the config files backward compatable so at least
they ignor depricated settings!)

There will be a lost of config name and other changes in a special
section soon.

I throw last nights backup at it. Data went in in about 1/2 an hour then the
constraints went in and they took at age. about 2 hours.....
Is there anyway to speed up the database constraint code? Because quite
frankly at the current speed your probably better off without the
constraints.... (Same problem with 7.3 come to think about it.)
Otherwise 7.4. seams fine.
Question, when is replication and rolling backup comming. I want to be able
to take the last backup and a list of all the updates since then and get back
to the current database quickly.

Rolling backups should be in 7.5, I hope.

-- 
  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
#3Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Bruce Momjian (#2)
hackersgeneral
Re: [GENERAL] 7.4Beta

I throw last nights backup at it. Data went in in about 1/2 an hour then

the

constraints went in and they took at age. about 2 hours.....
Is there anyway to speed up the database constraint code? Because quite
frankly at the current speed your probably better off without the
constraints.... (Same problem with 7.3 come to think about it.)

I can also attest to the horrendously long time it takes to restore the ADD
FOREIGN KEY section...

Chris

#4Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Christopher Kings-Lynne (#3)
hackersgeneral
Re: [GENERAL] 7.4Beta

On Fri, 15 Aug 2003, Christopher Kings-Lynne wrote:

I throw last nights backup at it. Data went in in about 1/2 an hour then

the

constraints went in and they took at age. about 2 hours.....
Is there anyway to speed up the database constraint code? Because quite
frankly at the current speed your probably better off without the
constraints.... (Same problem with 7.3 come to think about it.)

I can also attest to the horrendously long time it takes to restore the ADD
FOREIGN KEY section...

That really needs to be rewritten to do a single check over the table
rather than running the constraint for every row. I keep meaning to get
around to it and never actually do. :( I'm not sure that in practice
you'll get a better plan at restore time depending on what the default
statistics give you.

#5Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Stephan Szabo (#4)
hackersgeneral
Re: [GENERAL] 7.4Beta

I can also attest to the horrendously long time it takes to restore the

ADD

FOREIGN KEY section...

That really needs to be rewritten to do a single check over the table
rather than running the constraint for every row. I keep meaning to get
around to it and never actually do. :( I'm not sure that in practice
you'll get a better plan at restore time depending on what the default
statistics give you.

Surely in the default case it would reduce to using the new hashed IN()
feature, so it'd be a lot faster?

Chris

#6Gavin Sherry
swm@linuxworld.com.au
In reply to: Stephan Szabo (#4)
hackersgeneral
Re: [GENERAL] 7.4Beta

On Thu, 14 Aug 2003, Stephan Szabo wrote:

That really needs to be rewritten to do a single check over the table
rather than running the constraint for every row. I keep meaning to get
around to it and never actually do. :( I'm not sure that in practice
you'll get a better plan at restore time depending on what the default
statistics give you.

Perhaps it would be easier to allow SKIP VALIDATION (or something) with
ALTER TABLE ADD .... which can set FkConstraint->skip_validation. If we're
just handling pg_dump output, then presumably the data is already
validated. On the other handle, it might encourage users to bypass FKs
when they feel like it...

Thanks,

Gavin

#7Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Christopher Kings-Lynne (#5)
hackersgeneral
Re: [GENERAL] 7.4Beta

On Fri, 15 Aug 2003, Christopher Kings-Lynne wrote:

I can also attest to the horrendously long time it takes to restore the

ADD

FOREIGN KEY section...

That really needs to be rewritten to do a single check over the table
rather than running the constraint for every row. I keep meaning to get
around to it and never actually do. :( I'm not sure that in practice
you'll get a better plan at restore time depending on what the default
statistics give you.

Surely in the default case it would reduce to using the new hashed IN()
feature, so it'd be a lot faster?

If we wrote the query using IN that'd be the hope (I've not played with it
enough to guarantee that)

However, on a simple test comparing

select * from fk where not exists(select * from pk where pk.key=fk.key)
and key is not null;
(doing seq scan/subplan doing index scan - which is probably close to the
current system)

and
select * from fk where key in (select key from pk) and key is not null

on a pk table with 100k rows and fk table with 1m rows gives me a
difference of about 2x on my machine.

But that's with a single column int4 key, I haven't tried multi-column
keys or larger key types.

#8Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Gavin Sherry (#6)
hackersgeneral
Re: [GENERAL] 7.4Beta

On Fri, 15 Aug 2003, Gavin Sherry wrote:

On Thu, 14 Aug 2003, Stephan Szabo wrote:

That really needs to be rewritten to do a single check over the table
rather than running the constraint for every row. I keep meaning to get
around to it and never actually do. :( I'm not sure that in practice
you'll get a better plan at restore time depending on what the default
statistics give you.

Perhaps it would be easier to allow SKIP VALIDATION (or something) with
ALTER TABLE ADD .... which can set FkConstraint->skip_validation. If we're
just handling pg_dump output, then presumably the data is already
validated. On the other handle, it might encourage users to bypass FKs
when they feel like it...

We've talked about stuff like that in the past, but we seem to generally
get stuck about how to specify it. If we add it to the alter table add as
an option then we're generating statements that are almost like a standard
sql statement, but not quite, and some people didn't like that. A set
option that only affected ALTER TABLE ADD CONSTRAINT wouldn't be too bad,
but I'd be worried about making it apply to the normal checks as well
(which I believe was suggested last time this came up). In any case,
making the full checks faster for when you really do care isn't a bad
plan. :)

#9Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Stephan Szabo (#8)
hackersgeneral
Re: [GENERAL] 7.4Beta

We've talked about stuff like that in the past, but we seem to generally
get stuck about how to specify it. If we add it to the alter table add as
an option then we're generating statements that are almost like a standard
sql statement, but not quite, and some people didn't like that. A set
option that only affected ALTER TABLE ADD CONSTRAINT wouldn't be too bad,
but I'd be worried about making it apply to the normal checks as well
(which I believe was suggested last time this came up). In any case,
making the full checks faster for when you really do care isn't a bad
plan. :)

How about having an 'i'm restoring' SET var:

SET data_restore = true;

Which means (among other things) that FK's aren't checked?

Chris

#10Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Stephan Szabo (#8)
hackersgeneral
Re: [GENERAL] 7.4Beta

We've talked about stuff like that in the past, but we seem to generally
get stuck about how to specify it. If we add it to the alter table add as
an option then we're generating statements that are almost like a standard
sql statement, but not quite, and some people didn't like that. A set
option that only affected ALTER TABLE ADD CONSTRAINT wouldn't be too bad,
but I'd be worried about making it apply to the normal checks as well
(which I believe was suggested last time this came up). In any case,
making the full checks faster for when you really do care isn't a bad
plan. :)

Or, this:

1. Add the FK to the table BEFORE COPYing data
2. Use the old update blah set reltriggers = 0 trick
3. restore the data
4. Undo step 2

Chris

#11Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Christopher Kings-Lynne (#10)
hackersgeneral
Re: [GENERAL] 7.4Beta

On Fri, 15 Aug 2003, Christopher Kings-Lynne wrote:

We've talked about stuff like that in the past, but we seem to generally
get stuck about how to specify it. If we add it to the alter table add as
an option then we're generating statements that are almost like a standard
sql statement, but not quite, and some people didn't like that. A set
option that only affected ALTER TABLE ADD CONSTRAINT wouldn't be too bad,
but I'd be worried about making it apply to the normal checks as well
(which I believe was suggested last time this came up). In any case,
making the full checks faster for when you really do care isn't a bad
plan. :)

Or, this:

1. Add the FK to the table BEFORE COPYing data
2. Use the old update blah set reltriggers = 0 trick
3. restore the data
4. Undo step 2

The problem with that is that I think the reltriggers=0 trick only works
if you're superuser, I thought that's why the trigger disabling became
optional. A set that affected only atac would probably be reasonable in
the dump (and presumably easy to do). It'd also carry over to future
cases where we separate some check constraints (for examples ones
that refer directly or indirectly to the same table in a subselect).

#12Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Stephan Szabo (#11)
hackersgeneral
Re: [GENERAL] 7.4Beta

1. Add the FK to the table BEFORE COPYing data
2. Use the old update blah set reltriggers = 0 trick
3. restore the data
4. Undo step 2

The problem with that is that I think the reltriggers=0 trick only works
if you're superuser, I thought that's why the trigger disabling became
optional. A set that affected only atac would probably be reasonable in
the dump (and presumably easy to do). It'd also carry over to future
cases where we separate some check constraints (for examples ones
that refer directly or indirectly to the same table in a subselect).

Well yes, this would be a super-user only ability. Are you worried about
people restoring dumps as non-superuser?

Chris

#13Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Christopher Kings-Lynne (#12)
hackersgeneral
Re: [GENERAL] 7.4Beta

On Fri, 15 Aug 2003, Christopher Kings-Lynne wrote:

1. Add the FK to the table BEFORE COPYing data
2. Use the old update blah set reltriggers = 0 trick
3. restore the data
4. Undo step 2

The problem with that is that I think the reltriggers=0 trick only works
if you're superuser, I thought that's why the trigger disabling became
optional. A set that affected only atac would probably be reasonable in
the dump (and presumably easy to do). It'd also carry over to future
cases where we separate some check constraints (for examples ones
that refer directly or indirectly to the same table in a subselect).

Well yes, this would be a super-user only ability. Are you worried about
people restoring dumps as non-superuser?

Basically, yes (you might dump only some tables that you own for example).
I think that's why the data only dumps no longer do the reltriggers thing
by default and you need an option to get at it. We could make a similar
option for this case, but it'd only work when restored by a superuser.

#14Andreas Pflug
pgadmin@pse-consulting.de
In reply to: Stephan Szabo (#4)
hackersgeneral
Re: [GENERAL] 7.4Beta

Stephan Szabo wrote:

On Fri, 15 Aug 2003, Christopher Kings-Lynne wrote:

I throw last nights backup at it. Data went in in about 1/2 an hour then

the

constraints went in and they took at age. about 2 hours.....
Is there anyway to speed up the database constraint code? Because quite
frankly at the current speed your probably better off without the
constraints.... (Same problem with 7.3 come to think about it.)

I can also attest to the horrendously long time it takes to restore the ADD
FOREIGN KEY section...

That really needs to be rewritten to do a single check over the table
rather than running the constraint for every row. I keep meaning to get
around to it and never actually do. :( I'm not sure that in practice
you'll get a better plan at restore time depending on what the default
statistics give you.

This is clearly a case for a statement level trigger, as soon as
affected rows can be identified.
One remark on that enable/disable triggers stuff: from a user's
perspective, I wouldn't consider a constraint trigger as a trigger, so
if I'd disable all triggers on a table, I still would expect all
constraints to be checked.

Regards,
Andreas

#15Tom Lane
tgl@sss.pgh.pa.us
In reply to: Stephan Szabo (#4)
hackersgeneral
ADD FOREIGN KEY (was Re: [GENERAL] 7.4Beta)

Stephan Szabo <sszabo@megazone.bigpanda.com> writes:

On Fri, 15 Aug 2003, Christopher Kings-Lynne wrote:

I can also attest to the horrendously long time it takes to restore the ADD
FOREIGN KEY section...

That really needs to be rewritten to do a single check over the table
rather than running the constraint for every row. I keep meaning to get
around to it and never actually do. :( I'm not sure that in practice
you'll get a better plan at restore time depending on what the default
statistics give you.

In simple cases I think that the creation of indexes would be enough to
get you a passable plan --- CREATE INDEX does update pg_class.reltuples,
so the planner will know how big the tables are, and for single-column
primary keys the existence of a unique index is enough to cue the
planner that the column is unique, even without any ANALYZE stats.
Those are the biggest levers on the plan choice.

This assumes that pg_dump always dumps CREATE INDEX before ADD FOREIGN
KEY; I'm not certain if there's anything to enforce that at the
moment...

I assume what you have in mind is to replace
validateForeignKeyConstraint() with something that does a join of the
two tables via an SPI command. But supposing that we want to keep the
present ability to report (one of) the failing key values, it seems
like the query has to look like
SELECT keycolumns FROM referencing_table WHERE
keycolumns NOT IN (SELECT refcols FROM referenced_table);
which is only gonna do the right thing for one of the MATCH styles
(not sure which, offhand ... actually it may not do the right thing
for any match style if there are nulls in referenced_table ...).
How would you make it work for all the MATCH styles? And will it
really be all that efficient? (NOT IN is a lot more circumscribed
than IN.)

regards, tom lane

#16Tom Lane
tgl@sss.pgh.pa.us
In reply to: Stephan Szabo (#7)
hackersgeneral
Re: [GENERAL] 7.4Beta

Stephan Szabo <sszabo@megazone.bigpanda.com> writes:

select * from fk where not exists(select * from pk where pk.key=fk.key)
and key is not null;
(doing seq scan/subplan doing index scan - which is probably close to the
current system)

Actually, even that would probably be noticeably better than the current
system. I haven't profiled it (someone should) but I suspect that
executor startup/shutdown time is a huge hit. Even though the trigger
is caching a plan, it has to instantiate that plan for each referencing
tuple --- and the executor is not designed for quick startup/shutdown.

(Of course, this would become less relevant if the triggers got
rewritten to not go through SPI ...)

regards, tom lane

#17Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Tom Lane (#16)
hackersgeneral
Re: [GENERAL] 7.4Beta

On Fri, 15 Aug 2003, Tom Lane wrote:

Stephan Szabo <sszabo@megazone.bigpanda.com> writes:

select * from fk where not exists(select * from pk where pk.key=fk.key)
and key is not null;
(doing seq scan/subplan doing index scan - which is probably close to the
current system)

Actually, even that would probably be noticeably better than the current
system. I haven't profiled it (someone should) but I suspect that
executor startup/shutdown time is a huge hit. Even though the trigger
is caching a plan, it has to instantiate that plan for each referencing
tuple --- and the executor is not designed for quick startup/shutdown.

Yeah, but it was pretty much the best I could do testing on the command
line. And it was still a fair bit more expensive than using IN (my tests
on various key types showed anywhere from 15% to 300% better speed on IN
over exists for this).

#18Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Andreas Pflug (#14)
hackersgeneral
Re: [GENERAL] 7.4Beta

On Fri, 15 Aug 2003, Andreas Pflug wrote:

Stephan Szabo wrote:

That really needs to be rewritten to do a single check over the table
rather than running the constraint for every row. I keep meaning to get
around to it and never actually do. :( I'm not sure that in practice
you'll get a better plan at restore time depending on what the default
statistics give you.

This is clearly a case for a statement level trigger, as soon as
affected rows can be identified.

Well, I think single inserts might be more expensive (because the query is
more involved for the table joining case) using a statement level trigger,
so we'd probably want to profile the cases.

#19Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Tom Lane (#15)
hackersgeneral
Re: ADD FOREIGN KEY (was Re: [GENERAL] 7.4Beta)

On Fri, 15 Aug 2003, Tom Lane wrote:

Stephan Szabo <sszabo@megazone.bigpanda.com> writes:

On Fri, 15 Aug 2003, Christopher Kings-Lynne wrote:

I can also attest to the horrendously long time it takes to restore the ADD
FOREIGN KEY section...

That really needs to be rewritten to do a single check over the table
rather than running the constraint for every row. I keep meaning to get
around to it and never actually do. :( I'm not sure that in practice
you'll get a better plan at restore time depending on what the default
statistics give you.

In simple cases I think that the creation of indexes would be enough to
get you a passable plan --- CREATE INDEX does update pg_class.reltuples,
so the planner will know how big the tables are, and for single-column
primary keys the existence of a unique index is enough to cue the
planner that the column is unique, even without any ANALYZE stats.
Those are the biggest levers on the plan choice.

This assumes that pg_dump always dumps CREATE INDEX before ADD FOREIGN
KEY; I'm not certain if there's anything to enforce that at the
moment...

I assume what you have in mind is to replace
validateForeignKeyConstraint() with something that does a join of the
two tables via an SPI command. But supposing that we want to keep the
present ability to report (one of) the failing key values, it seems
like the query has to look like
SELECT keycolumns FROM referencing_table WHERE
keycolumns NOT IN (SELECT refcols FROM referenced_table);
which is only gonna do the right thing for one of the MATCH styles
(not sure which, offhand ... actually it may not do the right thing
for any match style if there are nulls in referenced_table ...).

Yes, in practice, you'd have to put IS NOT NULL checks in the subselect,
which is fine for the two match types we support since a referenced row
with a NULL isn't a choice for a referenced row for those. I think MATCH
PARTIAL might have to fall back to the repeated check unless we can make
the query work which would be harder because you only want to compare the
columns for a particular row where the keycolumn case is not null and I
can't think of a query for that that'd be particularly clean and likely to
be fast, then again I don't think the constraint would be either. :(

It'd probably be:
MATCH unspecified:
SELECT keycolumns FROM referencing_table WHERE
(keycolumns) NOT IN (SELECT refcols FROM referenced_table
WHERE refcol1 IS NOT NULL AND ... )
AND keycolumn1 IS NOT NULL AND ...;

MATCH FULL: (something like, I haven't tried it)
SELECT keycolumns FROM referencing_table WHERE
((keycolumns) NOT IN (SELECT refcols FROM referenced_table
WHERE refcol1 IS NOT NULL AND ...)
AND
(keycolumn1 IS NOT NULL AND ...)
)
OR ((keycolumn1 IS NOT NULL)!=(keycolumn2 IS NOT NULL) OR ...)

How would you make it work for all the MATCH styles? And will it
really be all that efficient? (NOT IN is a lot more circumscribed
than IN.)

I'm not really sure yet. Limited tests seem to show that it'll probably
be as fast if not faster for all reasonable cases, but I'd want to
generate a much larger random data set and actually put it in to make a
fair comparison (maybe temporarily with a set to allow people to try both
cases on real world data). One other advantage here is that we don't need
to get row locks while checking this if we've already gotten the exclusive
table locks on both tables involved. I'm not sure if we do that currently
though.

#20Andreas Pflug
pgadmin@pse-consulting.de
In reply to: Stephan Szabo (#18)
hackersgeneral
Re: [GENERAL] 7.4Beta

Stephan Szabo wrote:

On Fri, 15 Aug 2003, Andreas Pflug wrote:

Stephan Szabo wrote:

That really needs to be rewritten to do a single check over the table
rather than running the constraint for every row. I keep meaning to get
around to it and never actually do. :( I'm not sure that in practice
you'll get a better plan at restore time depending on what the default
statistics give you.

This is clearly a case for a statement level trigger, as soon as
affected rows can be identified.

Well, I think single inserts might be more expensive (because the query is
more involved for the table joining case) using a statement level trigger,
so we'd probably want to profile the cases.

This really depends. If a constraint is just a check on the
inserted/updated column, so no other row needs to be checked, there's no
faster way then the current row trigger. But FK constraints need to
execute a query to retrieve the referenced row, and every RDBMS prefers
to execute a single statement with many rows over many statements with a
single row, because the first will profit from optimization. And even if
only a single row is inserted or updated, there's still the need to
lookup the reference.

Regards,
Andreas

#21Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Andreas Pflug (#20)
hackersgeneral
#22Jan Wieck
JanWieck@Yahoo.com
In reply to: Tom Lane (#16)
hackersgeneral
#23Andreas Pflug
pgadmin@pse-consulting.de
In reply to: Stephan Szabo (#21)
hackersgeneral
#24Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Andreas Pflug (#23)
hackersgeneral
#25Andreas Pflug
pgadmin@pse-consulting.de
In reply to: Stephan Szabo (#24)
hackersgeneral
#26Dann Corbit
DCorbit@connx.com
In reply to: Andreas Pflug (#25)
hackers
#27Andreas Pflug
pgadmin@pse-consulting.de
In reply to: Dann Corbit (#26)
hackers
#28Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jan Wieck (#22)
hackersgeneral
#29Dann Corbit
DCorbit@connx.com
In reply to: Tom Lane (#28)
hackers
#30Andreas Pflug
pgadmin@pse-consulting.de
In reply to: Dann Corbit (#29)
hackers
#31Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#28)
hackersgeneral
#32Jan Wieck
JanWieck@Yahoo.com
In reply to: Bruce Momjian (#31)
hackersgeneral
#33Tom Lane
tgl@sss.pgh.pa.us
In reply to: Stephan Szabo (#19)
hackersgeneral
#34Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Tom Lane (#33)
hackersgeneral
#35Bruce Momjian
bruce@momjian.us
In reply to: Stephan Szabo (#34)
hackersgeneral
#36Tom Lane
tgl@sss.pgh.pa.us
In reply to: Stephan Szabo (#34)
hackersgeneral
#37Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Tom Lane (#36)
hackersgeneral
#38Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Bruce Momjian (#35)
hackersgeneral
#39Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#36)
hackersgeneral
#40Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#39)
hackersgeneral
#41Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#40)
hackersgeneral
#42Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#41)
hackersgeneral
#43Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#42)
hackersgeneral
#44Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Bruce Momjian (#43)
hackersgeneral
#45Bruce Momjian
bruce@momjian.us
In reply to: Christopher Kings-Lynne (#44)
hackersgeneral
#46Tom Lane
tgl@sss.pgh.pa.us
In reply to: Christopher Kings-Lynne (#44)
hackersgeneral
#47Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Tom Lane (#46)
hackersgeneral
#48Andreas Pflug
pgadmin@pse-consulting.de
In reply to: Christopher Kings-Lynne (#44)
hackersgeneral
#49Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Andreas Pflug (#48)
hackersgeneral
#50Hannu Krosing
hannu@tm.ee
In reply to: Andreas Pflug (#48)
hackersgeneral
#51Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Hannu Krosing (#50)
hackersgeneral
#52Shridhar Daithankar
shridhar_daithankar@persistent.co.in
In reply to: Christopher Kings-Lynne (#51)
hackersgeneral
#53Nigel J. Andrews
nandrews@investsystems.co.uk
In reply to: Christopher Kings-Lynne (#49)
hackersgeneral
#54Hannu Krosing
hannu@tm.ee
In reply to: Shridhar Daithankar (#52)
hackersgeneral
#55Andreas Pflug
pgadmin@pse-consulting.de
In reply to: Nigel J. Andrews (#53)
hackersgeneral
#56Bruce Momjian
bruce@momjian.us
In reply to: Nigel J. Andrews (#53)
hackersgeneral
#57Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Tom Lane (#36)
hackersgeneral
#58Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Stephan Szabo (#57)
hackersgeneral
#59Tom Lane
tgl@sss.pgh.pa.us
In reply to: Stephan Szabo (#57)
hackersgeneral
#60Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Tom Lane (#59)
hackersgeneral
#61Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Tom Lane (#59)
hackersgeneral
#62Andreas Pflug
pgadmin@pse-consulting.de
In reply to: Bruce Momjian (#56)
hackersgeneral
#63Tom Lane
tgl@sss.pgh.pa.us
In reply to: Stephan Szabo (#61)
hackersgeneral
#64Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Tom Lane (#63)
hackersgeneral
#65Jan Wieck
JanWieck@Yahoo.com
In reply to: Tom Lane (#46)
hackersgeneral
#66Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Tom Lane (#63)
hackersgeneral
#67Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jan Wieck (#65)
hackersgeneral
#68Jan Wieck
JanWieck@Yahoo.com
In reply to: Tom Lane (#67)
hackersgeneral
#69Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Shridhar Daithankar (#52)
hackersgeneral
#70Bruce Momjian
bruce@momjian.us
In reply to: Jan Wieck (#68)
hackersgeneral
#71Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#70)
hackersgeneral
#72Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Bruce Momjian (#70)
hackersgeneral
#73Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#71)
hackersgeneral
#74Bruce Momjian
bruce@momjian.us
In reply to: Stephan Szabo (#72)
hackersgeneral
#75Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#73)
hackersgeneral
#76Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#74)
hackersgeneral
#77Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Bruce Momjian (#74)
hackersgeneral
#78Chris Browne
cbbrowne@acm.org
In reply to: Bruce Momjian (#73)
hackersgeneral
#79Bruce Momjian
bruce@momjian.us
In reply to: Stephan Szabo (#77)
hackersgeneral
#80Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#75)
hackersgeneral
#81Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#76)
hackersgeneral
#82Andreas Pflug
pgadmin@pse-consulting.de
In reply to: Bruce Momjian (#73)
hackersgeneral
#83Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#80)
hackersgeneral
#84Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#81)
hackersgeneral
#85Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#79)
hackersgeneral
#86Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Tom Lane (#85)
hackersgeneral
#87Tom Lane
tgl@sss.pgh.pa.us
In reply to: Stephan Szabo (#86)
hackersgeneral
#88Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Tom Lane (#87)
hackersgeneral
#89Jan Wieck
JanWieck@Yahoo.com
In reply to: Stephan Szabo (#86)
hackersgeneral
#90Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Jan Wieck (#89)
hackersgeneral
#91Jan Wieck
JanWieck@Yahoo.com
In reply to: Stephan Szabo (#90)
hackersgeneral
#92Manfred Koizar
mkoi-pg@aon.at
In reply to: Chris Browne (#78)
hackersgeneral
#93Chris Browne
cbbrowne@acm.org
In reply to: Bruce Momjian (#73)
hackersgeneral
#94Tom Lane
tgl@sss.pgh.pa.us
In reply to: Manfred Koizar (#92)
hackersgeneral
#95Bruce Momjian
bruce@momjian.us
In reply to: Chris Browne (#93)
hackersgeneral
#96Bruce Momjian
bruce@momjian.us
In reply to: Jan Wieck (#91)
hackersgeneral
#97Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Bruce Momjian (#96)
hackersgeneral
#98Bruce Momjian
bruce@momjian.us
In reply to: Christopher Kings-Lynne (#97)
hackersgeneral
#99Jan Wieck
JanWieck@Yahoo.com
In reply to: Bruce Momjian (#98)
hackersgeneral