[HACKERS] Interesting issue with SFR in PL/pgSQL ...

2004-09-18 Thread Hans-Jürgen Schönig
I am about to port a large database application from 7.4.x* to 8.0 (mainly to test 8.0). There is an interesting thing I have come across: CREATE OR REPLACE FUNCTION xy(int4) RETURNS SETOF RECORD AS ' DECLARE v_isALIAS FOR $1; v_loop int4;

Re: [HACKERS] Disabling bgwriter on my notebook

2004-09-18 Thread Michael Paesold
Tom Lane wrote: There is some debug output available from the ARC code, but I dunno if its output is actually useful ;-). Try http://developer.postgresql.org/docs/postgres/runtime-config.html#GUC-DEBUG-SHARED-BUFFERS debug_shared_buffers (integer) Number of seconds between ARC reports. If

[HACKERS] Log line prefix on win32

2004-09-18 Thread Michael Paesold
On my german Windows XP Professional, %t in log_line_prefix produces 2004-09-18 14:23:26 Westeuropische Sommerzeit This is rather long and ugly. It is already on the open item list: * shorten timezone for %t log_line_prefix Additionally I would suggest something like %z. Most of the time, time

Re: [HACKERS] pg_dump --exclude-schema=foo

2004-09-18 Thread Christopher Browne
Quoth [EMAIL PROTECTED] (Tom Lane): Chris Browne [EMAIL PROTECTED] writes: We have discovered an interesting locking scenario with Slony-I that is pointing to a use for the ability to exclude certain schemas from pg_dump. The situation is that when a full pg_dump kicks off, a Slony-I create

[HACKERS] Disabling bgwriter on my notebook

2004-09-18 Thread Michael Paesold
Hi everybody, I have started testing PostgreSQL on windows. Now that I have managed to import a dump of one of our production databases to postgres on my notebook, there is one issue that came up immediatly after running VACUUM FULL: pgwriter is keeping my disks busy and disturbs me :-(. The

[HACKERS] transaction idle timeout in 7.4.5 and 8.0.0beta2

2004-09-18 Thread Szima Gábor
Hi all, I was implement the transaction idle timeout function in PostgreSQL (version 7.4.5 and 8.0.0beta2) test=# SET trans_idle_timeout=10; SET test=# BEGIN; BEGIN (ps) ... postgres: sygma test [local] idle in transaction (3) postgres: sygma test [local] idle in transaction (2) postgres:

Re: [HACKERS] tweaking MemSet() performance - 7.4.5

2004-09-18 Thread Marc Colosimo
On Sep 17, 2004, at 3:55 PM, Tom Lane wrote: Marc Colosimo [EMAIL PROTECTED] writes: I'm using 7.4.5 on Mac OS X (G5) and was profiling it to see why it is SO SLOW at committing inserts and deletes into a large database. One of the many slowdowns was from MemSet. I found an old (2002) thread

Re: [HACKERS] libpq and prepared statements progress for 8.0

2004-09-18 Thread Gary Doades
On Wed, 15 Sep 2004 13:50:43 -0400, [EMAIL PROTECTED] (Tom Lane) wrote: Well, (a) I ran out of time, and (b) I wasn't sure what the most convenient API would be. Should we create something that packages together a Parse and a Describe Statement, or expose those as separate things? There's

Re: [HACKERS] Interesting issue with SFR in PL/pgSQL ...

2004-09-18 Thread Tom Lane
=?ISO-8859-1?Q?Hans-J=FCrgen_Sch=F6nig?= [EMAIL PROTECTED] writes: CREATE OR REPLACE FUNCTION xy(int4) RETURNS SETOF RECORD AS ' ... RETURN v_rec; ... ' LANGUAGE 'plpgsql'; ERROR: RETURN cannot have a parameter in function returning set; use RETURN NEXT at or near v_rec

Re: [HACKERS] transaction idle timeout in 7.4.5 and 8.0.0beta2

2004-09-18 Thread Jeroen T. Vermeulen
On Fri, Sep 17, 2004 at 08:47:02AM +0200, Szima G?bor wrote: I was implement the transaction idle timeout function in PostgreSQL (version 7.4.5 and 8.0.0beta2) It sounds interesting to me (for use in libpqxx, the C++ API), but perhaps for a slightly unusual reason. When a connection to the

Re: [HACKERS] tweaking MemSet() performance - 7.4.5

2004-09-18 Thread Manfred Spraul
Marc Colosimo wrote: Oops, I used the same setting as in the old hacking message (-O2, gcc 3.3). If I understand what you are saying, then it turns out yes, PG's MemSet is faster for smaller blocksizes (see below, between 32 and 64). I just replaced the whole MemSet with memset and it is not

Re: [HACKERS] transaction idle timeout in 7.4.5 and 8.0.0beta2

2004-09-18 Thread Tom Lane
Jeroen T. Vermeulen [EMAIL PROTECTED] writes: It sounds interesting to me (for use in libpqxx, the C++ API), but perhaps for a slightly unusual reason. When a connection to the backend is lost just as you're waiting for the result of a COMMIT, you can't be sure if the transaction was rolled

Re: [HACKERS] transaction idle timeout in 7.4.5 and 8.0.0beta2

2004-09-18 Thread Jeroen T. Vermeulen
On Sat, Sep 18, 2004 at 12:43:05PM -0400, Tom Lane wrote: I don't see any reason for guesswork. Remember the PID of the backend you were connected to. On reconnect, look in pg_stat_activity to see if that backend is still alive; if so, sleep till it's not. Then check to see if your

Re: [HACKERS] tweaking MemSet() performance - 7.4.5

2004-09-18 Thread Tom Lane
Manfred Spraul [EMAIL PROTECTED] writes: That's the price you pay for weakly ordered memory access. Linux on ppc uses eieio, on ppc64 lwsync is used. Could you check if they are faster? I recall looking at lwsync and being concerned about portability problems --- older assemblers will fail to

Re: [HACKERS] transaction idle timeout in 7.4.5 and 8.0.0beta2

2004-09-18 Thread Jeroen T. Vermeulen
On Sat, Sep 18, 2004 at 12:43:05PM -0400, Tom Lane wrote: I don't see any reason for guesswork. Remember the PID of the backend you were connected to. On reconnect, look in pg_stat_activity to see if that backend is still alive; if so, sleep till it's not. Then check to see if your

Re: [HACKERS] libpq and prepared statements progress for 8.0

2004-09-18 Thread David Wheeler
On Sep 17, 2004, at 6:23 PM, Oliver Jowett wrote: template1= prepare s1(int) as select typname from pg_type where oid = $1; PREPARE template1= execute s1('16'); typname - bool (1 row) You're still telling it the type via that int. Regards, David ---(end of

Re: [HACKERS] transaction idle timeout in 7.4.5 and 8.0.0beta2

2004-09-18 Thread Tom Lane
Jeroen T. Vermeulen [EMAIL PROTECTED] writes: On Sat, Sep 18, 2004 at 12:43:05PM -0400, Tom Lane wrote: I don't see any reason for guesswork. Remember the PID of the backend you were connected to. On reconnect, look in pg_stat_activity to see if that backend is still alive; if so, sleep till

Re: [HACKERS] transaction idle timeout in 7.4.5 and 8.0.0beta2

2004-09-18 Thread Jeroen T. Vermeulen
On Sat, Sep 18, 2004 at 02:32:32PM -0400, Tom Lane wrote: No, because of the reporting delay. I would recommend waiting for the backend's row in pg_stat_activity to disappear entirely. Under normal circumstances that should occur quickly. If there's a communications problem, it might take

Re: [HACKERS] transaction idle timeout in 7.4.5 and 8.0.0beta2

2004-09-18 Thread Jeroen T. Vermeulen
On Sat, Sep 18, 2004 at 02:32:32PM -0400, Tom Lane wrote: No, stats_command_string need not be set, only stats_start_collector. BTW, I've got this set (I'm even running as postgres) but still I get the command string not enabled message instead of current_query. :( Jeroen

Re: [HACKERS] transaction idle timeout in 7.4.5 and 8.0.0beta2

2004-09-18 Thread Tom Lane
Jeroen T. Vermeulen [EMAIL PROTECTED] writes: On Sat, Sep 18, 2004 at 02:32:32PM -0400, Tom Lane wrote: No, stats_command_string need not be set, only stats_start_collector. BTW, I've got this set (I'm even running as postgres) but still I get the command string not enabled message instead of

Re: [HACKERS] transaction idle timeout in 7.4.5 and 8.0.0beta2

2004-09-18 Thread Jeroen T. Vermeulen
On Sat, Sep 18, 2004 at 03:41:24PM -0400, Tom Lane wrote: No, stats_command_string need not be set, only stats_start_collector. BTW, I've got this set (I'm even running as postgres) but still I get the command string not enabled message instead of current_query. :( It has to be set in

Re: [HACKERS] transaction idle timeout in 7.4.5 and 8.0.0beta2

2004-09-18 Thread Tom Lane
Jeroen T. Vermeulen [EMAIL PROTECTED] writes: On Sat, Sep 18, 2004 at 02:32:32PM -0400, Tom Lane wrote: If there's a communications problem, it might take awhile to detect connection loss ... but if there's a communications problem, you probably aren't going to be able to open a new

Re: [HACKERS] libpq and prepared statements progress for 8.0

2004-09-18 Thread Oliver Jowett
David Wheeler wrote: On Sep 17, 2004, at 6:23 PM, Oliver Jowett wrote: template1= prepare s1(int) as select typname from pg_type where oid = $1; PREPARE template1= execute s1('16'); typname - bool (1 row) You're still telling it the type via that int. Well, obviously. I haven't

Re: [HACKERS] transaction idle timeout in 7.4.5 and 8.0.0beta2

2004-09-18 Thread Tom Lane
Jeroen T. Vermeulen [EMAIL PROTECTED] writes: On Sat, Sep 18, 2004 at 03:41:24PM -0400, Tom Lane wrote: No, stats_command_string need not be set, only stats_start_collector. BTW, I've got this set (I'm even running as postgres) but still I get the command string not enabled message instead

Re: [HACKERS] transaction idle timeout in 7.4.5 and 8.0.0beta2

2004-09-18 Thread Jeroen T. Vermeulen
On Sat, Sep 18, 2004 at 04:05:26PM -0400, Tom Lane wrote: Well, I think it would time out quickly --- anyway on the order of minutes not hours. By hypothesis, the situation you're worried about is where the backend was unable to send you a COMMIT acknowledgement message. The kernel is

Re: [HACKERS] libpq and prepared statements progress for 8.0

2004-09-18 Thread David Wheeler
On Sep 18, 2004, at 1:09 PM, Oliver Jowett wrote: Well, obviously. I haven't modified the backend code to accept 'unknown' in PREPARE.. Right, and that's what we're looking for. My point was the client does *not* need to know the type inferred by the PREPARE in the 'unknown' case to make use of

Re: [HACKERS] libpq and prepared statements progress for 8.0

2004-09-18 Thread Oliver Jowett
David Wheeler wrote: On Sep 18, 2004, at 1:09 PM, Oliver Jowett wrote: Well, obviously. I haven't modified the backend code to accept 'unknown' in PREPARE.. Right, and that's what we're looking for. My point was the client does *not* need to know the type inferred by the PREPARE in the

Re: [HACKERS] libpq and prepared statements progress for 8.0

2004-09-18 Thread Tom Lane
Oliver Jowett [EMAIL PROTECTED] writes: Tom reckons that PREPARE (at the SQL level) taking unknown types is not useful as there is no feedback mechanism along the lines of the V3 protocol Describe messages to let the client find out what types were inferred by the PREPARE. I am saying

[HACKERS] SAVEPOINT SQL conformance

2004-09-18 Thread Michael Paesold
Developer docs have this (in SAVEPOINT command reference): SQL requires a savepoint to be destroyed automatically when another savepoint with the same name is established. In PostgreSQL, the old savepoint is kept, though only the more recent one will be used when rolling back or releasing.

Re: [HACKERS] SAVEPOINT SQL conformance

2004-09-18 Thread Tom Lane
Michael Paesold [EMAIL PROTECTED] writes: If the first example code is used (which I would use if I did not think about postgresql's exception), the subxact state stack in xact.c will grow and grow and grow... whereas in the case of compliance with the standard, it will not. This is fairly

Re: [HACKERS] SAVEPOINT SQL conformance

2004-09-18 Thread Oliver Jowett
Michael Paesold wrote: BEGIN; SAVEPOINT a; INSERT INTO ... SAVEPOINT a; INSERT INTO ... SAVEPOINT a; ... (encountering an error it would just ROLLBACK TO a;) According to the standard this is exactly the same as: BEGIN; SAVEPOINT a; INSERT INTO ... RELEASE SAVEPOINT a; SAVEPOINT a; INSERT INTO ...

Re: [HACKERS] SAVEPOINT SQL conformance

2004-09-18 Thread Michael Paesold
Tom Lane wrote: This is fairly irrelevant though, as the state stack entry is only a small part of the resources consumed by an uncommitted subtransaction. I don't really think it outweighs the argument you quoted about accidental collisions of savepoint names causing problems. Perhaps I am