Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Pavel Stehule
 
 Another example is the recent patch to check if there are orphaned file
 system files.  That was submitted, Tom had questions, I posted why I
 thought it was valid, and the patch is going in today.  Anyone has the
 ability to argue their point and try to sway the community, and any
 member has the right to request a vote on a specific issue.
 

I know so maintainig of PostgreSQL isn't easy. And it's normal so 
everybody wont to see commit of your patch. The comunication with core 
developers is best, but some times I have opinion so some patches are 
lost - for example my little patch SQLSTATE, .. I remeber situation one 
year ago with named params of plpgsql function. Patch waited half of year.

I don't wont to be negative :-)). PostgreSQL did big progress. Really. And 
last modification of plpgsql helped my in work. But its human natural. I 
looking for others nows. I am expectant for 2PC, hiearch queries, and ... 
PostgreSQL isn't only sw for me, it's more like idol :-)

Best Regards, 
Pavel Stehule



---(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: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Michael Paesold
Bruce Momjian wrote:
(Funny, no one says I have too much power.  I will have to look into how
to get some someday.)  :-)
I think you have power, too. :-) You have commited many patches that some 
other commiters didn't like that much and would rather not have applied 
themselves. All with some consensus from the community, of course.

The reason, IMHO, that Tom is seen as someone with more power than others, 
is because of his intimate knowledge of postgresql and software design in 
general. Most of his proposals are very welcome to the community and nobody 
would be against those. And if there are objections, Tom will usually listen 
to valid criticism and adapt his work.

Not all core members or regular patch submitters have agreed with all 
changes in the past, not even within this in-group. There are different 
opinions and it's not one who always wins. I believe there is quite a 
balance.

For many changes and patches proposed, most of the rejections I have seen 
were based on lack of knowledge of either postgresql design or philosophy or 
bad software design in general. Of course its rather the in-group who 
defined the postgresql design and philosophy in the first place, but well, 
it is because of them that postgresql exists as what it is.

Most of the hassles can be avoided by speaking up on hackers first and 
convince some one with good postgresql know-how to help you get your work on 
track.

Best Regards,
Michael Paesold 

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


[HACKERS] BTW, if anyone wants to work on it...

2005-05-03 Thread Tom Lane
We've had a couple of cases recently where we had to advise DBAs to make
manual changes in the system catalogs --- see for instance the 7.4.2
release notes or
http://archives.postgresql.org/pgsql-announce/2005-05/msg1.php

It'd be nicer if this sort of thing could be handled automatically
by a software update.  There are good reasons why it's not trivial,
but having been burnt twice in recent memory, I'm starting to think
it'd be worth setting up a mechanism to handle such changes
automatically.  Anyone up for working on it?

regards, tom lane

---(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] SPI bug.

2005-05-03 Thread Thomas Hallgren
Neil Conway wrote:
We don't currently depend on C99, and not all platforms have a 64-bit 
datatype. In any case, I'm still unconvinced that using `int' and 
`long' in backend APIs is a problem.
Using long means that you sometimes get a 32-bit value and sometimes a 
64-bit value, I think we agree on that. There's no correlation between 
getting a 64-bit value and the fact that you run on a 64-bit platform 
since many 64-bit platforms treat a long as 32-bit. I think we agree on 
that too.

If the objective behind using a long is that you get a data-type that 
followes the CPU register size then that objective is not met. No such 
data-type exists unless you use C99 intptr_t (an int that can hold a 
pointer). You could of course explicitly typedef a such in c.h but 
AFAICS, there is no such definition today.

By using a long you will:
a) maximize the differences of the SPI interfaces between platforms.
b) only enable 64-bit resultset sizes on a limited range of 64-bit 
platforms.

Wouldn't it be better if you:
a) Minimized the differences between platforms.
b) Made a decision to either use 32- or 64-bit resultset sizes (my 
preference would be the former) or to conseqently used 32-bit resultset 
sizes on 32-bit platforms and 64-bit resultset sizes on 64-bit platforms?

Regards,
Thomas Hallgren

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


[HACKERS] bitmap scan and explain analyze

2005-05-03 Thread Tatsuo Ishii
I noticed that explain analyze emits a little bit funny reslut for
bitmap scans:

BitmapOr  (cost=157.36..157.36 rows=18894 width=0) (actual time=9.406..9.406 
rows=0 loops=1)

Why actual rows=0?
--
Tatsuo Ishii

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


Re: [HACKERS] Feature freeze date for 8.1

2005-05-03 Thread Dawid Kuroczko
On 5/2/05, Heikki Linnakangas [EMAIL PROTECTED] wrote:
 What we can do in PostgreSQL is to introduce an application-level
 heartbeat. A simple Hello world message sent from server to client that
 the client would ignore would do the trick.

Hmm, a quick-and-dirty implementation could be that a client issues
LISTEN heartbeat; command, and there would be other client issuing
NOTIFY heartbeat; every few minutes.  I am not sure but this would
probably make server send out these messages to the client, regardless
of whether the client is doing something or not.  Again, I am not sure.
Ah, and probably so many NOTIFY messages wouldn't be very nice for
system tables.

   Regards,
Dawid

---(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] Feature freeze date for 8.1

2005-05-03 Thread Hannu Krosing
On E, 2005-05-02 at 18:47 +0300, Heikki Linnakangas wrote:
 On Mon, 2 May 2005, Hannu Krosing wrote:

  It would be nice if I coud st up some timeut using keepalives (like ssh-
  s ProtocoKeepalives) and use similar timeouts on client and server.
 
 FWIW, I've been bitten by this problem twice with other applications.
 
 1. We had a DB2 database with clients running in other computers in the 
 network. A faulty switch caused random network outages. If the connection 
 timed out and the client was unable to send it's request to the server, 
 the client would notice that the connection was down, and open a new one. 
 But the server never noticed that the connection was dead. Eventually, 
 the maximum number of connections was reached, and the administrator had 
 to kill all the connections manually.
 
 2. We had a custom client-server application using TCP across a network. 
 There was stateful firewall between the server and the clients that 
 dropped the connection at night when there was no activity. After a 
 couple of days, the server reached the maximum number of threads on the 
 platform and stopped accepting new connections.
 
 In case 1, the switch was fixed. If another switch fails, the same will 
 happen again. In case 2, we added an application-level heartbeat that 
 sends a dummy message from server to client every 10 minutes.
 
 TCP keep-alive with a small interval would have saved the day in both 
 cases. Unfortunately the default interval must be = 2 hours, according 
 to RFC1122.
 
 On most platforms, including Windows and Linux, the TCP keep-alive 
 interval can't be set on a per-connection basis. The ideal solution would 
 be to modify the operating system to support it.

Yep. I think this could be done for (our instance of) linux, but getting
it into mainstream kernel, and then into all popular distros is a lot of
effort.

Going the ssh way (protocol level keepalives) might be way simpler.

 What we can do in PostgreSQL is to introduce an application-level 
 heartbeat. A simple Hello world message sent from server to client that 
 the client would ignore would do the trick.

Actually we would need a round-trip indicator (some there-and-back
message: A: do you copy 42 -- B: yes I copy 42), and not just send. The
difficult part is what to do when one side happens to send the keepalive
in the middle of actual data transfer ? 

move to packet oriented connections (UDP) and make different packet
types independant of each other? 

-- 
Hannu Krosing [EMAIL PROTECTED]


---(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] ARCHIVE TABLES (was: possible TODO: read-only

2005-05-03 Thread Hannu Krosing
On E, 2005-05-02 at 15:59 -0500, Jim C. Nasby wrote:
 Out of curiosity, what would be required to allow deletes (but not
 updates)?

Deletes *are* the problem (and update is internally a delete+insert).
Allowing deletes means no more selects from indexes only as tid can't be
used for determining visibility.

  My thinking is that you'd want *some* way to be able to prune
 data. Since you won't want to store an entire XID/CID for the delete, I
 think it would be acceptable to keep a table of XID/CID values for
 deletes and just store a pointer to that table in the tuple header. This
 means you would be limited (perhaps severely) in the number of deletes
 you could issue between vacuums, but for this instance that seems
 perfectly reasonable. It might be worth using this same technique for
 inserts as well. If the only inserting into the table is from some
 nightly bulk process, you certainly don't need to store 4 (or is it 8)
 bytes of inserting transaction data with each tuple.

The idea was using archive tables in partitioned tables if you need to
prune data.

 Also, how does this allow for index scans without touching the heap?
 AFAIK when a tuple is inserted but not committed it is already in the
 index.

You can check if tid (tuple id) is bigger than last valid (committed)
tuple id in the table.

-- 
Hannu Krosing [EMAIL PROTECTED]


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


Re: [HACKERS] ARCHIVE TABLES (was: possible TODO: read-only

2005-05-03 Thread Hannu Krosing
On E, 2005-05-02 at 15:59 -0500, Jim C. Nasby wrote:
 Out of curiosity, what would be required to allow deletes (but not
 updates)?

Perhaps a CLUSTER indexname ON tablename WHERE xxx could be used for
that. 

That is a CLUSTER command that leaves out the tuples which do not
satisfy xxx.

-- 
Hannu Krosing [EMAIL PROTECTED]


---(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] ARCHIVE TABLES (was: possible TODO: read-only

2005-05-03 Thread Hannu Krosing
On E, 2005-05-02 at 23:59 +0200, Jochem van Dieten wrote:
 On 5/2/05, Jim C. Nasby wrote:


 I think the advantages of both the ability to append to and delete
 from an archived table are largely negated with the design for table
 partitioning as emerging from the work of Simon e.a. on the bizgres
 list.

True for delete, but not for append (see below)

 The advantage of being able to append would be negated by having a
 partitioned table where you archive certain partitions and all
 attempts to subsequently append to those partitions are redirected to
 the catch-all partition. 

If you can append to the table, it will get the advantage of index-only
scans and space-saving headerless tuples from the start, not just after
freezing it. 

Of course we could add a feature of 'closing' the archive table for
appends at some point and then omit the tid checksm but I think the tid
checks are so cheap that the added need to check if the tid comparison
is needed will make this useless.

 For the delete case that would fit the most
 common usage pattern of an archive to periodically drop off historic
 data, is to simply drop an entire partition.
 
 Within such a partitioning framework a CLUSTER partitionname ARCHIVE
 operation that truly sets the data in that partition in stone might
 not be a totally outrageous concept :)

The main use of archive tables would be for use as partitions in a
partitioned table. But some big static fact tables could also benefit.

The advantage of having the ability to append to such tables is mainly
performance/storage one - you can create a large table with no per-tuple
visibility info (no stored tuple header) from the start, without the
hassle of reclustering it.

Headerless tuples were not an original design target, but they do seem 
desirable for huge but narrow tables.

-- 
Hannu Krosing [EMAIL PROTECTED]


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


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Peter Eisentraut
Am Montag, 2. Mai 2005 20:14 schrieb Bruce Momjian:
 I posted this compromise and no one replied so I thought everyone was OK
 with it.  It gets it into CVS, but has a separate compile stage to deal
 with the recursive dependency problem.

How will a separate compile stage work for actually building, say, RPM or 
Debian packages?  The only way I can see is wrapping up the PostgreSQL 
distribution tarball a second time as a plphp source package and build from 
there, which seems quite weird.

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

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


Re: [HACKERS] BTW, if anyone wants to work on it...

2005-05-03 Thread Magnus Hagander
 We've had a couple of cases recently where we had to advise 
 DBAs to make manual changes in the system catalogs --- see 
 for instance the 7.4.2 release notes or 
 http://archives.postgresql.org/pgsql-announce/2005-05/msg1.php
 
 It'd be nicer if this sort of thing could be handled 
 automatically by a software update.  There are good reasons 
 why it's not trivial, but having been burnt twice in recent 
 memory, I'm starting to think it'd be worth setting up a 
 mechanism to handle such changes automatically.  Anyone up 
 for working on it?

I suppose you want something a bit less trivial than this one, but if
somebody has benefit from it, here's the script I've been using to patch
my dbs. It's very trivial - error checking is dba-eyeballs, for example.
But if there are lots of databases, at least it saves a few steps.

A more complete solution would of course require some better error
checking ;-)

//Magnus


patchpg.sh
Description: patchpg.sh

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


[HACKERS] Regression tests

2005-05-03 Thread Dag-Erling Smørgrav
Are there any regression tests or unit tests beyond 'make check', or
possibly benchmarks which not only measure performance but also verify
that the results are correct?  I have patches which I want to test
under high load from multiple concurrent clients, so 'make check'
isn't enough.  Google has tons of hits for articles and RDBMS reviews
that mention SuperSmack, but no hits for the actual software.

DES
-- 
Dag-Erling Smørgrav - [EMAIL PROTECTED]

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


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Stephen Frost
* Peter Eisentraut ([EMAIL PROTECTED]) wrote:
 Am Montag, 2. Mai 2005 20:14 schrieb Bruce Momjian:
  I posted this compromise and no one replied so I thought everyone was OK
  with it.  It gets it into CVS, but has a separate compile stage to deal
  with the recursive dependency problem.
 
 How will a separate compile stage work for actually building, say, RPM or 
 Debian packages?  The only way I can see is wrapping up the PostgreSQL 
 distribution tarball a second time as a plphp source package and build from 
 there, which seems quite weird.

More than a little ugly, no thanks, please don't...

It should really be made to be buildable outside of the PostgreSQL
source tree, depending only upon the server API (which is provided in a
seperate Debian package which plphp could build-depend on).  This is
exactly how Slony will be packaged too..  From what I've gathered it
sounds like the only issue with this is that it may not get updated when
the server API changes?  Are there other issues?  Is there something it
needs that isn't or can't be provided by a seperate server API package?

(For those curious- my current plans are that slony will actually
generate a couple differnet binary debs, slon, slonik and
libpostgresql-slon or so.  libpostgresql-slon will have the .so which is
installed in the postgresql libdir, slon and slonik have their
associated programs and supporting things (.sql scripts, etc)).

Thanks,

Stephen


signature.asc
Description: Digital signature


Re: [HACKERS] pg_locks needs a facelift

2005-05-03 Thread Merlin Moncure
 On Mon, May 02, 2005 at 02:12:33PM -0400, Merlin Moncure wrote:
 Well, there's nothing that says you have to actually refer to locks by
 name. When I proposed this what I proposed is that the userlock module
 provide a dedicated means to map a lock name to a lock number, and
 reserve one of the 'lock spaces' (the 16 bit number) for this use,
just
 as one of them is currently reserved for locks based on OID. But I
also
 can't think of any reason why lock names need to be persistent, so I
 imagine you could store a list of lock names in shared memory with no
 backing storage.

Well, actually, as currently implemented the userlock module provides 48
bits of lock space but none of the bits are reserved for
anything...interface functions which assign the lower 32 bits to oid are
provided as a convenience.  IIRC userlocks were first implemented in
1998 when the oid played a larger role, it is now quite rightly
deprecated and my intention is to remove it from the userlock module.

The new userlocks should be able to take advantage of refinements in the
locktag structure and provide a full 64 bits to resolve the lock at the
least.  64 bits is the magic number because it now works quite nicely
with sequences.  Could you be more specific about how a string based
user lock system would be implemented?


Merlin
 

---(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] Regression tests

2005-05-03 Thread Christopher Kings-Lynne
Are there any regression tests or unit tests beyond 'make check', or
possibly benchmarks which not only measure performance but also verify
that the results are correct?  I have patches which I want to test
under high load from multiple concurrent clients, so 'make check'
isn't enough.  Google has tons of hits for articles and RDBMS reviews
that mention SuperSmack, but no hits for the actual software.
The whole point of make check is to check correctness, not performance. 
 It has concurrent loading as well.

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


Re: [HACKERS] Feature freeze date for 8.1

2005-05-03 Thread Tom Lane
Hannu Krosing [EMAIL PROTECTED] writes:
 What we can do in PostgreSQL is to introduce an application-level 
 heartbeat. A simple Hello world message sent from server to client that 
 the client would ignore would do the trick.

 Actually we would need a round-trip indicator (some there-and-back
 message: A: do you copy 42 -- B: yes I copy 42), and not just send.

No, a one-way message is sufficient.  The reason is that once we've
asked the TCP stack to send something, the customary timeouts before
declaring the connection dead are far shorter than they are for
keepalives.  Also see the point that we must not assume that the
client-side library can get control on short notice (or indeed any
notice).

I am a tad worried about the possibility that if the client does nothing
for long enough, the TCP output buffer will fill causing the backend to
block at send().  A permanently blocked backend is bad news from a
performance point of view (it degrades the sinval protocol for everyone
else).

regards, tom lane

---(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] bitmap scan and explain analyze

2005-05-03 Thread Tom Lane
Tatsuo Ishii [EMAIL PROTECTED] writes:
 Why actual rows=0?

I couldn't think of any reasonably cheap way to count the actual rows
(especially in the presence of lossy bitmaps), so I just punted.

regards, tom lane

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

   http://www.postgresql.org/docs/faq


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Tom Lane
Peter Eisentraut [EMAIL PROTECTED] writes:
 Am Montag, 2. Mai 2005 20:14 schrieb Bruce Momjian:
 I posted this compromise and no one replied so I thought everyone was OK
 with it.  It gets it into CVS, but has a separate compile stage to deal
 with the recursive dependency problem.

 How will a separate compile stage work for actually building, say, RPM or 
 Debian packages?  The only way I can see is wrapping up the PostgreSQL 
 distribution tarball a second time as a plphp source package and build from
 there, which seems quite weird.

I think the idea is that plphp would be in our CVS, but would not be
shipped as part of the main tarball, rather as its own separate tarball.

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] Feature freeze date for 8.1

2005-05-03 Thread Dave Held
 -Original Message-
 From: Tom Lane [mailto:[EMAIL PROTECTED]
 Sent: Tuesday, May 03, 2005 9:31 AM
 To: Hannu Krosing
 Cc: Heikki Linnakangas; Neil Conway; Oliver Jowett;
 [EMAIL PROTECTED]; Peter Eisentraut; Alvaro Herrera;
 pgsql-hackers@postgresql.org
 Subject: Re: [HACKERS] Feature freeze date for 8.1
 
 [...]
 I am a tad worried about the possibility that if the client 
 does nothing for long enough, the TCP output buffer will fill
 causing the backend to block at send().  A permanently blocked
 backend is bad news from a performance point of view (it
 degrades the sinval protocol for everyone else).

So use MSG_DONTWAIT or O_NONBLOCK on the keepalive packets.
That won't stop the buffer from getting filled up, but if you
get an EAGAIN while sending a keepalive packet, you know the
client is either dead or really busy.

__
David B. Held
Software Engineer/Array Services Group
200 14th Ave. East,  Sartell, MN 56377
320.534.3637 320.253.7800 800.752.8129

---(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: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Marc G. Fournier
On Tue, 3 May 2005, Tom Lane wrote:
Peter Eisentraut [EMAIL PROTECTED] writes:
Am Montag, 2. Mai 2005 20:14 schrieb Bruce Momjian:
I posted this compromise and no one replied so I thought everyone was OK
with it.  It gets it into CVS, but has a separate compile stage to deal
with the recursive dependency problem.

How will a separate compile stage work for actually building, say, RPM or
Debian packages?  The only way I can see is wrapping up the PostgreSQL
distribution tarball a second time as a plphp source package and build from
there, which seems quite weird.
I think the idea is that plphp would be in our CVS, but would not be
shipped as part of the main tarball, rather as its own separate tarball.
That is what I'm hoping for ... if it can be shipped as a seperate 
tarball, my arguments *against* including it become moot, since packagers 
(and ports) can have a nice small, quick to download package instead of 
having to re-download a 11MB file each time ...

I don't mind if its *also* ship'd in the main distribution as well, I just 
want that 'quick to download since I already have the libraries/headers 
installed' package ...


Marc G. Fournier   Hub.Org Networking Services (http://www.hub.org)
Email: [EMAIL PROTECTED]   Yahoo!: yscrappy  ICQ: 7615664
---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?
  http://www.postgresql.org/docs/faq


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Joshua D. Drake
Stephen Frost wrote:
* Peter Eisentraut ([EMAIL PROTECTED]) wrote:
Am Montag, 2. Mai 2005 20:14 schrieb Bruce Momjian:
I posted this compromise and no one replied so I thought everyone was OK
with it.  It gets it into CVS, but has a separate compile stage to deal
with the recursive dependency problem.
How will a separate compile stage work for actually building, say, RPM or 
Debian packages?  The only way I can see is wrapping up the PostgreSQL 
distribution tarball a second time as a plphp source package and build from 
there, which seems quite weird.

More than a little ugly, no thanks, please don't...
Not really that ugly. It is just an extra compile step. Besides
you don't have to package it just because it is in the Tarball.
Sincerely,
Joshua D. Drake
Command Prompt, Inc.
It should really be made to be buildable outside of the PostgreSQL
source tree, depending only upon the server API (which is provided in a
seperate Debian package which plphp could build-depend on).  This is
exactly how Slony will be packaged too..  From what I've gathered it
sounds like the only issue with this is that it may not get updated when
the server API changes?  Are there other issues?  Is there something it
needs that isn't or can't be provided by a seperate server API package?
(For those curious- my current plans are that slony will actually
generate a couple differnet binary debs, slon, slonik and
libpostgresql-slon or so.  libpostgresql-slon will have the .so which is
installed in the postgresql libdir, slon and slonik have their
associated programs and supporting things (.sql scripts, etc)).
Thanks,
		Stephen

---(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: [pgsql-advocacy] [HACKERS] Decision Process WAS: Increased company involvement

2005-05-03 Thread Dave Held
 -Original Message-
 From: Andrew Dunstan [mailto:[EMAIL PROTECTED]
 Sent: Monday, May 02, 2005 7:05 PM
 To: [EMAIL PROTECTED]
 Cc: Dave Held; [EMAIL PROTECTED];
 pgsql-hackers@postgresql.org
 Subject: Re: [pgsql-advocacy] [HACKERS] Decision Process WAS: 
 Increased
 company involvement
 
 [...]
 I nat happy avout that last point - personally, I value most 
 highly the views of those who contribute code or similar and
 least highly the views of those whose principal contribution
 is opinions.

Maybe so, but if you were a new contributor, why would you write
a bunch of code with no assurance that it would go anywhere?
It seems wiser to invest your time familiarizing yourself with
the ins and outs of the codebase and the coding style of patches
by looking at other people's work.  It also seems smarter to
lurk and see what kinds of changes are likely to be considered.
I doubt you would think highly of a newcomer that contributed
code that was not in the style of the codebase and was for a
feature not on the TODO list and that didn't get community buy-in
first.  But then, how do you get community buy-in if you don't
contribute code, according to you?

__
David B. Held
Software Engineer/Array Services Group
200 14th Ave. East,  Sartell, MN 56377
320.534.3637 320.253.7800 800.752.8129

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


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Peter Eisentraut
Joshua D. Drake wrote:
 Not really that ugly. It is just an extra compile step. Besides
 you don't have to package it just because it is in the Tarball.

Since you keep raising that point: Not packaging something is not a 
valid solution to something being hard to package.

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

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


[HACKERS] distributed database

2005-05-03 Thread mohammad izwan ibrahim
hello there

does postgresql support distributed database

tq

---(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] distributed database

2005-05-03 Thread Peter Eisentraut
mohammad izwan ibrahim wrote:
 does postgresql support distributed database

The answer is no, but please pick the correct mailing list for such 
questions in the future.

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

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

   http://www.postgresql.org/docs/faq


Re: [HACKERS] [PERFORM] Bad n_distinct estimation; hacks suggested?

2005-05-03 Thread Markus Schaber
Hi, Josh,

Josh Berkus wrote:

 Yes, actually.   We need 3 different estimation methods:
 1 for tables where we can sample a large % of pages (say, = 0.1)
 1 for tables where we sample a small % of pages but are easily estimated
 1 for tables which are not easily estimated by we can't afford to sample a 
 large % of pages.
 
 If we're doing sampling-based estimation, I really don't want people to lose 
 sight of the fact that page-based random sampling is much less expensive than 
 row-based random sampling.   We should really be focusing on methods which 
 are page-based.

Would it make sense to have a sample method that scans indices? I think
that, at least for tree based indices (btree, gist), rather good
estimates could be derived.

And the presence of a unique index should lead to 100% distinct values
estimation without any scan at all.

Markus


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


Re: [HACKERS] Feature freeze date for 8.1

2005-05-03 Thread Heikki Linnakangas
On Tue, 3 May 2005, Tom Lane wrote:
I am a tad worried about the possibility that if the client does nothing
for long enough, the TCP output buffer will fill causing the backend to
block at send().  A permanently blocked backend is bad news from a
performance point of view (it degrades the sinval protocol for everyone
else).
Do you mean this scenario:
1. client application doesn't empty its receive buffer (doesn't call
   read)
2. server keeps sending data
3. client receive buffer fills
4. server send buffer fills
5. server send blocks.
Unfortunately there's no way to tell if the client is misbehaving or the 
network connection is slow or the client is too busy to handle the data 
fast enough.

I guess we could increase the send buffer (can it be set per-connection?), 
but that only delays the problem.

Does statement_timeout fire on that scenario? How about the new
transaction_timeout option discussed in other threads?
- Heikki
---(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] [pgsql-advocacy] Increased company involvement

2005-05-03 Thread Thomas Hallgren
Marc G. Fournier wrote:
On Tue, 3 May 2005, Tom Lane wrote:
I think the idea is that plphp would be in our CVS, but would not be
shipped as part of the main tarball, rather as its own separate tarball.

That is what I'm hoping for ... if it can be shipped as a seperate 
tarball, my arguments *against* including it become moot, since 
packagers (and ports) can have a nice small, quick to download package 
instead of having to re-download a 11MB file each time ...

I don't mind if its *also* ship'd in the main distribution as well, I 
just want that 'quick to download since I already have the 
libraries/headers installed' package ...

Any other PL's not currently in your CVS that you might consider to 
bring in while you're at it?

Regards,
Thomas Hallgren
---(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: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Joshua D. Drake
Peter Eisentraut wrote:
Am Montag, 2. Mai 2005 20:14 schrieb Bruce Momjian:
I posted this compromise and no one replied so I thought everyone was OK
with it.  It gets it into CVS, but has a separate compile stage to deal
with the recursive dependency problem.

How will a separate compile stage work for actually building, say, RPM or 
Debian packages?  The only way I can see is wrapping up the PostgreSQL 
distribution tarball a second time as a plphp source package and build from 
there, which seems quite weird.
Well like many rpms it will have an external dependency. You must have 
perl installed to install plPerl. The main problem here is that you 
would need a base install of php at a minimum.

The PHP installed would not need to support PostgreSQL at the time. In 
fact now that I think about it depending on how you did it, this doesn't 
effect PostgreSQl as much as it effects PHP.

You could compile and install plPHP+PostgreSQL as long as PHP was 
installed regardless of the extensions that PHP supported at the time. 
So you wouldn't need to compile PostgreSQL twice but you may need to 
compile PHP twice. Once for plPHP and then once if you wanted PostgreSQL 
support.

Sincerely,
Joshua D. Drake
Command Prompt, Inc.



--
Your PostgreSQL solutions company - Command Prompt, Inc. 1.800.492.2240
PostgreSQL Replication, Consulting, Custom Programming, 24x7 support
Managed Services, Shared and Dedication Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/
---(end of broadcast)---
TIP 6: Have you searched our list archives?
  http://archives.postgresql.org


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Joshua D. Drake
I don't mind if its *also* ship'd in the main distribution as well, I 
just want that 'quick to download since I already have the 
libraries/headers installed' package ...
We could break out all of the pls at that point? Where if you downloaded 
postgresql-opt you would get plPHP, plPerl etc...

Sincerely,
Joshua D. Drake


Marc G. Fournier   Hub.Org Networking Services (http://www.hub.org)
Email: [EMAIL PROTECTED]   Yahoo!: yscrappy  ICQ: 7615664
---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?
  http://www.postgresql.org/docs/faq

--
Your PostgreSQL solutions company - Command Prompt, Inc. 1.800.492.2240
PostgreSQL Replication, Consulting, Custom Programming, 24x7 support
Managed Services, Shared and Dedication Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/
---(end of broadcast)---
TIP 6: Have you searched our list archives?
  http://archives.postgresql.org


[HACKERS] A proper fix for the conversion-function problem

2005-05-03 Thread Tom Lane
I tried disabling public EXECUTE access on the built-in conversion
functions, as we recommended yesterday, and found that it has one
small problem: the conversion regression test fails.  The test is
expecting that unprivileged users can create conversions, but since
CREATE CONVERSION requires you to have execute permissions on the
specified function, they can't if we do this.

This leaves me thinking that the best fix for the back branches
is the one [EMAIL PROTECTED] originally suggested: modify the
signature for conversion functions to use INTERNAL instead of CSTRING.
I haven't actually experimented with that yet, but will shortly.

Going forward, though, I really think we need to revisit the API
for conversion functions.  It seems a bit silly to have the
infrastructure to let ordinary users create conversions if they
can't create the functions needed to support them.

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] [pgsql-advocacy] Increased company involvement

2005-05-03 Thread Joshua D. Drake
I don't mind if its *also* ship'd in the main distribution as well, I 
just want that 'quick to download since I already have the 
libraries/headers installed' package ...

Any other PL's not currently in your CVS that you might consider to 
bring in while you're at it?
/me heres the sound of the plJava trumpets :)
Regards,
Thomas Hallgren
---(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

--
Your PostgreSQL solutions company - Command Prompt, Inc. 1.800.492.2240
PostgreSQL Replication, Consulting, Custom Programming, 24x7 support
Managed Services, Shared and Dedication Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/
---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?
  http://www.postgresql.org/docs/faq


Re: [HACKERS] [pgsql-advocacy] Increased company involvement

2005-05-03 Thread Marc G. Fournier
On Tue, 3 May 2005, Thomas Hallgren wrote:
Marc G. Fournier wrote:
On Tue, 3 May 2005, Tom Lane wrote:
I think the idea is that plphp would be in our CVS, but would not be
shipped as part of the main tarball, rather as its own separate tarball.

That is what I'm hoping for ... if it can be shipped as a seperate tarball, 
my arguments *against* including it become moot, since packagers (and 
ports) can have a nice small, quick to download package instead of having 
to re-download a 11MB file each time ...

I don't mind if its *also* ship'd in the main distribution as well, I just 
want that 'quick to download since I already have the libraries/headers 
installed' package ...

Any other PL's not currently in your CVS that you might consider to bring in 
while you're at it?
Personally, if the above condition can be met, my objections for inclusion
of anything into core would pretty much be voided, since it eliminates the
requirement to download a 'monster tar ball' if you don't have to ...
That doesn't say anyone else would have objections, only that I wouldn't 
...


Marc G. Fournier   Hub.Org Networking Services (http://www.hub.org)
Email: [EMAIL PROTECTED]   Yahoo!: yscrappy  ICQ: 7615664
---(end of broadcast)---
TIP 8: explain analyze is your friend


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Robert Treat
On Tue, 2005-05-03 at 12:40, Peter Eisentraut wrote:
 Joshua D. Drake wrote:
  Not really that ugly. It is just an extra compile step. Besides
  you don't have to package it just because it is in the Tarball.
 
 Since you keep raising that point: Not packaging something is not a 
 valid solution to something being hard to package.
 

Is telling the rpm maintainers to go fix their rpm's an option?  As has
been hashed out before, the only thing that makes plphp different from
other pl's is that some of the current packagers are taking shortcuts
with the packaging scripts which introduces dependency issues. IMHO what
is included in the postgresql cvs and what is included in the main
tarball for postgresql should not be dictated by outside packagers. 


Robert Treat
-- 
Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL


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

   http://archives.postgresql.org


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Joshua D. Drake
Peter Eisentraut wrote:
Joshua D. Drake wrote:
Not really that ugly. It is just an extra compile step. Besides
you don't have to package it just because it is in the Tarball.

Since you keep raising that point: Not packaging something is not a 
valid solution to something being hard to package.
Except that I don't consider it difficult. I do it all the time, it can 
be easily scripted.

Sincerely,
Joshua D. Drake
--
Your PostgreSQL solutions company - Command Prompt, Inc. 1.800.492.2240
PostgreSQL Replication, Consulting, Custom Programming, 24x7 support
Managed Services, Shared and Dedication Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/
---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Marc G. Fournier
On Tue, 3 May 2005, Joshua D. Drake wrote:
I don't mind if its *also* ship'd in the main distribution as well, I just 
want that 'quick to download since I already have the libraries/headers 
installed' package ...
We could break out all of the pls at that point? Where if you downloaded 
postgresql-opt you would get plPHP, plPerl etc...
Optimally, you would get rid of -opt altogether, and leave it as the 
individual pl(s) ... the main purposes of the smaller tar balls is so that 
someone building a port (*BSDs) or a package (other OSs) would only need 
to download the component that applies to them, and someone installing 
from source, similar ...

Another benefit would be the ability, for instance, of there being a plPHP 
project on pgfoundry, where, when a release is made, the tar file is 
copied up to there (by the project maintainer, not by me) ... this would 
be good to allow sub-projects like this to be able have their own 
discussion forms, bug tracking, etc ... while the main code is still 
maintained in the main source tree ...

My primary desire is to avoid having to download several Meg of tar 
ball(s) in order to add a module to an existing server ... if that can be 
accomplished, then my main objection to adding things to the core CVS are 
eliminated ...


Marc G. Fournier   Hub.Org Networking Services (http://www.hub.org)
Email: [EMAIL PROTECTED]   Yahoo!: yscrappy  ICQ: 7615664
---(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: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Joshua D. Drake

My primary desire is to avoid having to download several Meg of tar 
ball(s) in order to add a module to an existing server ... if that can 
be accomplished, then my main objection to adding things to the core CVS 
are eliminated ...
I guess I don't see the problem of the PostgreSQL distribution being 11 
megs, heck even 50 megs. I know that some places don't have the 
bandwidth we do but it only takes me about 90 seconds to download the 
distribution.

Sincerely,
Joshua D. Drake
--
Your PostgreSQL solutions company - Command Prompt, Inc. 1.800.492.2240
PostgreSQL Replication, Consulting, Custom Programming, 24x7 support
Managed Services, Shared and Dedication Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/
---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: [pgsql-advocacy] [HACKERS] Decision Process WAS: Increased company

2005-05-03 Thread Andrew Dunstan

Dave Held wrote:
-Original Message-
From: Andrew Dunstan [mailto:[EMAIL PROTECTED]
Sent: Monday, May 02, 2005 7:05 PM
To: [EMAIL PROTECTED]
Cc: Dave Held; [EMAIL PROTECTED];
pgsql-hackers@postgresql.org
Subject: Re: [pgsql-advocacy] [HACKERS] Decision Process WAS: 
Increased
company involvement

[...]
I nat happy avout that last point - personally, I value most 
highly the views of those who contribute code or similar and
least highly the views of those whose principal contribution
is opinions.
   

Maybe so, but if you were a new contributor, why would you write
a bunch of code with no assurance that it would go anywhere?
 

People write code for lots of reasons, only some of which have directly 
to do with geting that code into the distributed product.

But I digress :-)
It seems wiser to invest your time familiarizing yourself with
the ins and outs of the codebase and the coding style of patches
by looking at other people's work.  It also seems smarter to
lurk and see what kinds of changes are likely to be considered.
I doubt you would think highly of a newcomer that contributed
code that was not in the style of the codebase and was for a
feature not on the TODO list and that didn't get community buy-in
first.  

I never suggested otherwise.
But then, how do you get community buy-in if you don't
contribute code, according to you?
 

The surest path is to do things incrementally. And ask *lots* of 
questions. The bigger the development, and the more inexperienced you 
are, the more questions you should ask. Just getting the answers to 
yuour questions gets you some buyin (unless the consensus answer is 
don't do it). But the best bet is to build up credibility by doing 
small projects to start with.

The postgres processes are nebulous, ill-defined, even. I don't see that 
as necessarily a bad thing.

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


Re: [HACKERS] Feature freeze date for 8.1

2005-05-03 Thread Tom Lane
Heikki Linnakangas [EMAIL PROTECTED] writes:
 Does statement_timeout fire on that scenario? How about the new
 transaction_timeout option discussed in other threads?

Probably neither, since very likely you aren't in a transaction at all.
I'd not expect the server to send these messages except when it's been
idle for awhile, so statement_timeout is certainly irrelevant.

BTW, the upthread proposal of just dropping the message (which is what
O_NONBLOCK would do) doesn't work; it will lose encryption sync on SSL
connections.

regards, tom lane

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

   http://www.postgresql.org/docs/faq


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Andrew Dunstan

Robert Treat wrote:
Is telling the rpm maintainers to go fix their rpm's an option?  As has
been hashed out before, the only thing that makes plphp different from
other pl's is that some of the current packagers are taking shortcuts
with the packaging scripts which introduces dependency issues. IMHO what
is included in the postgresql cvs and what is included in the main
tarball for postgresql should not be dictated by outside packagers. 


 

That wasn't my understanding of the previous discussion. Does not php 
require pg client support configured in at build time?

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


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Tom Lane
Robert Treat [EMAIL PROTECTED] writes:
 Is telling the rpm maintainers to go fix their rpm's an option?  As has
 been hashed out before, the only thing that makes plphp different from
 other pl's is that some of the current packagers are taking shortcuts
 with the packaging scripts which introduces dependency issues. IMHO what
 is included in the postgresql cvs and what is included in the main
 tarball for postgresql should not be dictated by outside packagers. 

Outside packagers?  What makes you think PG RPMs are built by outside
packagers?  The PGDG RPMs are certainly built by us, and Red Hat's PG
RPMs are built by somebody named Tom Lane, and last I heard Oliver
Elphick was handling the Debian packaging.  We have more control over
those things than you might think.  What we don't have control over is
what the PHP people choose to put in their tarball ... and that means
there's a circularity problem if we try to merge plphp.  I think you
are blaming the messengers.

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: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Robert Treat
On Tuesday 03 May 2005 13:46, Andrew Dunstan wrote:
 Robert Treat wrote:
 Is telling the rpm maintainers to go fix their rpm's an option?  As has
 been hashed out before, the only thing that makes plphp different from
 other pl's is that some of the current packagers are taking shortcuts
 with the packaging scripts which introduces dependency issues. IMHO what
 is included in the postgresql cvs and what is included in the main
 tarball for postgresql should not be dictated by outside packagers.

 That wasn't my understanding of the previous discussion. Does not php
 require pg client support configured in at build time?


If your compiling it from source, it works similarly to perl... you only need 
pg when compiling pg support into php, but you dont need tthis in for plphp. 

The problem stems from things like the php rpm spec, which has a module 
dependency on postgresql.  This would create a circular dependency if we were 
to put a dependency into the pg rpm spec for plphp.  

I think the solution to this is to create a seperate rpm spec for php-pgsql 
support, which would fall in line with how the php rpm packages are 
distributed, but I'm not an expert in rpm specs...

-- 
Robert Treat
Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL

---(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] Feature freeze date for 8.1

2005-05-03 Thread Dave Held
 -Original Message-
 From: Tom Lane [mailto:[EMAIL PROTECTED]
 Sent: Tuesday, May 03, 2005 12:39 PM
 To: Heikki Linnakangas
 Cc: Hannu Krosing; Neil Conway; Oliver Jowett;
 [EMAIL PROTECTED]; Peter Eisentraut; Alvaro Herrera;
 pgsql-hackers@postgresql.org
 Subject: Re: [HACKERS] Feature freeze date for 8.1
 
 [...]
 BTW, the upthread proposal of just dropping the message (which is what
 O_NONBLOCK would do) doesn't work; it will lose encryption sync on SSL
 connections.

How about an optional second connection to send keepalive pings?
It could be unencrypted and non-blocking.  If authentication is
needed on the ping port (which it doesn't seem like it would need
to be), it could be very simple, like this:

* client connects to main port
* server authenticates client normally
* server sends nonce token for keepalive authentication
* client connects to keepalive port
* client sends nonce token on keepalive port
* server associates matching keepalive connection with main 
connection
* if server does not receive matching token within a small
timeout, no keepalive support enabled for this session

__
David B. Held
Software Engineer/Array Services Group
200 14th Ave. East,  Sartell, MN 56377
320.534.3637 320.253.7800 800.752.8129

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

   http://archives.postgresql.org


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Marc G. Fournier
On Tue, 3 May 2005, Joshua D. Drake wrote:

My primary desire is to avoid having to download several Meg of tar ball(s) 
in order to add a module to an existing server ... if that can be 
accomplished, then my main objection to adding things to the core CVS are 
eliminated ...
I guess I don't see the problem of the PostgreSQL distribution being 11 megs, 
heck even 50 megs. I know that some places don't have the bandwidth we do but 
it only takes me about 90 seconds to download the distribution.
Granted, we in the West are lucky ... but I know alot of ppl still on 
dialup, and I believe there are still alot of places in Europe (or is/was 
it just GB?) that pay per byte for their bandwidth ... even myself, at 
home, on a cable modem, have at times found downloads to be atrociously 
slow due to load n the network ...


Marc G. Fournier   Hub.Org Networking Services (http://www.hub.org)
Email: [EMAIL PROTECTED]   Yahoo!: yscrappy  ICQ: 7615664
---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Marc G. Fournier
On Tue, 3 May 2005, Marc G. Fournier wrote:
On Tue, 3 May 2005, Joshua D. Drake wrote:

My primary desire is to avoid having to download several Meg of tar 
ball(s) in order to add a module to an existing server ... if that can be 
accomplished, then my main objection to adding things to the core CVS are 
eliminated ...
I guess I don't see the problem of the PostgreSQL distribution being 11 
megs, heck even 50 megs. I know that some places don't have the bandwidth 
we do but it only takes me about 90 seconds to download the distribution.
Granted, we in the West are lucky ... but I know alot of ppl still on 
dialup, and I believe there are still alot of places in Europe (or is/was it 
just GB?) that pay per byte for their bandwidth ... even myself, at home, on 
a cable modem, have at times found downloads to be atrociously slow due to 
load n the network ...
If anyone knows a *good* source for this sort of thing, please send me a 
URL, but a quick search on google finds:

The market share for permanent connections continued to increase in 
December and now accounts for 39.4 per cent of all connections. This 
compares with a market share of 21.9 per cent a year before.
	http://www.i10.org.uk/pooled/articles/BF_NEWSART/view.asp?Q=BF_NEWSART_136457

Which, to me, indicates that ~60.6% of all connections are still dial-up 
(does ISDN count as a permanent connection?) ... but, I don't know where 
they are getting their #s from, so, as I said, if someone else can point 
me to better stats, please do ...


Marc G. Fournier   Hub.Org Networking Services (http://www.hub.org)
Email: [EMAIL PROTECTED]   Yahoo!: yscrappy  ICQ: 7615664
---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
   (send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Andrew Dunstan

Robert Treat wrote:
On Tuesday 03 May 2005 13:46, Andrew Dunstan wrote:
 

Robert Treat wrote:
   

Is telling the rpm maintainers to go fix their rpm's an option?  As has
been hashed out before, the only thing that makes plphp different from
other pl's is that some of the current packagers are taking shortcuts
with the packaging scripts which introduces dependency issues. IMHO what
is included in the postgresql cvs and what is included in the main
tarball for postgresql should not be dictated by outside packagers.
 

That wasn't my understanding of the previous discussion. Does not php
require pg client support configured in at build time?
   

If your compiling it from source, it works similarly to perl... you only need 
pg when compiling pg support into php, but you dont need tthis in for plphp. 
 


I suspect you are missing the point completely.
It is in fact not like building perl at all. I just downloaded 
php-4.3.11 and got this from configure --help:

 --with-pgsql[=DIR]  Include PostgreSQL support.  DIR is the PostgreSQL
 base install directory, defaults to 
/usr/local/pgsql.

You will not find any such parameter for building perl.
Now it is true that you don't need this in for plphp. But if you want 
php to have pg client support you need pg built first. And no sane 
packager is going to build php twice.

I understand (correct me if I'm wrong) that php is moving to get rid of 
this compile-time dependency - but it's not gone yet, to the best of my 
knowledge.

cheers
andrew

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


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Joshua D. Drake
Mitch Pirtle wrote:
On 4/30/05, Jim C. Nasby [EMAIL PROTECTED] wrote:
If money's not an issue anymore, can we get a bigger box to host
pgfoundry on then? :)

If you guys are planning on running Gforge, then you better make 'box' plural.
Well we already run it :) For pgFoundry and you are correct it seems to 
be a bit of a pig. Our new machines should handle it better though.

Sincerely,
Joshua D. Drake

--
Your PostgreSQL solutions company - Command Prompt, Inc. 1.800.492.2240
PostgreSQL Replication, Consulting, Custom Programming, 24x7 support
Managed Services, Shared and Dedication Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/
---(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: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Stephen Frost
* Robert Treat ([EMAIL PROTECTED]) wrote:
 If your compiling it from source, it works similarly to perl... you only need 
 pg when compiling pg support into php, but you dont need tthis in for plphp. 
 
 The problem stems from things like the php rpm spec, which has a module 
 dependency on postgresql.  This would create a circular dependency if we were 
 to put a dependency into the pg rpm spec for plphp.  
 
 I think the solution to this is to create a seperate rpm spec for php-pgsql 
 support, which would fall in line with how the php rpm packages are 
 distributed, but I'm not an expert in rpm specs...

Just to point it out, Debian handles circular dependencies like these
without too much difficulty.  It's really only an issue when first
building the various packages, and then you just build one without all
the support initially, build the other, then rebuild the first with the
support.

So, in general, no, I don't think this should be justification for it
being part of the main source tree and as a Debian maintainer would much
prefer it be seperate and able to be compiled outside of the core
Postgres tree..

Stephen


signature.asc
Description: Digital signature


[HACKERS] Bogus assertion in multixact.c?

2005-05-03 Thread Heikki Linnakangas
There's an assertion in multixact.c, MultiXactIdExpand function, line 273:
   Assert(!TransactionIdEquals(multi, xid));
where multi is a MultiXactId and xid is a TransactionId.
Isn't this bogus? If I understand the code correctly, multixactids and 
regular xids live in completely separate id spaces. Therefore a comparison 
between them makes no sense.

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


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Marc G. Fournier
On Tue, 3 May 2005, Andrew Dunstan wrote:

Robert Treat wrote:
On Tuesday 03 May 2005 13:46, Andrew Dunstan wrote:
Robert Treat wrote:
Is telling the rpm maintainers to go fix their rpm's an option?  As has
been hashed out before, the only thing that makes plphp different from
other pl's is that some of the current packagers are taking shortcuts
with the packaging scripts which introduces dependency issues. IMHO what
is included in the postgresql cvs and what is included in the main
tarball for postgresql should not be dictated by outside packagers.
That wasn't my understanding of the previous discussion. Does not php
require pg client support configured in at build time?

If your compiling it from source, it works similarly to perl... you only 
need pg when compiling pg support into php, but you dont need tthis in for 
plphp. 

I suspect you are missing the point completely.
It is in fact not like building perl at all. I just downloaded php-4.3.11 and 
got this from configure --help:

--with-pgsql[=DIR]  Include PostgreSQL support.  DIR is the PostgreSQL
base install directory, defaults to 
/usr/local/pgsql.

You will not find any such parameter for building perl.
Now it is true that you don't need this in for plphp. But if you want php to 
have pg client support you need pg built first. And no sane packager is going 
to build php twice.
Actually, if you look through FreeBSD ports, this is exactly what happens 
... when you build /usr/ports/devel/php4, it builds a vanilla php, no 
modules ... if you want pgsql support, you go into 
/usr/ports/databases/php4-pgsql, and build that (which has a dependency on 
lang/php4) ...

So, for plphp, a port would just have to install /usr/ports/lang/php4 to 
build, but would not necessarily build php4-pgsql ...

it is done this way to avoid packagers having to build a monolithich 
contains everything php4 ...


Marc G. Fournier   Hub.Org Networking Services (http://www.hub.org)
Email: [EMAIL PROTECTED]   Yahoo!: yscrappy  ICQ: 7615664
---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: [HACKERS] Bogus assertion in multixact.c?

2005-05-03 Thread Alvaro Herrera
On Tue, May 03, 2005 at 09:33:30PM +0300, Heikki Linnakangas wrote:
 There's an assertion in multixact.c, MultiXactIdExpand function, line 273:
 
Assert(!TransactionIdEquals(multi, xid));
 
 where multi is a MultiXactId and xid is a TransactionId.
 
 Isn't this bogus? If I understand the code correctly, multixactids and 
 regular xids live in completely separate id spaces. Therefore a comparison 
 between them makes no sense.

Well :-)  actually that particular MultiXactId may be a TransactionId.
(See the isMulti param, and comments at the beggining of the function.)
This ugliness is there to support the notion of locking a tuple with
either a TransactionId (non-contention case) or a MultiXactId
(concurrent case.)

We require MultiXactId to be equivalent to TransactionId anyway, because
we store Multis on a tuple's Xmax.

Congratulations for spotting that :-)  (Are you using a source checker
tool?)

-- 
Alvaro Herrera ([EMAIL PROTECTED])
No hay cielo posible sin hundir nuestras raíces
 en la profundidad de la tierra(Malucha Pinto)

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


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Stephen Frost
* Tom Lane ([EMAIL PROTECTED]) wrote:
 Robert Treat [EMAIL PROTECTED] writes:
  Is telling the rpm maintainers to go fix their rpm's an option?  As has
  been hashed out before, the only thing that makes plphp different from
  other pl's is that some of the current packagers are taking shortcuts
  with the packaging scripts which introduces dependency issues. IMHO what
  is included in the postgresql cvs and what is included in the main
  tarball for postgresql should not be dictated by outside packagers. 
 
 Outside packagers?  What makes you think PG RPMs are built by outside
 packagers?  The PGDG RPMs are certainly built by us, and Red Hat's PG
 RPMs are built by somebody named Tom Lane, and last I heard Oliver
 Elphick was handling the Debian packaging.  We have more control over
 those things than you might think.  What we don't have control over is
 what the PHP people choose to put in their tarball ... and that means
 there's a circularity problem if we try to merge plphp.  I think you
 are blaming the messengers.

Oliver's not the only Debian person working on the PostgreSQL packages
for Debian.  Oliver certainly does a great deal of excellent work on the
core PostgreSQL packages, I don't mean to claim otherwise, but Martin
Pitt helps out a great deal with those, and various other packages are
maintained by others (such as the php4-pgsql packages, which appear to
currently be maintained by Steve Langasek, the libdbd-pg-perl packages
which appear to be maintained by Raphael Hertzog, etc).

Not arguing with you, you're right, Oliver's certainly one of the
maintainers of the Debian core PostgreSQL packages, just not the only
one.

Thanks,

Stephen


signature.asc
Description: Digital signature


Re: [HACKERS] Bogus assertion in multixact.c?

2005-05-03 Thread Tom Lane
I wrote:
 Heikki Linnakangas [EMAIL PROTECTED] writes:
 Isn't this bogus?

 No.  Note the comment immediately above, as well as the header comment
 for the function.

OTOH, now that I think about it there's no reason whatever for that
bizarre call convention.  Let's split the function into two: one to
expand an existing multixact, and one to make a multixact from two
regular xids.

regards, tom lane

---(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] Bogus assertion in multixact.c?

2005-05-03 Thread Tom Lane
Heikki Linnakangas [EMAIL PROTECTED] writes:
 There's an assertion in multixact.c, MultiXactIdExpand function, line 273:
 Assert(!TransactionIdEquals(multi, xid));

 where multi is a MultiXactId and xid is a TransactionId.

 Isn't this bogus?

No.  Note the comment immediately above, as well as the header comment
for the function.

regards, tom lane

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

   http://archives.postgresql.org


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Andrew Dunstan

Marc G. Fournier wrote:
Now it is true that you don't need this in for plphp. But if you want 
php to have pg client support you need pg built first. And no sane 
packager is going to build php twice.

Actually, if you look through FreeBSD ports, this is exactly what 
happens ... when you build /usr/ports/devel/php4, it builds a 
vanilla php, no modules ... if you want pgsql support, you go into 
/usr/ports/databases/php4-pgsql, and build that (which has a 
dependency on lang/php4) ...

So, for plphp, a port would just have to install 
/usr/ports/lang/php4 to build, but would not necessarily build 
php4-pgsql ...

it is done this way to avoid packagers having to build a monolithich 
contains everything php4 ...

How ugly.  [remaining comments unprintable]
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: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Stephen Frost
* Marc G. Fournier ([EMAIL PROTECTED]) wrote:
 On Tue, 3 May 2005, Andrew Dunstan wrote:
 Now it is true that you don't need this in for plphp. But if you want php 
 to have pg client support you need pg built first. And no sane packager is 
 going to build php twice.
 
 Actually, if you look through FreeBSD ports, this is exactly what happens 
 ... when you build /usr/ports/devel/php4, it builds a vanilla php, no 
 modules ... if you want pgsql support, you go into 
 /usr/ports/databases/php4-pgsql, and build that (which has a dependency on 
 lang/php4) ...
 
 So, for plphp, a port would just have to install /usr/ports/lang/php4 to 
 build, but would not necessarily build php4-pgsql ...
 
 it is done this way to avoid packagers having to build a monolithich 
 contains everything php4 ...

Indeed, Debian does this for a number of packages too, and I think we
actually split out the PHP4 stuff into seperate 'source' packages in
some cases which ends up making it not actually have to be a circular
dependency (similar to Perl).

Thanks,

Stephen


signature.asc
Description: Digital signature


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Peter Eisentraut
Stephen Frost wrote:
 Just to point it out, Debian handles circular dependencies like these
 without too much difficulty.  It's really only an issue when first
 building the various packages, and then you just build one without
 all the support initially, build the other, then rebuild the first
 with the support.

I don't really believe that.  People frequently do automated builds of 
the entire archive from scratch .  There cannot be true circular build 
dependencies.  That's the reason why the circular Qt - unixODBC 
dependency isn't resolved yet.

Of course, on Debian, this whole discussion is moot anyway because the 
php-pgsql client module is built from an independent source package for 
other historic reasons.

-- 
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: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Stephen Frost
* Marc G. Fournier ([EMAIL PROTECTED]) wrote:
 On Tue, 3 May 2005, Joshua D. Drake wrote:
 We could break out all of the pls at that point? Where if you downloaded 
 postgresql-opt you would get plPHP, plPerl etc...
 
 Optimally, you would get rid of -opt altogether, and leave it as the 
 individual pl(s) ... the main purposes of the smaller tar balls is so that 
 someone building a port (*BSDs) or a package (other OSs) would only need 
 to download the component that applies to them, and someone installing 
 from source, similar ...

I tend to like this approach.  I think it'd also make it possible to
have seperate Debian packages for the different languages more easily,
which may be useful since they could more easily have different
maintainers too.  It'd also mean that you wouldn't have to have
languages installed (or at least, on the system, perhaps not
createlang'd) if you didn't want them, etc, etc.

Stephen


signature.asc
Description: Digital signature


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Marc G. Fournier
On Tue, 3 May 2005, Andrew Dunstan wrote:

Marc G. Fournier wrote:
Now it is true that you don't need this in for plphp. But if you want php 
to have pg client support you need pg built first. And no sane packager is 
going to build php twice.

Actually, if you look through FreeBSD ports, this is exactly what happens 
... when you build /usr/ports/devel/php4, it builds a vanilla php, no 
modules ... if you want pgsql support, you go into 
/usr/ports/databases/php4-pgsql, and build that (which has a dependency on 
lang/php4) ...

So, for plphp, a port would just have to install /usr/ports/lang/php4 to 
build, but would not necessarily build php4-pgsql ...

it is done this way to avoid packagers having to build a monolithich 
contains everything php4 ...

How ugly.  [remaining comments unprintable]
That's a matter of opinion ... in our environment, it means that clients 
can enable/disable PHP features on a per VM basis without having to build 
a new PHP binary for each ... *shrug*


Marc G. Fournier   Hub.Org Networking Services (http://www.hub.org)
Email: [EMAIL PROTECTED]   Yahoo!: yscrappy  ICQ: 7615664
---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?
  http://www.postgresql.org/docs/faq


Re: [HACKERS] Bogus assertion in multixact.c?

2005-05-03 Thread Alvaro Herrera
On Tue, May 03, 2005 at 02:48:20PM -0400, Tom Lane wrote:
 I wrote:
  Heikki Linnakangas [EMAIL PROTECTED] writes:
  Isn't this bogus?
 
  No.  Note the comment immediately above, as well as the header comment
  for the function.
 
 OTOH, now that I think about it there's no reason whatever for that
 bizarre call convention.  Let's split the function into two: one to
 expand an existing multixact, and one to make a multixact from two
 regular xids.

No problem ... shall I write a patch, or did you do it already?

-- 
Alvaro Herrera ([EMAIL PROTECTED])
No es bueno caminar con un hombre muerto

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


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Stephen Frost
* Peter Eisentraut ([EMAIL PROTECTED]) wrote:
 Stephen Frost wrote:
  Just to point it out, Debian handles circular dependencies like these
  without too much difficulty.  It's really only an issue when first
  building the various packages, and then you just build one without
  all the support initially, build the other, then rebuild the first
  with the support.
 
 I don't really believe that.  People frequently do automated builds of 
 the entire archive from scratch .  There cannot be true circular build 
 dependencies.  That's the reason why the circular Qt - unixODBC 
 dependency isn't resolved yet.
 
 Of course, on Debian, this whole discussion is moot anyway because the 
 php-pgsql client module is built from an independent source package for 
 other historic reasons.

No, it's exactly the case, and in fact I helped John Goerzen with
exactly this issue of circular dependencies when first building the
entire archive for amd64 about a year ago.  Feel free to discuss it with
him if you don't believe me for some reason.

It may not be the case with this particular package but there are
certinaly other instances (one that's fresh to mind is the X11 packages
and groff, feel free to check it out yourself if you'd like; might be a
little better than claiming others are wrong).

Thanks,

Stephen


signature.asc
Description: Digital signature


Re: [HACKERS] Bogus assertion in multixact.c?

2005-05-03 Thread Tom Lane
Alvaro Herrera [EMAIL PROTECTED] writes:
 No problem ... shall I write a patch, or did you do it already?

I'll take care of it --- wouldn't take much longer than applying
someone else's patch anyway ...

regards, tom lane

---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Joshua D. Drake

That's a matter of opinion ... in our environment, it means that clients 
can enable/disable PHP features on a per VM basis without having to 
build a new PHP binary for each ... *shrug*
Gentoo also does this :)

Marc G. Fournier   Hub.Org Networking Services (http://www.hub.org)
Email: [EMAIL PROTECTED]   Yahoo!: yscrappy  ICQ: 7615664

--
Your PostgreSQL solutions company - Command Prompt, Inc. 1.800.492.2240
PostgreSQL Replication, Consulting, Custom Programming, 24x7 support
Managed Services, Shared and Dedication Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/
---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
   (send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Andrew Dunstan

Marc G. Fournier wrote:

How ugly.  [remaining comments unprintable]

That's a matter of opinion ... in our environment, it means that 
clients can enable/disable PHP features on a per VM basis without 
having to build a new PHP binary for each ... *shrug*


Different issue. You can do that on RH / Fedora too.
cheers
andrew
---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
   (send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Dave Cramer

Marc G. Fournier wrote:
On Tue, 3 May 2005, Marc G. Fournier wrote:
On Tue, 3 May 2005, Joshua D. Drake wrote:

My primary desire is to avoid having to download several Meg of tar 
ball(s) in order to add a module to an existing server ... if that 
can be accomplished, then my main objection to adding things to the 
core CVS are eliminated ...

I guess I don't see the problem of the PostgreSQL distribution being 
11 megs, heck even 50 megs. I know that some places don't have the 
bandwidth we do but it only takes me about 90 seconds to download 
the distribution.

Granted, we in the West are lucky ... but I know alot of ppl still 
on dialup, and I believe there are still alot of places in Europe (or 
is/was it just GB?) that pay per byte for their bandwidth ... even 
myself, at home, on a cable modem, have at times found downloads to 
be atrociously slow due to load n the network ...

If anyone knows a *good* source for this sort of thing, please send me 
a URL, but a quick search on google finds:

The market share for permanent connections continued to increase in 
December and now accounts for 39.4 per cent of all connections. This 
compares with a market share of 21.9 per cent a year before.
http://www.i10.org.uk/pooled/articles/BF_NEWSART/view.asp?Q=BF_NEWSART_136457 

Which, to me, indicates that ~60.6% of all connections are still 
dial-up (does ISDN count as a permanent connection?) ... but, I don't 
know where they are getting their #s from, so, as I said, if someone 
else can point me to better stats, please do ...
Better stats are in the same article
Dial-up Internet connections continued to decrease, with a year on year 
fall to December 2004 of 20.1 per cent. The decrease from November to 
December 2004 was 3.1 per cent.
Although it's hard to discern what this really says ( fell 20 % or is 
20% , either way we can see a trend here )

Even if 60.6 % of all connections are dial up; what percentage of people 
downloading postgres are on dialup. The two numbers are not related.

How come we have never seen anyone complain on the lists that the 
tarball is too big ( or have we )

This issue has come up before, and I opposed it then when the interfaces 
were removed from the main tarball.
I really don't see the upside to reducing the size of the tarball at the 
expense of ease of use.  Seems to me we are
bending over backwards to make it easy for people with dial up 
connections to download our enterprise class
database.

Dave


Marc G. Fournier   Hub.Org Networking Services 
(http://www.hub.org)
Email: [EMAIL PROTECTED]   Yahoo!: yscrappy  ICQ: 
7615664

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

--
Dave Cramer
http://www.postgresintl.com
519 939 0336
ICQ#14675561
---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: [HACKERS] Bogus assertion in multixact.c?

2005-05-03 Thread Heikki Linnakangas
Never mind. multi is in effect a TransactionId in that code path, and thus 
the assertion makes sense. Sorry for the noise.

On Tue, 3 May 2005, Heikki Linnakangas wrote:
There's an assertion in multixact.c, MultiXactIdExpand function, line 273:
  Assert(!TransactionIdEquals(multi, xid));
where multi is a MultiXactId and xid is a TransactionId.
Isn't this bogus? If I understand the code correctly, multixactids and 
regular xids live in completely separate id spaces. Therefore a comparison 
between them makes no sense.

- Heikki
- Heikki
---(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: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Robert Treat
On Tuesday 03 May 2005 13:51, Tom Lane wrote:
 Robert Treat [EMAIL PROTECTED] writes:
  Is telling the rpm maintainers to go fix their rpm's an option?  As has
  been hashed out before, the only thing that makes plphp different from
  other pl's is that some of the current packagers are taking shortcuts
  with the packaging scripts which introduces dependency issues. IMHO what
  is included in the postgresql cvs and what is included in the main
  tarball for postgresql should not be dictated by outside packagers.

 Outside packagers?  What makes you think PG RPMs are built by outside
 packagers?  The PGDG RPMs are certainly built by us, and Red Hat's PG
 RPMs are built by somebody named Tom Lane, and last I heard Oliver
 Elphick was handling the Debian packaging.  We have more control over
 those things than you might think.  What we don't have control over is
 what the PHP people choose to put in their tarball ... and that means
 there's a circularity problem if we try to merge plphp.  I think you
 are blaming the messengers.


Don't get so defensive... I am well aware of the folks maintaining the pg 
packages... I was talking about the php packagers. 

-- 
Robert Treat
Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL

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


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Marc G. Fournier
On Tue, 3 May 2005, Dave Cramer wrote:
How come we have never seen anyone complain on the lists that the tarball is 
too big ( or have we )
Because ppl are downloading the split distributions instead of the whole 
tarball ... *every* PostgreSQL related port in FreeBSD uses the 
split-dists (only downloads the base and opt packages) ...


Marc G. Fournier   Hub.Org Networking Services (http://www.hub.org)
Email: [EMAIL PROTECTED]   Yahoo!: yscrappy  ICQ: 7615664
---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Joshua D. Drake
Marc G. Fournier wrote:
On Tue, 3 May 2005, Dave Cramer wrote:
How come we have never seen anyone complain on the lists that the 
tarball is too big ( or have we )

Because ppl are downloading the split distributions instead of the 
whole tarball ... *every* PostgreSQL related port in FreeBSD uses the 
split-dists (only downloads the base and opt packages) ...
FreeBSD is a very small part of the OS planet compared to Linux and Win32.
Look at how big the Win32 installer is ;)
Sincerely,
Joshua D. Drake

--
Your PostgreSQL solutions company - Command Prompt, Inc. 1.800.492.2240
PostgreSQL Replication, Consulting, Custom Programming, 24x7 support
Managed Services, Shared and Dedication Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/
---(end of broadcast)---
TIP 6: Have you searched our list archives?
  http://archives.postgresql.org


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Dave Cramer
So nobody has complained about the tarball being too big;  yet we made 
it harder to use just in case someone might complain ?

--dc--
Marc G. Fournier wrote:
On Tue, 3 May 2005, Dave Cramer wrote:
How come we have never seen anyone complain on the lists that the 
tarball is too big ( or have we )

Because ppl are downloading the split distributions instead of the 
whole tarball ... *every* PostgreSQL related port in FreeBSD uses the 
split-dists (only downloads the base and opt packages) ...


Marc G. Fournier   Hub.Org Networking Services 
(http://www.hub.org)
Email: [EMAIL PROTECTED]   Yahoo!: yscrappy  ICQ: 
7615664


--
Dave Cramer
http://www.postgresintl.com
519 939 0336
ICQ#14675561
---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster


[OT] Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Tom Copeland
On Tue, 2005-05-03 at 14:26 -0400, Mitch Pirtle wrote:
 If you guys are planning on running Gforge, then you better make 'box' plural.
 
 I'm running MamboForge.net, and the poor thing is getting beat into
 the cold hard earth every day. We (Mambo) should really have two
 servers, at least to dedicate hardware to the database. Most of the
 servers in that class are dual Xeons as well - just as an indicator of
 what you are getting yourselves into ;-)

Of course, Mitch is running the second largest GForge site on the planet
(as far as I know) second only to https://helixcommunity.org/.
Here's a list of them:

http://gforge.org/docman/view.php/1/52/gforge-sites.html

Yours,

Tom Copeland



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


Re: [HACKERS] Feature freeze date for 8.1

2005-05-03 Thread adnandursun
On Tue, 3 May 2005 13:02:46 -0500
 Dave Held [EMAIL PROTECTED] wrote:

How about an optional second connection to send keepalive
pings?
It could be unencrypted and non-blocking.  If
authentication is needed 
on the ping port (which it doesn't seem like itwould
needto be), 
it could be very simple, like this:

* client connects to main port
* server authenticates client normally
* server sends nonce token for keepalive authentication
* client connects to keepalive port
* client sends nonce token on keepalive port
* server associates matching keepalive connection with
main connection
* if server does not receive matching token within a small
timeout, no keepalive support enabled for this session

Yes, this looks like good.But ;

  1. Do client interfaces (ODBC,JDBC OLEDB etc) need to
be changed ?

  2. If a firewall is used, ppl need to know the second
port number so mean that 2 parameters should be added to
postgres the first is timeout value and the second is port
number of the second port would be used for keepalive..

Best Regards,

Adnan DURSUN
ASRIN Bili?im Hiz.Ltd.

---(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] Regression tests

2005-05-03 Thread =?iso-8859-1?q?Dag-Erling_Sm=F8rgrav?=
Christopher Kings-Lynne [EMAIL PROTECTED] writes:
 The whole point of make check is to check correctness, not
 performance.

I understand that.

 It has concurrent loading as well.

It doesn't stress the system anywhere near enough to reveal bugs in,
say, the shared memory or semaphore code.

DES
-- 
Dag-Erling Smørgrav - [EMAIL PROTECTED]

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


Re: [HACKERS] Feature freeze date for 8.1

2005-05-03 Thread Dave Held
 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED]
 Sent: Tuesday, May 03, 2005 3:36 PM
 To: Dave Held; pgsql-hackers@postgresql.org
 Subject: Re: [HACKERS] Feature freeze date for 8.1
 
 [...]
 Yes, this looks like good.But ;
 
   1. Do client interfaces (ODBC,JDBC OLEDB etc) need to
 be changed ?

Only if they want to support the keepalive mechanism.  It should
be purely optional.

   2. If a firewall is used, ppl need to know the second
 port number so mean that 2 parameters should be added to
 postgres the first is timeout value and the second is port
 number of the second port would be used for keepalive..

Sounds fine to me.

__
David B. Held
Software Engineer/Array Services Group
200 14th Ave. East,  Sartell, MN 56377
320.534.3637 320.253.7800 800.752.8129

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

   http://www.postgresql.org/docs/faq


Re: [HACKERS] Feature freeze date for 8.1

2005-05-03 Thread Tom Lane
Dave Held [EMAIL PROTECTED] writes:
 How about an optional second connection to send keepalive pings?
 It could be unencrypted and non-blocking.  If authentication is
 needed on the ping port (which it doesn't seem like it would need
 to be), it could be very simple, like this:

 * client connects to main port
 * server authenticates client normally
 * server sends nonce token for keepalive authentication
 * client connects to keepalive port
 * client sends nonce token on keepalive port
 * server associates matching keepalive connection with main 
 connection
 * if server does not receive matching token within a small
 timeout, no keepalive support enabled for this session


This seems to have nothing whatever to do with the stated problem?

regards, tom lane

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

   http://www.postgresql.org/docs/faq


Re: [HACKERS] Feature freeze date for 8.1

2005-05-03 Thread Thomas Swan
On 5/3/05, Dave Held [EMAIL PROTECTED] wrote:
  -Original Message-
  From: Tom Lane [mailto:[EMAIL PROTECTED]
  Sent: Tuesday, May 03, 2005 12:39 PM
  To: Heikki Linnakangas
  Cc: Hannu Krosing; Neil Conway; Oliver Jowett;
  [EMAIL PROTECTED]; Peter Eisentraut; Alvaro Herrera;
  pgsql-hackers@postgresql.org
  Subject: Re: [HACKERS] Feature freeze date for 8.1
 
  [...]
  BTW, the upthread proposal of just dropping the message (which is what
  O_NONBLOCK would do) doesn't work; it will lose encryption sync on SSL
  connections.
 
 How about an optional second connection to send keepalive pings?
 It could be unencrypted and non-blocking.  If authentication is
 needed on the ping port (which it doesn't seem like it would need
 to be), it could be very simple, like this:
 
 * client connects to main port
 * server authenticates client normally
 * server sends nonce token for keepalive authentication
 * client connects to keepalive port
 * client sends nonce token on keepalive port
 * server associates matching keepalive connection with main
 connection
 * if server does not receive matching token within a small
 timeout, no keepalive support enabled for this session
 

This will not work through firewalls.  Is it not possible for the
server to test the current network connection with the client?

---(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] [PERFORM] Bad n_distinct estimation; hacks suggested?

2005-05-03 Thread Mischa Sandberg
Quoting Markus Schaber [EMAIL PROTECTED]:

 Hi, Josh,
 
 Josh Berkus wrote:
 
  Yes, actually.   We need 3 different estimation methods:
  1 for tables where we can sample a large % of pages (say, = 0.1)
  1 for tables where we sample a small % of pages but are easily
 estimated
  1 for tables which are not easily estimated by we can't afford to
 sample a 
  large % of pages.
  
  If we're doing sampling-based estimation, I really don't want
 people to lose 
  sight of the fact that page-based random sampling is much less
 expensive than 
  row-based random sampling.   We should really be focusing on
 methods which 
  are page-based.

Okay, although given the track record of page-based sampling for
n-distinct, it's a bit like looking for your keys under the streetlight,
rather than in the alley where you dropped them :-)

How about applying the distinct-sampling filter on a small extra data
stream to the stats collector? 

-- 
Engineers think equations approximate reality.
Physicists think reality approximates the equations.
Mathematicians never make the connection.


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

   http://www.postgresql.org/docs/faq


Re: [HACKERS] [PERFORM] Bad n_distinct estimation; hacks suggested?

2005-05-03 Thread Josh Berkus
Mischa,

 Okay, although given the track record of page-based sampling for
 n-distinct, it's a bit like looking for your keys under the streetlight,
 rather than in the alley where you dropped them :-)

Bad analogy, but funny.

The issue with page-based vs. pure random sampling is that to do, for example, 
10% of rows purely randomly would actually mean loading 50% of pages.  With 
20% of rows, you might as well scan the whole table.

Unless, of course, we use indexes for sampling, which seems like a *really 
good* idea to me 

-- 
--Josh

Josh Berkus
Aglio Database Solutions
San Francisco

---(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] Feature freeze date for 8.1

2005-05-03 Thread Dave Held
 -Original Message-
 From: Tom Lane [mailto:[EMAIL PROTECTED]
 Sent: Tuesday, May 03, 2005 4:20 PM
 To: Dave Held
 Cc: pgsql-hackers@postgresql.org
 Subject: Re: [HACKERS] Feature freeze date for 8.1
 
 
 Dave Held [EMAIL PROTECTED] writes:
  How about an optional second connection to send keepalive pings?
  It could be unencrypted and non-blocking.  If authentication is
  needed on the ping port (which it doesn't seem like it would need
  to be), it could be very simple, like this:
 
  * client connects to main port
  * server authenticates client normally
  * server sends nonce token for keepalive authentication
  * client connects to keepalive port
  * client sends nonce token on keepalive port
  * server associates matching keepalive connection with main 
  connection
  * if server does not receive matching token within a small
  timeout, no keepalive support enabled for this session
 
 
 This seems to have nothing whatever to do with the stated problem?

I thought the problem was a server process that loses a 
connection to a client sticking around and consuming resources.
And then I thought a possible solution was to try to see if
the client is still alive by sending it an occasional packet.
And then I thought a new problem is sending packets to an
unresponsive client and filling up the output buffer and
blocking the server process.

So it seems that a possible solution to that problem is to
have a separate connection for keepalive packets that doesn't
block and doesn't interfere with normal client/server 
communication.

Now granted, it is possible that the primary connection could
die and the secondary is still alive.  So let's consider the
likely failure modes:

* physical network failure

In this case, I don't see how the secondary could survive while
the primary dies.

* client hangs or dies

If the client isn't reading keepalives from the server, 
eventually the server's send queue will fill and the server 
will see that the client is unresponsive.  The only way the 
client could fail on the primary while responding on the 
secondary is if it makes the connections in different threads, 
and the primary thread crashes somehow.  At that point, I would 
hope that the user would notice that the client has died and 
shut it down completely.  Otherwise, the client should just not
create a separate thread for responding to keepalives.

* transient network congestion

It's possible that a keepalive could be delayed past the 
expiration time, and the server would assume that the client 
is dead when it's really not.  Then it would close the client's
connection rather rudely.  But then, since there's no reliable
way to tell if a client is dead or not, your other option is to
consume all your connections on maybe-dead clients.

So what am I missing?

__
David B. Held
Software Engineer/Array Services Group
200 14th Ave. East,  Sartell, MN 56377
320.534.3637 320.253.7800 800.752.8129

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

   http://archives.postgresql.org


Re: [HACKERS] Feature freeze date for 8.1

2005-05-03 Thread Doug McNaught
Tom Lane [EMAIL PROTECTED] writes:

 Dave Held [EMAIL PROTECTED] writes:
 How about an optional second connection to send keepalive pings?
 It could be unencrypted and non-blocking.  If authentication is
 needed on the ping port (which it doesn't seem like it would need
 to be), it could be very simple, like this:



 This seems to have nothing whatever to do with the stated problem?

Yeah--one of the original scenarios was firewall drops DB connection
because it's inactive.  Pinging over a second socket does nothing to
address this.  

If you want to make sure network connection X is up, testing network
connection Y, which happens to be between the same two processes, is
only helpful in a limited set of circumstances.

-Doug

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


Re: [HACKERS] Feature freeze date for 8.1

2005-05-03 Thread Chuck McDevitt


 -Original Message-
 From: [EMAIL PROTECTED] [mailto:pgsql-hackers-
 [EMAIL PROTECTED] On Behalf Of Dave Held
 Sent: Tuesday, May 03, 2005 3:41 PM
 To: pgsql-hackers@postgresql.org
 Subject: Re: [HACKERS] Feature freeze date for 8.1
 
  -Original Message-
  From: Tom Lane [mailto:[EMAIL PROTECTED]
  Sent: Tuesday, May 03, 2005 4:20 PM
  To: Dave Held
  Cc: pgsql-hackers@postgresql.org
  Subject: Re: [HACKERS] Feature freeze date for 8.1
 
 
  Dave Held [EMAIL PROTECTED] writes:
   How about an optional second connection to send keepalive pings?
   It could be unencrypted and non-blocking.  If authentication is
   needed on the ping port (which it doesn't seem like it would need
   to be), it could be very simple, like this:
 
   * client connects to main port
   * server authenticates client normally
   * server sends nonce token for keepalive authentication
   * client connects to keepalive port
   * client sends nonce token on keepalive port
   * server associates matching keepalive connection with main
   connection
   * if server does not receive matching token within a small
   timeout, no keepalive support enabled for this session
 
 
  This seems to have nothing whatever to do with the stated problem?
 
 I thought the problem was a server process that loses a
 connection to a client sticking around and consuming resources.
 And then I thought a possible solution was to try to see if
 the client is still alive by sending it an occasional packet.
 And then I thought a new problem is sending packets to an
 unresponsive client and filling up the output buffer and
 blocking the server process.
 
 So it seems that a possible solution to that problem is to
 have a separate connection for keepalive packets that doesn't
 block and doesn't interfere with normal client/server
 communication.
 
 Now granted, it is possible that the primary connection could
 die and the secondary is still alive.  So let's consider the
 likely failure modes:
 
 * physical network failure
 
 In this case, I don't see how the secondary could survive while
 the primary dies.
 
 * client hangs or dies
 
 If the client isn't reading keepalives from the server,
 eventually the server's send queue will fill and the server
 will see that the client is unresponsive.  The only way the
 client could fail on the primary while responding on the
 secondary is if it makes the connections in different threads,
 and the primary thread crashes somehow.  At that point, I would
 hope that the user would notice that the client has died and
 shut it down completely.  Otherwise, the client should just not
 create a separate thread for responding to keepalives.
 
 * transient network congestion
 
 It's possible that a keepalive could be delayed past the
 expiration time, and the server would assume that the client
 is dead when it's really not.  Then it would close the client's
 connection rather rudely.  But then, since there's no reliable
 way to tell if a client is dead or not, your other option is to
 consume all your connections on maybe-dead clients.
 
 So what am I missing?
 
 __
 David B. Held
 Software Engineer/Array Services Group
 200 14th Ave. East,  Sartell, MN 56377
 320.534.3637 320.253.7800 800.752.8129
 

1)  Adding a separate connection means managing that connection, making
sure it gets connected/disconnected at the right times, and that it can
traverse the same firewalls as the primary connection.

2)  You'd need another process or another thread to respond on the
secondary connection.  If it's another process, the primary process
could die/hang while the keepalive process keeps working (or vice
versa).  If it's another thread, you are forcing all clients to support
multithreading.



---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: [HACKERS] Feature freeze date for 8.1

2005-05-03 Thread Oliver Jowett
Dave Held wrote:

 So it seems that a possible solution to that problem is to
 have a separate connection for keepalive packets that doesn't
 block and doesn't interfere with normal client/server 
 communication.

What does this do that TCP keepalives don't? (other than add extra
connection management complexity..)

-O

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


Re: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Marc G. Fournier
On Tue, 3 May 2005, Dave Cramer wrote:
So nobody has complained about the tarball being too big;  yet we made it 
harder to use just in case someone might complain ?
Made what harder to use?  You don't like the split, download the full tar 
ball ... both options are available to you ... myself, I find my time 
better spent working on the end application, not download a bunch of docs 
and stuff that I don't need to install ... each to their own ... but, 
again, the options are avaialble to you ...


Marc G. Fournier   Hub.Org Networking Services (http://www.hub.org)
Email: [EMAIL PROTECTED]   Yahoo!: yscrappy  ICQ: 7615664
---(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: [pgsql-advocacy] [HACKERS] Increased company involvement

2005-05-03 Thread Marc G. Fournier
On Tue, 3 May 2005, Joshua D. Drake wrote:
Marc G. Fournier wrote:
On Tue, 3 May 2005, Dave Cramer wrote:
How come we have never seen anyone complain on the lists that the tarball 
is too big ( or have we )

Because ppl are downloading the split distributions instead of the whole 
tarball ... *every* PostgreSQL related port in FreeBSD uses the split-dists 
(only downloads the base and opt packages) ...
FreeBSD is a very small part of the OS planet compared to Linux and Win32.
Look at how big the Win32 installer is ;)
Agreed, but that is a binary distribution ... also, and this is based only 
one the impression I've gotten from the list(s), and not on actually 
trying it, doesn't it include 'multiple smaller packages' that you can 
either install all of, or pieces of?

As to FreeBSD vs Linux ... I don't have enough experience with Linux and 
how the packages work over there, but I don't believe that if someone were 
to download/package a plphp SRPM (or package) that they would include the 
whole 11MB tar file, would they?  Or would they just package up that 
component which is applicable and have dependencies on other packages?

Hell, let's go at it from the other side of the coin ... you talk about 
how fast your connection is to download it ... but it has to come from 
somewhere ... which is more 'mirror friendly'?  Making everyone download 
11MB at a time for a, what would plPHP be, 100k directory structure, or 
give them a 50k compressed tar file to download to get the component they 
require?  I'm basing that estimate on how big the existing pls are in the 
source tree, so I may be high/low on the real size of plphp ...

The point is that *if* something can be build using existing 
libraries/headers on the machine, without requiring the full source tree 
to build it, then providing the option to the downloader/packager/port to 
get the smaller piece is A Good Thing ... the only person that has made 
a compelling argument why PLs should be in the core CVS *at this time* is 
Tom (as regards the API changing, and its generally easier for him to 
modify the PLs then having the maintainers learn the changes), and that 
makes sense ... but as far as packaging on our end is concerned, if we 
can split off 'stand alone distributions', then that is what we should be 
looking at doing ...

Hell ... my dream is to see a libpq-version.tar.gz distribution so 
that I don't have to download the full server source code each time I want 
to install onto a client machine ... and one of these days I'll figure out 
how to do it ...


Marc G. Fournier   Hub.Org Networking Services (http://www.hub.org)
Email: [EMAIL PROTECTED]   Yahoo!: yscrappy  ICQ: 7615664
---(end of broadcast)---
TIP 8: explain analyze is your friend


Re: [HACKERS] A proper fix for the conversion-function problem

2005-05-03 Thread Tatsuo Ishii
 I tried disabling public EXECUTE access on the built-in conversion
 functions, as we recommended yesterday, and found that it has one
 small problem: the conversion regression test fails.  The test is
 expecting that unprivileged users can create conversions, but since
 CREATE CONVERSION requires you to have execute permissions on the
 specified function, they can't if we do this.
 
 This leaves me thinking that the best fix for the back branches
 is the one [EMAIL PROTECTED] originally suggested: modify the
 signature for conversion functions to use INTERNAL instead of CSTRING.
 I haven't actually experimented with that yet, but will shortly.
 
 Going forward, though, I really think we need to revisit the API
 for conversion functions.  It seems a bit silly to have the
 infrastructure to let ordinary users create conversions if they
 can't create the functions needed to support them.

Why? Since the functions need to be written in C language, ordinary
users cannot make them anyway. Same thing can be said to CREATE TYPE.
--
Tatsuo Ishii

---(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] [PERFORM] Bad n_distinct estimation; hacks suggested?

2005-05-03 Thread Josh Berkus
John,

 But doesn't an index only sample one column at a time, whereas with
 page-based sampling, you can sample all of the columns at once. 

Hmmm.  Yeah, we're not currently doing that though.  Another good idea ...

-- 
--Josh

Josh Berkus
Aglio Database Solutions
San Francisco

---(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] Regression tests

2005-05-03 Thread Neil Conway
Dag-Erling Smørgrav wrote:
It doesn't stress the system anywhere near enough to reveal bugs in,
say, the shared memory or semaphore code.
I agree -- I think we definitely need more tests for the concurrent 
behavior of the system.

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


Re: [HACKERS] inclusions WAS: Increased company involvement

2005-05-03 Thread Josh Berkus
Dave, all:

 This issue has come up before, and I opposed it then when the interfaces
 were removed from the main tarball.
 I really don't see the upside to reducing the size of the tarball at the
 expense of ease of use. Seems to me we are
 bending over backwards to make it easy for people with dial up
 connections to download our enterprise class
 database.

Small tarball size isn't the *primary* reason for having our 
push-it-out-to-pgFoundry attitude, it's the *tertiary* reason.  The main 
two reasons are:

1) If we start including everything that's useful, where do we stop?  There 
are enough pg add-ins to fill a CD -- 200 projects on GBorg and pgFoundry and 
others elsewhere.  And some of them probably conflict with each other.  Any 
decision to include some projects and not others will alienate people and 
possibly be a mis-evaluation; the libpq++/libpqxx mistake comes to mind.

2) As long as we're using CVS, the only way to organize autonomous project 
teams that have authority over their special areas but no ability to change 
central code is to push out projects to separate CVS trees.

From my perspective, putting together a coherent distribution of PostgreSQL 
with all the add-ins you want is the job of commercial distributors and 
possibly OSS projects like Bizgres.

-- 
--Josh

Josh Berkus
Aglio Database Solutions
San Francisco

---(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] inclusions WAS: Increased company involvement

2005-05-03 Thread Andrew Dunstan
Josh Berkus said:
 Dave, all:

 This issue has come up before, and I opposed it then when the
 interfaces were removed from the main tarball.
 I really don't see the upside to reducing the size of the tarball at
 the expense of ease of use. Â Seems to me we are
 bending over backwards to make it easy for people with dial up
 connections to download our enterprise class
 database.

 Small tarball size isn't the *primary* reason for having our
 push-it-out-to-pgFoundry attitude, it's the *tertiary* reason.  The
 main  two reasons are:

 1) If we start including everything that's useful, where do we stop?
 There  are enough pg add-ins to fill a CD -- 200 projects on GBorg and
 pgFoundry and  others elsewhere.  And some of them probably conflict
 with each other.  Any  decision to include some projects and not others
 will alienate people and  possibly be a mis-evaluation; the
 libpq++/libpqxx mistake comes to mind.

 2) As long as we're using CVS, the only way to organize autonomous
 project  teams that have authority over their special areas but no
 ability to change  central code is to push out projects to separate
 CVS trees.

From my perspective, putting together a coherent distribution of
PostgreSQL
 with all the add-ins you want is the job of commercial distributors and
  possibly OSS projects like Bizgres.


This water-torture campaign is disappointing.

How many projects on gborg have any active maintenance? Our community is
still small - we can ill afford fragmentation.

Tom and others have already pointed out the good technical reasons for not
divorcing PLs at least from the core code.

I was not around at the time of the libpq++/libpqxx issue. But, honestly,
fear of making a wrong decision should not be a reason not to make one.

As for CVS - if we can't do development the way we want using it then it's
time to replace it. I have been convinced for quite a while that it is
living on borrowed time, but I am far less certain about what should be used
to replace it. But making macro content decisions on the basis of what we
can do with CVS is just crazy.

cheers

andrew



---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: [HACKERS] pg_locks needs a facelift

2005-05-03 Thread Jim C. Nasby
On Tue, May 03, 2005 at 10:22:08AM -0400, Merlin Moncure wrote:
  On Mon, May 02, 2005 at 02:12:33PM -0400, Merlin Moncure wrote:
  Well, there's nothing that says you have to actually refer to locks by
  name. When I proposed this what I proposed is that the userlock module
  provide a dedicated means to map a lock name to a lock number, and
  reserve one of the 'lock spaces' (the 16 bit number) for this use,
 just
  as one of them is currently reserved for locks based on OID. But I
 also
  can't think of any reason why lock names need to be persistent, so I
  imagine you could store a list of lock names in shared memory with no
  backing storage.
 
 Well, actually, as currently implemented the userlock module provides 48
 bits of lock space but none of the bits are reserved for
 anything...interface functions which assign the lower 32 bits to oid are
 provided as a convenience.  IIRC userlocks were first implemented in

If I remember the docs correctly, it specifically mentions that one of
the 16 bit values is used for the OID mapping. That value could be 0, I
don't know, but the point is that anyone using userlock would naturally
stay away from that range.

 1998 when the oid played a larger role, it is now quite rightly
 deprecated and my intention is to remove it from the userlock module.

I wish you wouldn't since http://rrs.decibel.org uses it.

 The new userlocks should be able to take advantage of refinements in the
 locktag structure and provide a full 64 bits to resolve the lock at the
 least.  64 bits is the magic number because it now works quite nicely
 with sequences.  Could you be more specific about how a string based
 user lock system would be implemented?

My thought is to include a lookup table in the module that would
correlate text names to lock numbers. For those who don't care about
performance, they could just aquire and release locks with a function
that accepts a text name. If performance was an issue, they could lookup
the lock number/ID for a text name and store that value. I also don't
see any reason not to set aside a range of numbers as being intended for
general use, and specifying that named locks would never use a number in
that range.

If you're going to go to 64 bit locks I suggest setting aside the range
of 0 to 0x00ff  (that is 48 bits, right? :) for backwards
compatability, and also carving out a small chunk for use by other
defined access methods (such as named locks and OIDs). That way if
someone else thinks of an interesting way to refer to locks it can be
added without worrying about colliding with locks used by existing
software.

BTW, the reason I'm so worried about lock number collisions is that the
application I use them in is designed to run in an existing PostgreSQL
database, which could easily be using userlocks of it's own. I want to
do everything possible to ensure I don't conflict with anything else in
the cluster (locks are cluster-wide, right?), so I use the OID of the
function that aquires the lock. But of course that OID could end up
duplicated, so I'd much rather be able to use a named lock which is
almost guaranteed to be unique (unless someone else decides
'rrs.decibel.org: update()' makes a great lock name...)
-- 
Jim C. Nasby, Database Consultant   [EMAIL PROTECTED] 
Give your computer some brain candy! www.distributed.net Team #1828

Windows: Where do you want to go today?
Linux: Where do you want to go tomorrow?
FreeBSD: Are you guys coming, or what?

---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: [HACKERS] A proper fix for the conversion-function problem

2005-05-03 Thread Tom Lane
Tatsuo Ishii [EMAIL PROTECTED] writes:
 Going forward, though, I really think we need to revisit the API
 for conversion functions.  It seems a bit silly to have the
 infrastructure to let ordinary users create conversions if they
 can't create the functions needed to support them.

 Why? Since the functions need to be written in C language, ordinary
 users cannot make them anyway. Same thing can be said to CREATE TYPE.

Isn't that a circular argument?  If the API were not deliberately
designed to make it C-only, you could usefully code conversions in
string-hacking-friendly languages like Perl.

I'd really like to simplify the conversion function signature to
something like
convert(bytea) returns bytea
or possibly
convert(cstring) returns cstring
depending on whether you think that it's important to be able to pass
zero bytes transparently.  (The current encoding infrastructure seems
pretty confused about that point --- there are null-terminated strings
in some places and counts in others.  Are there any encodings we care
about that require embedded zero bytes?)

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] [PERFORM] Bad n_distinct estimation; hacks suggested?

2005-05-03 Thread Mischa Sandberg
Quoting Josh Berkus josh@agliodbs.com: 
 
 Mischa, 
  
  Okay, although given the track record of page-based sampling for 
  n-distinct, it's a bit like looking for your keys under the 
 streetlight, 
  rather than in the alley where you dropped them :-) 
  
 Bad analogy, but funny. 
 
Bad analogy? Page-sampling effort versus row-sampling effort, c'est 
moot. It's not good enough for stats to produce good behaviour on the 
average. Straight random sampling, page or row, is going to cause 
enough untrustworthy engine behaviour,for any %ages small enough to 
allow sampling from scratch at any time. 
 
I'm curious what the problem is with relying on a start-up plus 
incremental method, when the method in the distinct-sampling paper 
doesn't degenerate: you can start when the table is still empty. 
Constructing an index requires an initial full scan plus incremental 
update; what's the diff? 
 
 Unless, of course, we use indexes for sampling, which seems like a 
 *really  
 good* idea to me  
 
distinct-sampling applies for indexes, too. I started tracking the 
discussion of this a bit late.  Smart method for this is in VLDB'92: 
Gennady Antoshenkov, Random Sampling from Pseudo-ranked B+-trees. I 
don't think this is online anywhere, except if you have a DBLP 
membership. Does nybod else know better? 
Antoshenkov was the brains behind some of the really cool stuff in DEC 
Rdb (what eventually became Oracle). Compressed bitmap indices, 
parallel competing query plans, and smart handling of keys with 
hyperbolic distributions.  
--  
Engineers think equations approximate reality. 
Physicists think reality approximates the equations. 
Mathematicians never make the connection. 


---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: [HACKERS] A proper fix for the conversion-function problem

2005-05-03 Thread John Hansen
 Are there any encodings we care about that require embedded zero
bytes?

UTF-8 does!

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

   http://archives.postgresql.org


Re: [HACKERS] inclusions WAS: Increased company involvement

2005-05-03 Thread James William Pye
On Tue, 2005-05-03 at 18:06 -0700, Josh Berkus wrote:
 1) If we start including everything that's useful, where do we stop?  There 
 are enough pg add-ins to fill a CD -- 200 projects on GBorg and pgFoundry and 
 others elsewhere.  And some of them probably conflict with each other.  Any 
 decision to include some projects and not others will alienate people and 
 possibly be a mis-evaluation; the libpq++/libpqxx mistake comes to mind.

Mmm, just think of it. If enough projects get into core maybe, just
maybe, pg could compete with mozilla for the longest build time.
Wouldn't that be nice. ;)

[snip some stuff that I agree with]

With regards to PLs, there is a good argument for having them in core:
the volatility of the backend's APIs make it difficult to externally
maintain. I know this is the case, first hand. Although, if dynamically
loaded extensions are to be allowed, I think that that volatility should
be seen as a problem, and not so much as a reason to keep things in the
same tree. While I understand that it's likely to be difficult to give
interversion [source] compatibility without sacrificing general
improvement, I think it would be a good goal to have.

...
I asked on IRC and I'm still curious, does PG have a API styling
standard/guide? I see formatting and info about error messages, but
nothing about function/global/typedef naming.
-- 
Regards, James William Pye

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


Re: [HACKERS] A proper fix for the conversion-function problem

2005-05-03 Thread Andrew - Supernews
On 2005-05-04, John Hansen [EMAIL PROTECTED] wrote:
 Are there any encodings we care about that require embedded zero
 bytes?

 UTF-8 does!

nonsense

-- 
Andrew, Supernews
http://www.supernews.com - individual and corporate NNTP services

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


Re: [HACKERS] pg_locks needs a facelift

2005-05-03 Thread Tom Lane
Jim C. Nasby [EMAIL PROTECTED] writes:
 On Tue, May 03, 2005 at 10:22:08AM -0400, Merlin Moncure wrote:
 1998 when the oid played a larger role, it is now quite rightly
 deprecated and my intention is to remove it from the userlock module.

 I wish you wouldn't since http://rrs.decibel.org uses it.

Don't worry, I'll veto any immediate removal of functionality ;-)

The correct way to handle this is to add some better userlock
functionality and deprecate what's there.  We can remove the crufty
stuff in a release or three after it's been officially deprecated
... but there is no reason to remove it immediately.  It won't conflict
with a better version, just exist alongside.

regards, tom lane

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


Re: [HACKERS] inclusions WAS: Increased company involvement

2005-05-03 Thread Josh Berkus
Andrew,

 I was not around at the time of the libpq++/libpqxx issue. But, honestly,
 fear of making a wrong decision should not be a reason not to make one.

OK, *you* choose.   I'm getting a little annoyed with how many people tell me 
oh, it should be easy to pick the stuff to include with standard 
PostgreSQL, and then expect core to do the choosing.   Well, it's not easy, 
and core made choices.  If you don't like them, then make a proposal, 
including a set of objective criteria that can be used to evaluate future 
projects -- and even to evaluate when to drop one.

Apache does this; they have a 5-step process for accepted projects that took 
Brian  co a year to work out.  And the process has its cost; evaluation of 
acceptance is highly political and not infrequently results in people getting 
pissed off and/or impatient with the bureaucracy and leaving Apache to start 
independent projects.  And even Apache doesn't tar up everything in one big 
package; mod_perl, geronimo, PHP, etc. are all separate.

The advantage of a small kernel approach is the independence it gives add-in 
projects.   You can start a pgFoundry project based on a weekend's 
enthusiasm; add whomever you want, use whatever OSS license you want, release 
on your own schedule.  It means that add-in developers can prove the 
usefulness of their code by demonstration rather than having to meet some 
qualification process.

Look at other large projects with lots of options.  Apache, Perl, Linux, Java, 
emacs, KDE, etc., all of them strike a balance between including stuff and 
leaving stuff as add-ins (some more narrowly than others), and exclude a lot 
of popular and useful stuff on a variety of criteria.  Our current balance is 
on the minimalist side, and somewhat arbitrary if you look at the /contrib 
directory.  If you think there's a better balance, propose it.  Seriously.

 As for CVS - if we can't do development the way we want using it then it's
 time to replace it. I have been convinced for quite a while that it is
 living on borrowed time, but I am far less certain about what should be
 used to replace it. But making macro content decisions on the basis of what
 we can do with CVS is just crazy.

Again, you're saying that you don't have a solution but you think it should be 
fixed.  Great.  I think it should be fixed, too.  Afaik, there is *no* 
versioning system that allows for both completely independent control of 
branches and directories while at the same time allowing for a cohesive 
build.  Maybe BK does, that would explain why Linus liked it so much.

I, personally, would *love* to find a way for the drivers to be included with 
the core build while still letting the various teams -- particularly JDBC and 
Python -- have control over their own groups.  And I think we need a way for 
add-ins to build in a completely integrated way with the backend, including 
building in docs.  But these are not technically easy problems.

(I hope people understand here that I'm speaking for me, personally)

-- 
Josh Berkus
Aglio Database Solutions
San Francisco

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


Re: [HACKERS] inclusions WAS: Increased company involvement

2005-05-03 Thread Tom Lane
Andrew Dunstan [EMAIL PROTECTED] writes:
 As for CVS - if we can't do development the way we want using it then it's
 time to replace it.

CVS's capabilities (or lack of same) are completely unrelated to the
matter in hand.  What we are talking about is packaging, ie what should
sensibly go out in the same shipped tarball.

regards, tom lane

---(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] A proper fix for the conversion-function problem

2005-05-03 Thread Tom Lane
John Hansen [EMAIL PROTECTED] writes:
 Are there any encodings we care about that require embedded zero
 bytes?

 UTF-8 does!

Surely not.  Were you thinking of UTF-16 or UCS-2 or whatever it's
called?

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


  1   2   >