Re: [HACKERS] pg_config

2004-07-20 Thread Peter Eisentraut
Tom Lane wrote:
 I doubt it.  People can always just read the file to see what
 settings are in it, and it's not like nonexperts are going to have a
 variety of different configurations that we're gonna have to ask them
 about. (Even in the Unix world, pg_config is not really needed when
 most people are installing one of a small number of RPM-type
 packages...)

The point of pg_config is not primarily to debug the installation layout 
for us.  pg_config is used in configure scripts to find PostgreSQL 
libraries and header files.  I don't know if Windows users have a 
similar need.

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/


---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: [HACKERS] localhost redux

2004-07-20 Thread Zeugswetter Andreas SB SD

  I don't know if the problem is isolated to just me, but I wanted to 
  suggest that we use a parameter for that, which can be configured in the 
  postgresql.conf, with a default value if it's not set, set to 
  localhost.
 
 I think you should first trace down what the problem really is --- is
 your system just misconfigured or is there some fundamental issue that
 we really ought to answer to?

The trouble on AIX is, that getaddrinfo only does a nameservice lookup,
no /etc/hosts. So if your nameservice does not have localhost ...
Same for `hostname`, if nameservice does not resolve `hostname` ...

Andreas

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


Re: [HACKERS] Point in Time Recovery

2004-07-20 Thread Zeugswetter Andreas SB SD

  Hang on, are you supposed to MOVE or COPY away WAL segments?
 
 Copy.  pg will delete them once they are archived.

Copy. pg will recycle them once they are archived.

Andreas

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


Re: [HACKERS] PITR COPY Failure (was Point in Time Recovery)

2004-07-20 Thread Simon Riggs
On Tue, 2004-07-20 at 05:14, Tom Lane wrote:
 Mark Kirkwood [EMAIL PROTECTED] writes:
  I have been doing some re-testing with CVS HEAD from about 1 hour ago 
  using the simplified example posted previously.
 
  It is quite interesting:

 The problem seems to be that the computation of checkPoint.redo at
 xlog.c lines 4162-4169 (all line numbers are per CVS tip) is not
 allowing for the possibility that XLogInsert will decide it doesn't
 want to split the checkpoint record across XLOG files, and will then
 insert a WASTED_SPACE record to avoid that (see comment and following
 code at lines 758-795).  This wouldn't really matter except that there
 is a safety crosscheck at line 4268 that tries to detect unexpected
 insertions of other records during a shutdown checkpoint.
 
 I think the code in CreateCheckPoint was correct when it was written,
 because we only recently changed XLogInsert to not split records
 across files.  But it's got a boundary-case bug now, which your test
 scenario is able to exercise by making the recovery run try to write
 a shutdown checkpoint exactly at the end of a WAL file segment.
 

Thanks for locating that, I was suspicious of that piece of code, but it
would have taken me longer than this to locate it exactly.

It was clear (to me) that it had to be of this nature, since I've done a
fair amount of recovery testing and not hit anything like that.

 The quick and dirty solution would be to dike out the safety check at
 4268ff.  I don't much care for that, but am too tired right now to work
 out a better answer.  I'm not real sure whether it's better to adjust
 the computation of checkPoint.redo or to smarten the safety check
 ... but one or the other needs to allow for file-end padding, or maybe
 we could hack some update of the state in WasteXLInsertBuffer().  (But
 at some point you have to say this is more trouble than it's worth,
 so maybe we'll end up taking out the safety check.)
 

I'll take a look

 In any case this isn't a fundamental bug, just an insufficiently
 smart safety check.  But thanks for finding it!  As is, the code has
 a nonzero probability of failure in the field :-( and I don't know
 how we'd have tracked it down without a reproducible test case.

All code has a non-zero probability of failure in the field, its just
they don't tell you that usually. The main thing here is that we write
everything we need to write to the logs in the first place. 

If that is true, then the code can always be adjusted or the logs dumped
and re-spliced to recover data.

Definitely: Thanks Mark! Reproducibility is key.

Best regards, Simon Riggs



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


Re: [HACKERS] PITR COPY Failure (was Point in Time Recovery)

2004-07-20 Thread Mark Kirkwood
Great that it's not fundamental - and hopefully with this discovery, the 
probability you mentioned is being squashed towards zero a bit more  :-)

Don't let this early bug detract from what is really a superb piece of work!
regards
Mark
Tom Lane wrote:
In any case this isn't a fundamental bug, just an insufficiently
smart safety check.  But thanks for finding it!  As is, the code has
a nonzero probability of failure in the field :-( and I don't know
how we'd have tracked it down without a reproducible test case.
 

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


Re: [HACKERS] localhost redux

2004-07-20 Thread Gaetano Mendola
Gavin M. Roy wrote:
I have no problem resolving localhost anywhere else on the box, do you 
have any suggestions on finding out if it's a misconfiguration?
Gavin
Are you the users on IRC yesterday night ? He had the same problem, however
he/she had the GUC variable stats_start_collector equal to on in the
configuration file but was shown as off with a SHOW stats_start_collector
inside a psql section.
That GUC variable is resetted to off is the collector doesn't start ?
Regards
Gaetano Mendola


---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?
  http://www.postgresql.org/docs/faqs/FAQ.html


Re: [HACKERS] pg_dump bug fixing

2004-07-20 Thread Harald Fuchs
In article [EMAIL PROTECTED],
Rod Taylor [EMAIL PROTECTED] writes:

 On Mon, 2004-07-19 at 12:36, Josh Berkus wrote:
 Rod,
 
  I think what we want is a clean template without all of the extras that
  template1 has.
 
 We have this, it's called Template0.

 Doesn't work for me. I remove a number of things that are included by
 default in template0, but yes, it's close.

I think pg_dump should do a kind of diff between template1 and the
database in question and include the necessary statements in the dump
to allow pg_restore to replay the diff after it has created the
database from template1.


---(end of broadcast)---
TIP 3: if posting/reading through Usenet, please send an appropriate
  subscribe-nomail command to [EMAIL PROTECTED] so that your
  message can get through to the mailing list cleanly


Re: [HACKERS] pg_config

2004-07-20 Thread Andrew Dunstan
Peter Eisentraut said:
 Tom Lane wrote:
 I doubt it.  People can always just read the file to see what
 settings are in it, and it's not like nonexperts are going to have a
 variety of different configurations that we're gonna have to ask them
 about. (Even in the Unix world, pg_config is not really needed when
 most people are installing one of a small number of RPM-type
 packages...)

ISTM that if it's not useful we should rip it out and if it is then we
should make it portable.


 The point of pg_config is not primarily to debug the installation
 layout  for us.  pg_config is used in configure scripts to find
 PostgreSQL  libraries and header files.

To that extent is it not broken by relocated installations that we have now
made some provision for?

 I don't know if Windows users
 have a  similar need.


I don't see why not.

cheers

andrew



---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: [HACKERS] PITR COPY Failure (was Point in Time Recovery)

2004-07-20 Thread Simon Riggs
On Tue, 2004-07-20 at 05:14, Tom Lane wrote:
 Mark Kirkwood [EMAIL PROTECTED] writes:
  I have been doing some re-testing with CVS HEAD from about 1 hour ago 
  using the simplified example posted previously.
 
  It is quite interesting:
 
 The problem seems to be that the computation of checkPoint.redo at
 xlog.c lines 4162-4169 (all line numbers are per CVS tip) is not
 allowing for the possibility that XLogInsert will decide it doesn't
 want to split the checkpoint record across XLOG files, and will then
 insert a WASTED_SPACE record to avoid that (see comment and following
 code at lines 758-795).  This wouldn't really matter except that there
 is a safety crosscheck at line 4268 that tries to detect unexpected
 insertions of other records during a shutdown checkpoint.
 
 I think the code in CreateCheckPoint was correct when it was written,
 because we only recently changed XLogInsert to not split records
 across files.  But it's got a boundary-case bug now, which your test
 scenario is able to exercise by making the recovery run try to write
 a shutdown checkpoint exactly at the end of a WAL file segment.
 
 The quick and dirty solution would be to dike out the safety check at
 4268ff.  

Well, taking out the safety check isn't the answer.

The check produces the last error message concurrent transaction...,
but it isn't the cause of the mismatch in the first place.

If you take out that check, we still fail because the wasted space at
the end is causing a record with zero length error.

  I'm not real sure whether it's better to adjust
 the computation of checkPoint.redo or to smarten the safety check
 ... but one or the other needs to allow for file-end padding, or maybe
 we could hack some update of the state in WasteXLInsertBuffer().  (But
 at some point you have to say this is more trouble than it's worth,
 so maybe we'll end up taking out the safety check.)

...I'm looking at other options now.

Best Regards, Simon Riggs


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


Re: [HACKERS] localhost redux

2004-07-20 Thread Tom Lane
Zeugswetter Andreas SB SD [EMAIL PROTECTED] writes:
 I think you should first trace down what the problem really is --- is
 your system just misconfigured or is there some fundamental issue that
 we really ought to answer to?

 The trouble on AIX is, that getaddrinfo only does a nameservice lookup,
 no /etc/hosts.

Wouldn't that break many other programs besides Postgres?  But in any
case if your nameserver doesn't resolve localhost, I'd say you'd better
fix your nameserver.  See eg, http://www.faqs.org/rfcs/rfc2606.html

  The .localhost TLD has traditionally been statically defined in
  host DNS implementations as having an A record pointing to the
  loop back IP address and is reserved for such use.  Any other use
  would conflict with widely deployed code which assumes this use.

regards, tom lane

---(end of broadcast)---
TIP 6: Have you searched our list archives?

   http://archives.postgresql.org


Re: [HACKERS] PITR COPY Failure (was Point in Time Recovery)

2004-07-20 Thread Tom Lane
Simon Riggs [EMAIL PROTECTED] writes:
 The quick and dirty solution would be to dike out the safety check at
 4268ff.  

 If you take out that check, we still fail because the wasted space at
 the end is causing a record with zero length error.

Ugh.  I'm beginning to think we ought to revert the patch that added the
don't-split-across-files logic to XLogInsert; that seems to have broken
more assumptions than I realized.  That was added here:

2004-02-11 17:55  tgl

* src/: backend/access/transam/xact.c,
backend/access/transam/xlog.c, backend/access/transam/xlogutils.c,
backend/storage/smgr/md.c, backend/storage/smgr/smgr.c,
bin/pg_controldata/pg_controldata.c,
bin/pg_resetxlog/pg_resetxlog.c, include/access/xact.h,
include/access/xlog.h, include/access/xlogutils.h,
include/pg_config_manual.h, include/catalog/pg_control.h,
include/storage/smgr.h: Commit the reasonably uncontroversial parts
of J.R. Nield's PITR patch, to wit: Add a header record to each WAL
segment file so that it can be reliably identified.  Avoid
splitting WAL records across segment files (this is not strictly
necessary, but makes it simpler to incorporate the header records).
 Make WAL entries for file creation, deletion, and truncation (as
foreseen but never implemented by Vadim).  Also, add support for
making XLOG_SEG_SIZE configurable at compile time, similarly to
BLCKSZ.  Fix a couple bugs I introduced in WAL replay during recent
smgr API changes.  initdb is forced due to changes in pg_control
contents.

There are other ways to do this, for example we could treat the WAL page
headers as variable-size, and stick the file labeling info into the
first page's header instead of making it be a separate record.  The
separate-record way makes it easier to incorporate future additions to
the file labeling info, but I don't really think it's critical to allow
for that.

regards, tom lane

---(end of broadcast)---
TIP 6: Have you searched our list archives?

   http://archives.postgresql.org


Re: [HACKERS] PITR COPY Failure (was Point in Time Recovery)

2004-07-20 Thread Simon Riggs
On Tue, 2004-07-20 at 13:51, Tom Lane wrote:
 Simon Riggs [EMAIL PROTECTED] writes:
  The quick and dirty solution would be to dike out the safety check at
  4268ff.  
 
  If you take out that check, we still fail because the wasted space at
  the end is causing a record with zero length error.
 
 Ugh.  I'm beginning to think we ought to revert the patch that added the
 don't-split-across-files logic to XLogInsert; that seems to have broken
 more assumptions than I realized.  That was added here:
 
 2004-02-11 17:55  tgl
 
   * src/: backend/access/transam/xact.c,
   backend/access/transam/xlog.c, backend/access/transam/xlogutils.c,
   backend/storage/smgr/md.c, backend/storage/smgr/smgr.c,
   bin/pg_controldata/pg_controldata.c,
   bin/pg_resetxlog/pg_resetxlog.c, include/access/xact.h,
   include/access/xlog.h, include/access/xlogutils.h,
   include/pg_config_manual.h, include/catalog/pg_control.h,
   include/storage/smgr.h: Commit the reasonably uncontroversial parts
   of J.R. Nield's PITR patch, to wit: Add a header record to each WAL
   segment file so that it can be reliably identified.  Avoid
   splitting WAL records across segment files (this is not strictly
   necessary, but makes it simpler to incorporate the header records).
Make WAL entries for file creation, deletion, and truncation (as
   foreseen but never implemented by Vadim).  Also, add support for
   making XLOG_SEG_SIZE configurable at compile time, similarly to
   BLCKSZ.  Fix a couple bugs I introduced in WAL replay during recent
   smgr API changes.  initdb is forced due to changes in pg_control
   contents.
 
 There are other ways to do this, for example we could treat the WAL page
 headers as variable-size, and stick the file labeling info into the
 first page's header instead of making it be a separate record.  The
 separate-record way makes it easier to incorporate future additions to
 the file labeling info, but I don't really think it's critical to allow
 for that.
 

I think I've fixed it now...but wait 20

The problem was that a zero length XLOG_WASTED_SPACE record just fell
out of ReadRecord when it shouldn't have. By giving it a helping hand it
makes it through with pointers correctly set, and everything else was
already thought of in the earlier patch, so xlog_redo etc happens.

I'll update again in a few minutesno point us both looking at this.

Best regards, Simon Riggs




---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faqs/FAQ.html


Re: [HACKERS] localhost redux

2004-07-20 Thread Andrew Dunstan

Tom Lane wrote:
Zeugswetter Andreas SB SD [EMAIL PROTECTED] writes:
 

I think you should first trace down what the problem really is --- is
your system just misconfigured or is there some fundamental issue that
we really ought to answer to?
 

 

The trouble on AIX is, that getaddrinfo only does a nameservice lookup,
no /etc/hosts.
   

Wouldn't that break many other programs besides Postgres?  

Maybe not many use getaddrinfo()
But in any
case if your nameserver doesn't resolve localhost, I'd say you'd better
fix your nameserver.  See eg, http://www.faqs.org/rfcs/rfc2606.html
 The .localhost TLD has traditionally been statically defined in
 host DNS implementations as having an A record pointing to the
 loop back IP address and is reserved for such use.  Any other use
 would conflict with widely deployed code which assumes this use.
 

If localhost isn't being resolved correctly are you seeing error 
messages like this on the server log (from pqcomm.c)?

  could not translate host name \%s\, service \%s\ to address: %s
Of course, using -i or -h * on the postmaster would inhibit that, but 
you would expect it in the default setup if localhost resolution fails.

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


Re: [HACKERS] PITR COPY Failure (was Point in Time Recovery)

2004-07-20 Thread Tom Lane
Simon Riggs [EMAIL PROTECTED] writes:
 On Tue, 2004-07-20 at 13:51, Tom Lane wrote:
 Ugh.  I'm beginning to think we ought to revert the patch that added the
 don't-split-across-files logic to XLogInsert; that seems to have broken
 more assumptions than I realized.

 The problem was that a zero length XLOG_WASTED_SPACE record just fell
 out of ReadRecord when it shouldn't have. By giving it a helping hand it
 makes it through with pointers correctly set, and everything else was
 already thought of in the earlier patch, so xlog_redo etc happens.

Yeah, but the WASTED_SPACE/FILE_HEADER stuff is already pretty ugly, and
adding two more warts to the code to support it is sticking in my craw.
I'm thinking it would be cleaner to treat the extra labeling information
as an extension of the WAL page header.

regards, tom lane

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


Re: [HACKERS] PITR COPY Failure (was Point in Time Recovery)

2004-07-20 Thread Simon Riggs
On Tue, 2004-07-20 at 15:00, Tom Lane wrote:
 Simon Riggs [EMAIL PROTECTED] writes:
  On Tue, 2004-07-20 at 13:51, Tom Lane wrote:
  Ugh.  I'm beginning to think we ought to revert the patch that added the
  don't-split-across-files logic to XLogInsert; that seems to have broken
  more assumptions than I realized.
 
  The problem was that a zero length XLOG_WASTED_SPACE record just fell
  out of ReadRecord when it shouldn't have. By giving it a helping hand it
  makes it through with pointers correctly set, and everything else was
  already thought of in the earlier patch, so xlog_redo etc happens.
 
 Yeah, but the WASTED_SPACE/FILE_HEADER stuff is already pretty ugly, and
 adding two more warts to the code to support it is sticking in my craw.
 I'm thinking it would be cleaner to treat the extra labeling information
 as an extension of the WAL page header.

Sounds like a better solution than scrabbling around at the end of file
with too many edge cases to test properly 

...over to you then...

Best Regards, Simon Riggs


---(end of broadcast)---
TIP 6: Have you searched our list archives?

   http://archives.postgresql.org


Re: [HACKERS] PITR COPY Failure (was Point in Time Recovery)

2004-07-20 Thread Simon Riggs
On Tue, 2004-07-20 at 14:11, Simon Riggs wrote:
 On Tue, 2004-07-20 at 13:51, Tom Lane wrote:
  Simon Riggs [EMAIL PROTECTED] writes:
   The quick and dirty solution would be to dike out the safety check at
   4268ff.  
  
   If you take out that check, we still fail because the wasted space at
   the end is causing a record with zero length error.
  
  Ugh.  I'm beginning to think we ought to revert the patch that added the
  don't-split-across-files logic to XLogInsert; that seems to have broken
  more assumptions than I realized.  That was added here:
  
  2004-02-11 17:55  tgl
  
  * src/: backend/access/transam/xact.c,
  backend/access/transam/xlog.c, backend/access/transam/xlogutils.c,
  backend/storage/smgr/md.c, backend/storage/smgr/smgr.c,
  bin/pg_controldata/pg_controldata.c,
  bin/pg_resetxlog/pg_resetxlog.c, include/access/xact.h,
  include/access/xlog.h, include/access/xlogutils.h,
  include/pg_config_manual.h, include/catalog/pg_control.h,
  include/storage/smgr.h: Commit the reasonably uncontroversial parts
  of J.R. Nield's PITR patch, to wit: Add a header record to each WAL
  segment file so that it can be reliably identified.  Avoid
  splitting WAL records across segment files (this is not strictly
  necessary, but makes it simpler to incorporate the header records).
   Make WAL entries for file creation, deletion, and truncation (as
  foreseen but never implemented by Vadim).  Also, add support for
  making XLOG_SEG_SIZE configurable at compile time, similarly to
  BLCKSZ.  Fix a couple bugs I introduced in WAL replay during recent
  smgr API changes.  initdb is forced due to changes in pg_control
  contents.
  
  There are other ways to do this, for example we could treat the WAL page
  headers as variable-size, and stick the file labeling info into the
  first page's header instead of making it be a separate record.  The
  separate-record way makes it easier to incorporate future additions to
  the file labeling info, but I don't really think it's critical to allow
  for that.
  
 
 I think I've fixed it now...but wait 20
 
 The problem was that a zero length XLOG_WASTED_SPACE record just fell
 out of ReadRecord when it shouldn't have. By giving it a helping hand it
 makes it through with pointers correctly set, and everything else was
 already thought of in the earlier patch, so xlog_redo etc happens.
 
 I'll update again in a few minutesno point us both looking at this.
 

This was a very confusing test...Here's what I think happened:

Mark discovered a numerological coincidence that meant that the
XLOG_WASTED_SPACE record was zero length at the end of EACH file he was
writing to, as long as there was just that one writer. So no matter how
many records were inserted, each xlog file had a zero length
XLOG_WASTED_SPACE record at its end.

ReadRecord failed on seeing a zero length record, i.e. when it got to
the FIRST of the XLOG_WASTED_SPACE records. Thats why the test fails no
matter how many records you give it, as long as it was more than enough
to write into a second xlog segment file.

By telling ReadRecord that XLOG_WASTED_SPACE records of zero length are
in fact *OK*, it continues happily. (Thats just a partial fix, see
later)

The test works, but gives what looks like strange results: the test
blows away the data directory completely, so the then-current xlog dies
too. That contained the commit for the large COPY, so even though the
recovery now works, the table has zero rows in it. (When things die
you're still likely to lose *some* data).

Anyway, so then we put the concurrent transaction test back in and the
test passes because we have now set the pointers correctly.

After all that, I think the wasted space idea is still sensible. You
musn't have a continuation record across files, otherwise we'll end up
with half a commit one-day, which would break ACID.

I'm happy that we have the explicit test in XLogInsert for zero-length
records. Somebody will one-day write a resource manager with zero length
records when they didn't mean to and we need to catch that at write
time, not at recovery time like Mark has done. The WasteXLInsertBuffer
was the only part of the code that *can* write a zero-length record, so
we will *not* see another recurrence of this situation --at recovery
time--. 

Though further concerns along this theme are:
- what happens when the space at the end of a file is so small we can't
even write a zero-length XLOG_WASTED_SPACE record? Hopefully, you're
gonna say damn your eyes...couldnt you see that, its already there.
- if the space at the end of a file was just zeros, then the concurrent
transaction test would still failwe probably need to enhance this
to treat a few zeros at end of file AS IF it was an XLOG_WASTED_SPACE
record an continue. (That scenario would happen if we were doing a
recovery that included a local un-archived xlog that was very close to
being full - probably 

Re: [HACKERS] pg_config

2004-07-20 Thread Bruce Momjian
Andrew Dunstan wrote:
 Peter Eisentraut said:
  Tom Lane wrote:
  I doubt it.  People can always just read the file to see what
  settings are in it, and it's not like nonexperts are going to have a
  variety of different configurations that we're gonna have to ask them
  about. (Even in the Unix world, pg_config is not really needed when
  most people are installing one of a small number of RPM-type
  packages...)
 
 ISTM that if it's not useful we should rip it out and if it is then we
 should make it portable.

Agreed.  Right now we have a shell script in the Win32 binary directory
that doesn't work for them.

  The point of pg_config is not primarily to debug the installation
  layout  for us.  pg_config is used in configure scripts to find
  PostgreSQL  libraries and header files.
 
 To that extent is it not broken by relocated installations that we have now
 made some provision for?

Good question.

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (610) 359-1001
  +  If your life is a hard drive, |  13 Roberts Road
  +  Christ can be your backup.|  Newtown Square, Pennsylvania 19073

---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [HACKERS] localhost redux

2004-07-20 Thread Zeugswetter Andreas SB SD

 If localhost isn't being resolved correctly are you seeing error 
 messages like this on the server log (from pqcomm.c)?
 
could not translate host name \%s\, service \%s\ to 
 address: %s

After poking around, I found the following: 
The Windows pdc (==name server :-( ) does really not resolve localhost (this might
be common for Windows nameservers). I do not have a services entry for 5432,
and don't have a dns record for this RS6000.

LOG:  could not translate service 5432 to address: Host not found
WARNING:  could not create listen socket for *
LOG:  could not bind socket for statistics collector: Can't assign requested address

Setting to a port, that is listed in /etc/services does not change anything
(except the port of course).

I do not have those problems on a machine where dns lists the machine and localhost.
This machine has a long obsolete oslevel 4.3.2, so am not sure it is worth pursuing
the issue. I only wanted to state, that it does not work here under certain 
cirumstances 
eighter.

Andreas

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


Re: [HACKERS] localhost redux

2004-07-20 Thread Gavin M. Roy
Yeah, I was talking about it on freenode yesterday.  If the stats 
collector doesn't start, the internal variable is set to off.

Gavin
Gaetano Mendola wrote:
Gavin M. Roy wrote:
I have no problem resolving localhost anywhere else on the box, do 
you have any suggestions on finding out if it's a misconfiguration?
Gavin

Are you the users on IRC yesterday night ? He had the same problem, 
however
he/she had the GUC variable stats_start_collector equal to on in the
configuration file but was shown as off with a SHOW 
stats_start_collector
inside a psql section.

That GUC variable is resetted to off is the collector doesn't start ?
Regards
Gaetano Mendola



---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?
  http://www.postgresql.org/docs/faqs/FAQ.html


Re: [HACKERS] localhost redux

2004-07-20 Thread Steve Atkins
On Tue, Jul 20, 2004 at 08:32:00AM -0400, Tom Lane wrote:
 Zeugswetter Andreas SB SD [EMAIL PROTECTED] writes:
  I think you should first trace down what the problem really is --- is
  your system just misconfigured or is there some fundamental issue that
  we really ought to answer to?
 
  The trouble on AIX is, that getaddrinfo only does a nameservice lookup,
  no /etc/hosts.
 
 Wouldn't that break many other programs besides Postgres?  But in any
 case if your nameserver doesn't resolve localhost, I'd say you'd better
 fix your nameserver.  See eg, http://www.faqs.org/rfcs/rfc2606.html
 
   The .localhost TLD has traditionally been statically defined in
   host DNS implementations as having an A record pointing to the
   loop back IP address and is reserved for such use.  Any other use
   would conflict with widely deployed code which assumes this use.

There is no requirement for a recursive resolver (local nameserver) to
have localhost hardwired to return 127.0.0.1. It's not even clearly a
good idea in all cases. If, though, the resolver returns anything for
localhost it must be 127.0.0.1 (or, presumably, ::127.0.0.1).

While many recursive resolvers do have localhost hardwired (to avoid
this sort of issue) relying on it may be overly brave.

It would be nice if the OP could check their recursive resolver to see
what it is returning for a query for localhost ('dig @nameserver localhost', 
where nameserver is the nameserver listed in /etc/resolv.conf), just to
check whether the DNS vs non-DNS localhost thing is an issue at all. Also
whether they have /etc/netsvc.conf (IIRC) configured to use /etc/hosts
or not.

getaddrinfo() has had strange and unusual bugs on some older versions of
AIX, anyway, so it may not be a DNS issue at all.

Cheers,
  Steve

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


Re: [HACKERS] pg_config

2004-07-20 Thread Peter Eisentraut
Andrew Dunstan wrote:
 To that extent is it not broken by relocated installations that we
 have now made some provision for?

Well, then it should be fixed to take relocated installations into 
account.

Relocatable installations are by nature a pretty broken feature.  When 
you use pg_config to locate, say, libpq, then compile your third-party 
package, and then move libpq somewhere else, nothing can save you 
(except moving libpq back).  At least on Unix, relocatable 
installations are a walking cane when you need parallel installations 
for upgrades, but they'll never work reliably in general.

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/


---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [HACKERS] pg_dump bug fixing

2004-07-20 Thread Josh Berkus
KL,

 CREATE DATABASE phppgadmin WITH TEMPLATE = template0 OWNER = chriskl
 ENCODING = 'LATIN1';
 CREATE DATABASE usa WITH TEMPLATE = template0 OWNER = usadmin ENCODING =
 'LATIN1';

Ok, so that would come under the heading of already fixed.  Great.

-- 
Josh Berkus
Aglio Database Solutions
San Francisco

---(end of broadcast)---
TIP 6: Have you searched our list archives?

   http://archives.postgresql.org


Re: [HACKERS] Why we really need timelines *now* in PITR

2004-07-20 Thread Greg Stark

Tom Lane [EMAIL PROTECTED] writes:

 Anybody see any holes in this design?

God help the DBA who deletes a history file with needed information. Or edits
it inappropriately.

Why can't every log file contain a header that says which timeline it's part
of and which timeline the preceding log file was part of? That would avoid
having a file outside PGDATA and would mean the backups would always contain
enough information to be self-sufficient.

Then if you want to restore from a cold backup and apply PITR up to segment
0020 in timeline X. You read the header of X.0020, find out it followed X.0019
and so on. If X.0010 branched from Y.0009 you'll find out and be able to
continue threading back until you find a segment that matches the current
segment in the cold backup.

The only problem I see is that if your backups are stored on tape it might be
awkward to have to read the headers of all log segments in reverse order to
backtrack to the right place to start.

-- 
greg


---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: [HACKERS] Why we really need timelines *now* in PITR

2004-07-20 Thread Simon Riggs
On Tue, 2004-07-20 at 00:58, Tom Lane wrote: 
 Simon Riggs [EMAIL PROTECTED] writes:
  where the default is notarget and if you specify a target, the default
  target_in_timeline is latest.
 
 I think actually the default target has to be the timeline ID found in
 pg_control -- otherwise you get weird behavior in the plain crash
 recovery, non-PITR case.

Yes, I was talking about recovery.conf only

So, overall there would be 5 recovery modes with 4 levels of default:

Summarised in the table, also showing what set of actions/parameters we
need to specify to invoke that mode...

SPECIFIED ITEMs
MODErecovery.conf   rec_target* target_in_timeline
crash recovery
- up to 7.4-no--no--no
archive recovery 
- current end---yes-no--no
- current target (*)yes-yes-no
  current timeline
- other target (*)--yes-either--yes, = 'latest'
  latest timeline
- other target (*)--yes-either--yes, = 'value'
  other timeline

(*) these operations cause a new timeline to be created

More verbosely (not numbered because they're not a sequence or
progression)

- if no recovery.conf is present we do crash recovery to end of logs on
pg_control timeline (i.e. current) 

- if recovery.conf is present and we do not specify a target we do
archive recovery to end of logs on pg_control timeline (i.e. current) 

- if recovery.conf is present and we specify a target, but no timeline,
then we do archive recovery on the pg_control timeline only, and assume
that the target was supposed to be on this, even if we don't find it

- if recovery.conf is present and we specify a timeline of literally
'latest' (without having to know what that is) - then we search archive
for the latest history file, then we do archive recovery from the
pg_control timeline to the latest timeline as specified in the latest
history file. If we specify a target, then this is searched for on
whatever timeline we're on as we rollforward.

- if recovery.conf is present and we specify a timeline - then we search
archive for that history file, then we do archive recovery from the
pg_control timeline to the specified timeline as shown in that history
file. If we specify a target, then this is searched for on whatever
timeline we're on as we rollforward.

  I don't like the name target_in_timeline,
 
 Agreed, but I don't have a better name offhand for it.  The point I was
 making is that we seem to be using target to mean a point-in-time
 stopping target.  But you might be interested in going to the end of
 timeline N and so there's not a target in that sense.  That's why I
 was wanting to avoid using the term target for the desired timeline.
 But maybe there's not a better word.

how about?

end_at_timeline

which is more neutral towards the idea of whether a target has been
specified or not...


Another thing I note is that archive_status .ready messages are written
for all restored xlog files (rather than .done messages). That seems to
cause the archive to be completely overwritten when recovery is
complete. Is that part of the plan for timelines also. Not sure I
understand that...


Best Regards, Simon Riggs


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


Re: [HACKERS] Cannot initdb in cvs tip

2004-07-20 Thread Bruce Momjian

Seems it might be time to address this and get it fixed.  Win32 doesn't
clean up the directory structure under /data and leave /data unchanged,
and there is no way to do this with a system() command on Win32.

I resisted adding a C version of rmtree during Win32 development because
I was concerned about disturbing the Unix behavior, but at this point I
think we should just move ahead and add a /port function for this and
remove the system() backend and initdb calls to 'rm' for directories.

---

Andrew Dunstan wrote:
 John Hansen said:
  On Sun, 2004-06-20 at 08:04, Dave Page wrote:
although it says it's clearing the contents of the directory, in
actual fact it leaves the directory structure in place, thus a
subsequent initdb will not run without a manual clearup.
  
   Hm.  The rmtree() function in initdb.c is responsible for
   this, and I see it has WIN32-specific behavior, which is
   evidently wrong.
   Can you recommend a fix?
 
  The current solution does an rmdir /q /s $PGDATA if the datadir was
  created, and del /q /s $PGDATA if the directory already existed. The
  second case  will not work, as del will not remove directories.
  AFAICS, there is no easy way to do this using system() as rmdir won't
  accept wildcards, so we can't do del $PGDATA/*  rmdir $PGDATA/*.
 
  It seems to me that the simple answer is to put Andrew's recursive
  unlink code back in (as he suggested), which Bruce removed as rm etc.
  were being used in commands/dbcommands.c (which should work fine under
  Windows). Patch below
 
 
  you could of course rmdir /s /q $PGDATA  mkdir $PGDATA if the purpose
  is to leave the directory intact if it already existed prior to
  install.
 
 
 No we can't. This was discussed months ago, IIRC. The user might very well
 not have the privileges necessary to delete the directory, and might not
 have the privileges to recreate it if they do.
 
 The direct recursive delete is not a lot of code, and I must confess I
 *hate* having C programs calling system() for such tasks. One of my goals
 in rewriting initdb in C was to avoid any calls at all to any external
 program other than postgres itself.
 
 cheers
 
 andrew
 
 
 
 ---(end of broadcast)---
 TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]
 

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (610) 359-1001
  +  If your life is a hard drive, |  13 Roberts Road
  +  Christ can be your backup.|  Newtown Square, Pennsylvania 19073

---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])


[HACKERS] check point segments leakage ?

2004-07-20 Thread Gaetano Mendola
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Hi all,
today I add 4 new columns to a table with 4E+06 rows,
I also update to an initial value these new columns.
The new columns are 3 INTEGER one of type DOUBLE.
The table have also 5 indexes.
Immediately after the operation my partition data had
an usage increment of 1.2GB.
I did a reindex and a vacuum full on that table and 600MB
were freed.
Now I have an increment of only 600 MB.
I use a checkpoint_segments = 16 but in my pg_xlog I have
35 files. Why 35 files ?
Where are lost my 600MB ?
Also the load increased from 1 to 5 !!
Any ideas ?
I'm attaching boot graphs ( HD space usage and load ).
Regards
Gaetano Mendola
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.4 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFA/Ydh7UpzwH2SGd4RAuhKAKCTftBGjBLSfR+OTy5vHlYpL46TXQCfc65/
VfepMM87dQKvg3rswhGUNL8=
=HWHy
-END PGP SIGNATURE-
inline: load.pnginline: space_usage.png
---(end of broadcast)---
TIP 8: explain analyze is your friend


Re: [HACKERS] How to display privileges in psql

2004-07-20 Thread Bruce Momjian

Added to TODO:

* Allow psql to display permission information using \df+ and \l+


---

Christopher Kings-Lynne wrote:
  Maybe other people want to comment on this issue.
  
  So far, \z and \dp have shown privileges of tables.
  
  Now \dn+ and \db+ show the privileges of schemas and tablespaces.
  
  Should we, for consistency, move the table privilege display to \dt+, or 
  should we move the schema and tablespace display to, say \zn and \zb?  Or 
  maybe this is not an issue at all.
 
 I don't know :(
 
 psql is starting to struggle to show all information!
 
 And what about \df+ and \l+ ?  They both need privilege display as well.
 
 Chris
 
 
 ---(end of broadcast)---
 TIP 2: you can get off all lists at once with the unregister command
 (send unregister YourEmailAddressHere to [EMAIL PROTECTED])
 

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (610) 359-1001
  +  If your life is a hard drive, |  13 Roberts Road
  +  Christ can be your backup.|  Newtown Square, Pennsylvania 19073

---(end of broadcast)---
TIP 8: explain analyze is your friend


Re: [HACKERS] Point in Time Recovery

2004-07-20 Thread Bruce Momjian
Simon Riggs wrote:
 On Sat, 2004-07-17 at 00:57, Bruce Momjian wrote:
  OK, I think I have some solid ideas and reasons for them.
  
 
 Sorry for taking so long to reply...
 
  First, I think we need server-side functions to call when we start/stop
  the backup.  The advantage of these server-side functions is that they
  will do the required work of recording the pg_control values and
  creating needed files with little chance for user error.  It also allows
  us to change the internal operations in later releases without requiring
  admins to change their procedures.  We are even able to adjust the
  internal operation in minor releases without forcing a new procedure on
  users.
 
 Yes, I think we should go down this route. there's a but and that
 is we don't absolutely need it for correctnessand so I must decline
 adding it to THIS release. I don't imagine I'll stop be associated with
 this code for a while yet
 
 Can we recommend that users should expect to have to call a start and
 end backup routine in later releases? Don't expect you'll agree to
 that..

I guess my big question is that if we don't do this for 7.5 how will
people doing restores know if the xid they specify is valid for the
backup they used.  If we recover to most recent time, is there any check
that will tell them their backup is invalid because there are no archive
records that span the time of their backup?

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (610) 359-1001
  +  If your life is a hard drive, |  13 Roberts Road
  +  Christ can be your backup.|  Newtown Square, Pennsylvania 19073

---(end of broadcast)---
TIP 3: if posting/reading through Usenet, please send an appropriate
  subscribe-nomail command to [EMAIL PROTECTED] so that your
  message can get through to the mailing list cleanly


Re: [HACKERS] How to display privileges in psql

2004-07-20 Thread Peter Eisentraut
Bruce Momjian wrote:
 Added to TODO:

   * Allow psql to display permission information using \df+ and \l+

What about, develop a consistent way to display privilege information 
for all objects in psql?

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/


---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faqs/FAQ.html


Re: [HACKERS] How to display privileges in psql

2004-07-20 Thread David Fetter
On Tue, Jul 20, 2004 at 11:41:14PM +0200, Peter Eisentraut wrote:
 Bruce Momjian wrote:
  Added to TODO:
 
  * Allow psql to display permission information using \df+ and
  \l+
 
 What about, develop a consistent way to display privilege
 information for all objects in psql?

Excellent idea. :)

Is this worth breaking backward compatibility for?  IMHO, yes, but
others may have good reasons--critical-path psql scripts, e.g.--for
not doing it.

BTW, while I working out an example for CREATE DOMAIN
(http://fetter.org/sgml/sql-createdomain.html), I found that \dD and
\dD+ appear to do the exact same thing.  I was hoping that \dD+ would
show all CONSTRAINTs.

Cheers,
D
-- 
David Fetter [EMAIL PROTECTED] http://fetter.org/
phone: +1 510 893 6100   mobile: +1 415 235 3778

Remember to vote!

---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faqs/FAQ.html


[HACKERS] V3 protocol + DECLARE problems

2004-07-20 Thread Oliver Jowett
(cc: -hackers as I think this has been raised there before)
It's going to be fun using anything more than very basic cursors via the 
V3 protocol in the JDBC driver. DECLARE does not work with parameters 
passed via a Parse/Bind combination -- which is how we currently always 
pass parameters when talking V3. I'm reluctant to have two 
implementations of the parameter logic for V3 (one that does direct 
substitution, one that uses Bind) since that's extra unnecessary code 
and a recipe for inconsistent behaviour.

Logs follow; basically this is issuing a Parse/Bind/Execute for a 
parameterized DECLARE, which blows up with no value found for parameter 
1 despite there definitely being one there. (also, that error appears 
on Execute, not Parse/Bind).

Any chance of getting this fixed for 7.5? Alternatively, if we can get 
WITH HOLD / SCROLL behaviour in portals created by Execute (probably 
means a protocol change) that works too. I don't have a runnable 7.5 on 
hand to test against so it's possible this has already been fixed.

-O
Trying to establish a protocol version 3 connection to localhost:5432
 FE= StartupPacket(user=oliver, database=test, client_encoding=UNICODE, DateStyle=ISO)
 =BE AuthenticationOk
 =BE ParameterStatus(client_encoding = UNICODE)
 =BE ParameterStatus(DateStyle = ISO, DMY)
 =BE ParameterStatus(is_superuser = off)
 =BE ParameterStatus(server_version = 7.4.1)
 =BE ParameterStatus(session_authorization = oliver)
 =BE BackendKeyData(pid=676,ckey=704988999)
 =BE ReadyForQuery(I)
compatible = 7.5
loglevel = 0
prepare threshold = 0
getConnection returning driver[className=org.postgresql.Driver,[EMAIL PROTECTED]
simple execute, [EMAIL PROTECTED], maxRows=0, fetchSize=0, flags=21
 FE= Parse(stmt=null,query=DECLARE c CURSOR WITH HOLD FOR SELECT typname,oid from pg_type WHERE typname LIKE $1,oids={25})
 FE= Bind(stmt=null,portal=null,$1=%)
 FE= Describe(portal=null)
 FE= Execute(portal=null,limit=1)
 FE= Sync
 =BE ParseComplete [null]
 =BE BindComplete [null]
 =BE NoData
 =BE CommandStatus(DECLARE CURSOR)
 =BE ErrorMessage(ERROR: no value found for parameter 1
  Location: File: execQual.c, Routine: ExecEvalParam, Line: 518
  ServerSQLState: 42704)
java.sql.SQLException: ERROR: no value found for parameter 1
  Location: File: execQual.c, Routine: ExecEvalParam, Line: 518
  ServerSQLState: 42704
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1130)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:933)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:139)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:343)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:291)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:246)
at TestDeclare.main(TestDeclare.java:11)
SQLException: SQLState(42704)
 =BE NoticeResponse(WARNING: AbortTransaction and not in in-progress state
  Location: File: xact.c, Routine: AbortTransaction, Line: 1034
  ServerSQLState: 01000)
SQLWarning: 
 =BE ReadyForQuery(I)
---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?
  http://www.postgresql.org/docs/faqs/FAQ.html


Re: [HACKERS] How to display privileges in psql

2004-07-20 Thread Bruce Momjian
Peter Eisentraut wrote:
 Bruce Momjian wrote:
  Added to TODO:
 
  * Allow psql to display permission information using \df+ and \l+
 
 What about, develop a consistent way to display privilege information 
 for all objects in psql?

OK, item wording updated.

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (610) 359-1001
  +  If your life is a hard drive, |  13 Roberts Road
  +  Christ can be your backup.|  Newtown Square, Pennsylvania 19073

---(end of broadcast)---
TIP 6: Have you searched our list archives?

   http://archives.postgresql.org


Re: [HACKERS] check point segments leakage ?

2004-07-20 Thread Joshua D. Drake
Hello,
Perhaps you have an open transaction that isn't closing and thus the 
pg_xlog continues to grow?

Sincerely,
Joshua D. Drake
Gaetano Mendola wrote:
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Hi all,
today I add 4 new columns to a table with 4E+06 rows,
I also update to an initial value these new columns.
The new columns are 3 INTEGER one of type DOUBLE.
The table have also 5 indexes.
Immediately after the operation my partition data had
an usage increment of 1.2GB.
I did a reindex and a vacuum full on that table and 600MB
were freed.
Now I have an increment of only 600 MB.
I use a checkpoint_segments = 16 but in my pg_xlog I have
35 files. Why 35 files ?
Where are lost my 600MB ?
Also the load increased from 1 to 5 !!
Any ideas ?
I'm attaching boot graphs ( HD space usage and load ).
Regards
Gaetano Mendola
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.4 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFA/Ydh7UpzwH2SGd4RAuhKAKCTftBGjBLSfR+OTy5vHlYpL46TXQCfc65/
VfepMM87dQKvg3rswhGUNL8=
=HWHy
-END PGP SIGNATURE-



---(end of broadcast)---
TIP 8: explain analyze is your friend

--
Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-667-4564 - [EMAIL PROTECTED] - http://www.commandprompt.com
Mammoth PostgreSQL Replicator. Integrated Replication for PostgreSQL
begin:vcard
fn:Joshua D. Drake
n:Drake;Joshua D.
org:Command Prompt, Inc.
adr:;;PO Box 215;Cascade Locks;Oregon;97014;USA
email;internet:[EMAIL PROTECTED]
title:Consultant
tel;work:503-667-4564
tel;fax:503-210-0034
note:Command Prompt, Inc. is the largest and oldest US based commercial PostgreSQL support provider. We  provide the only commercially viable integrated PostgreSQL replication solution, but also custom programming, and support. We authored  the book Practical PostgreSQL, the procedural language plPHP, and adding trigger capability to plPerl.
x-mozilla-html:FALSE
url:http://www.commandprompt.com/
version:2.1
end:vcard


---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [HACKERS] unused variable

2004-07-20 Thread Bruce Momjian

OK, it turns out myXID is only used by Assert tests, and most developers
compile with Asserts.  I have fixed this by defining the variable only
when asserts are enabled.

Patch attached and applied.

---

Gaetano Mendola wrote:
[ PGP not available, raw data follows ]
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Hi all,
 
 I'm compiling the last postgres CVS version and I get:
 
 vacuum.c: In function `repair_frag':
 vacuum.c:1528: warning: unused variable `myXID'
 
 
 
 Regards
 Gaetano Mendola
 
 
 
 
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.2.4 (MingW32)
 Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
 
 iD8DBQFA+bCj7UpzwH2SGd4RAtyKAJsH6V22SijBN3VD/HJ/sWoLO8Ta7wCcD1wt
 U2VsEehBuK64q4/kjsHA4g4=
 =TsL8
 -END PGP SIGNATURE-
 
 
 ---(end of broadcast)---
 TIP 3: if posting/reading through Usenet, please send an appropriate
   subscribe-nomail command to [EMAIL PROTECTED] so that your
   message can get through to the mailing list cleanly
 
[ End of raw data]

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (610) 359-1001
  +  If your life is a hard drive, |  13 Roberts Road
  +  Christ can be your backup.|  Newtown Square, Pennsylvania 19073
Index: src/backend/commands/vacuum.c
===
RCS file: /cvsroot/pgsql-server/src/backend/commands/vacuum.c,v
retrieving revision 1.282
diff -c -c -r1.282 vacuum.c
*** src/backend/commands/vacuum.c   1 Jul 2004 00:50:11 -   1.282
--- src/backend/commands/vacuum.c   20 Jul 2004 22:43:52 -
***
*** 1525,1531 
--- 1525,1533 
VacPageList vacuum_pages, VacPageList fraged_pages,
int nindexes, Relation *Irel)
  {
+ #ifdefUSE_ASSERT_CHECKING
TransactionId myXID = GetCurrentTransactionId();
+ #endif
Buffer  dst_buffer = InvalidBuffer;
BlockNumber nblocks,
blkno;

---(end of broadcast)---
TIP 8: explain analyze is your friend


Re: [HACKERS] check point segments leakage ?

2004-07-20 Thread Scott Marlowe
Bruce said the other day open transactions can't cause this problem.

I wonder what all can?

On Tue, 2004-07-20 at 16:32, Joshua D. Drake wrote:
 Hello,
 
 Perhaps you have an open transaction that isn't closing and thus the 
 pg_xlog continues to grow?
 
 Sincerely,
 
 Joshua D. Drake
 
 
 Gaetano Mendola wrote:
  -BEGIN PGP SIGNED MESSAGE-
  Hash: SHA1
  
  Hi all,
  today I add 4 new columns to a table with 4E+06 rows,
  I also update to an initial value these new columns.
  
  The new columns are 3 INTEGER one of type DOUBLE.
  The table have also 5 indexes.
  
  Immediately after the operation my partition data had
  an usage increment of 1.2GB.
  I did a reindex and a vacuum full on that table and 600MB
  were freed.
  
  Now I have an increment of only 600 MB.
  
  I use a checkpoint_segments = 16 but in my pg_xlog I have
  35 files. Why 35 files ?
  
  Where are lost my 600MB ?
  
  Also the load increased from 1 to 5 !!
  Any ideas ?
  
  I'm attaching boot graphs ( HD space usage and load ).
  
  Regards
  Gaetano Mendola
  
  
  -BEGIN PGP SIGNATURE-
  Version: GnuPG v1.2.4 (MingW32)
  Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
  
  iD8DBQFA/Ydh7UpzwH2SGd4RAuhKAKCTftBGjBLSfR+OTy5vHlYpL46TXQCfc65/
  VfepMM87dQKvg3rswhGUNL8=
  =HWHy
  -END PGP SIGNATURE-
  
  
  
  
  
  
  
  
  
  
  ---(end of broadcast)---
  TIP 8: explain analyze is your friend
 


---(end of broadcast)---
TIP 3: if posting/reading through Usenet, please send an appropriate
  subscribe-nomail command to [EMAIL PROTECTED] so that your
  message can get through to the mailing list cleanly


Re: [HACKERS] check point segments leakage ?

2004-07-20 Thread Gaetano Mendola
Joshua D. Drake wrote:
 Hello,

 Perhaps you have an open transaction that isn't closing and thus the
 pg_xlog continues to grow?

 Sincerely,

 Joshua D. Drake
I was thinking about it but unfortunately there is no transaction open.
On my development database, were I simulate the same operation that I
did in production I have the same situation: 34 files and same
configuration, right now there are 5 connection and no one of them have
a transaction opened:
template1=# select * from pg_locks ;
 relation | database | transaction |  pid  |  mode   | granted
--+--+-+---+-+-
16759 |1 | | 15910 | AccessShareLock | t
  |  | 7714652 | 15910 | ExclusiveLock   | t

Regards
Gaetano Mendola


---(end of broadcast)---
TIP 6: Have you searched our list archives?
  http://archives.postgresql.org


Re: [HACKERS] check point segments leakage ?

2004-07-20 Thread Bruce Momjian
Scott Marlowe wrote:
   I use a checkpoint_segments = 16 but in my pg_xlog I have
   35 files. Why 35 files ?

You have 35 because the max files in pg_xlog is 2*checkpoint_segments +1
or something like that. This is documented in the SGML.

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (610) 359-1001
  +  If your life is a hard drive, |  13 Roberts Road
  +  Christ can be your backup.|  Newtown Square, Pennsylvania 19073

---(end of broadcast)---
TIP 6: Have you searched our list archives?

   http://archives.postgresql.org


Re: [HACKERS] check point segments leakage ?

2004-07-20 Thread Bruce Momjian
Gaetano Mendola wrote:
 Bruce Momjian wrote:
 
  Scott Marlowe wrote:
  
 I use a checkpoint_segments = 16 but in my pg_xlog I have
 35 files. Why 35 files ?
  
  
  You have 35 because the max files in pg_xlog is 2*checkpoint_segments +1
  or something like that. This is documented in the SGML.
 
 Ok, that explain why. And they will remain there also if not needed ?

Yes, it keeps them around so it doesn't need to recreate them.

 Another weird behaviour is that during the day the storage space usage
 increase gruadualy. Since today as the graph show the space usage
 is constant, it's like if some space was pre-allocated and now is
 used, see same yesterday period between 18:00 and 24:00.
 Toughts ?

My guess is that you need a certain amount of free space in the tables
to operate properly.

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (610) 359-1001
  +  If your life is a hard drive, |  13 Roberts Road
  +  Christ can be your backup.|  Newtown Square, Pennsylvania 19073

---(end of broadcast)---
TIP 8: explain analyze is your friend


Re: [HACKERS] PITR COPY Failure (was Point in Time Recovery)

2004-07-20 Thread Mark Kirkwood
FYI - I can confirm that the patch fixes main issue.
Simon Riggs wrote:
This was a very confusing test...Here's what I think happened:
.
The included patch doesn't attempt to address those issues, yet.
Best regards, Simon Riggs
 


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


Re: [HACKERS] PITR COPY Failure (was Point in Time Recovery)

2004-07-20 Thread Mark Kirkwood
This is presumably a standard feature of any PITR design - if the 
failure event destroys the current transaction log, then you can only 
recover transactions that committed in the last *archived* log.

regards
Mark
Simon Riggs wrote:
The test works, but gives what looks like strange results: the test
blows away the data directory completely, so the then-current xlog dies
too. That contained the commit for the large COPY, so even though the
recovery now works, the table has zero rows in it. (When things die
you're still likely to lose *some* data).

 

---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?
  http://www.postgresql.org/docs/faqs/FAQ.html


[HACKERS] no instruction after install

2004-07-20 Thread Gaetano Mendola
Hi all,
why after compiling and install postgresql CVS tip
there is no information on how to run it ? Also
the file INSTALL is not there anymore.
Do I miss something in these days ?

Regards
Gaetano Mendola

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


[HACKERS] NT and aborted transaction

2004-07-20 Thread Gaetano Mendola
Hi all,
still experimenting NT:
kalman=# begin;
BEGIN
kalman=# select * from a;
ERROR:  relation a does not exist
kalman=# begin;
BEGIN
kalman=# select * from test;
ERROR:  current transaction is aborted, commands ignored until end of transaction block
I think the second begin shall fail instead of open an already invalid transaction.

Regards
Gaetano Mendola

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


[HACKERS] NT + deadlock intended behaviour ?

2004-07-20 Thread Gaetano Mendola
Hi all,
I'm doing some experiments with NT, I din't expect this behaviuor:
create table test ( a integer );
insert into test values (3);
insert into test values (4);
insert into test values (5);
insert into test values (6);

SESSION 1;SESSION 2;
begin;begin;
update test set a = 300 where a = 3;  update test set a = 40 where a = 4;
  begin;
update test set a = 400 where a = 4;
BLOCKED
  update test set a = 30 where a = 3;
  DEAD LOCK DETECTED
  commit;
UNBLOCKED-- !?!?!
  here I'm able to do another commit
why SESSION 1 was unblocked ? If I repeat again but I do an abort:

SESSION 1;SESSION 2;
begin;begin;
update test set a = 300 where a = 3;  update test set a = 40 where a = 4;
  begin;
update test set a = 400 where a = 4;
BLOCKED
  update test set a = 30 where a = 3;
  DEAD LOCK DETECTED
  abort;
STILL BLOCKED
Why that commit unblock the SESSION 1?
Regards
Gaetano Mendola




---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
   (send unregister YourEmailAddressHere to [EMAIL PROTECTED])


[HACKERS] unused variable

2004-07-20 Thread Gaetano Mendola
Hi all,
I'm compiling the last postgres CVS version and I get:
vacuum.c: In function `repair_frag':
vacuum.c:1528: warning: unused variable `myXID'

Regards
Gaetano Mendola


---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]