Re: tsearch V2 (Was: Re: [HACKERS] Two weeks to feature freeze)

2003-06-20 Thread Hannu Krosing
The Hermit Hacker kirjutas R, 20.06.2003 kell 08:28:
 On Fri, 20 Jun 2003, Tom Lane wrote:
 
   On Fri, 20 Jun 2003, The Hermit Hacker wrote:
   Is there a strong reason why tsearch isn't in gborg?
 
  I think text search is a pretty important facility that should
  eventually be part of the core distribution.  It's more likely to get
  there from contrib than from gborg ...
 
 Why part of the core distribution, and not just left as a loadable module,
 like it is now?

I remember Tom saying that builtin functions calls are a lot faster than
loadable C functions.

If that can be fixed, then it *could* stay loadable.

Also, having built-in full text indexing is very desirable. And I don't
see any even nearly as good competing fulltext indexing modules
anywhere.

If we had to move something *out* of core in order to get tsearch in,
then I personally would not mind if all geometry types go to gborg, but
I'm sure there are some users who would mind ;)

---
Hannu


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

   http://archives.postgresql.org


[HACKERS] JDBC in PostgreSql for Linux

2003-06-20 Thread Kallol Nandi




I am running a Java 
application on Linux which connects to the Postgresql on Linux using jdbcodbc 
bridge.
But this is the 
error I am getting :

sun.jdbc.odbc.JdbcOdbcDriverjava.lang.ClassNotFoundException: 
sun.jdbc.odbc.JdbcOdbcDriver at 0x4028115f: 
java.lang.Throwable.Throwable(java.lang.String) 
(/usr/lib/libgcj.so.3) at 0x402740d2: 
java.lang.Exception.Exception(java.lang.String) 
(/usr/lib/libgcj.so.3) at 0x402737a8: 
java.lang.ClassNotFoundException.ClassNotFoundException(java.lang.String) 
(/usr/lib/libgcj.so.3) at 0x4030b2be: 
java.net.URLClassLoader.findClass(java.lang.String) 
(/usr/lib/libgcj.so.3) at 0x402606d7: 
gnu.gcj.runtime.VMClassLoader.findClass(java.lang.String) 
(/usr/lib/libgcj.so.3) at 0x40272cc7: 
java.lang.ClassLoader.loadClass(java.lang.String, boolean) 
(/usr/lib/libgcj.so.3) at 0x40260e09: 
_Jv_FindClass(_Jv_Utf8Const, java.lang.ClassLoader) 
(/usr/lib/libgcj.so.3) at 0x4025d1fd: 
java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) 
(/usr/lib/libgcj.so.3) at 0x4025d2bf: 
java.lang.Class.forName(java.lang.String) (/usr/lib/libgcj.so.3) 
at 0x4039d347: ffi_call_SYSV (/usr/lib/libgcj.so.3) at 
0x4039d307: ffi_raw_call (/usr/lib/libgcj.so.3) at 0x40248528: 
_Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation) 
(/usr/lib/libgcj.so.3) at 0x40248e34: 
_Jv_InterpMethod.run(ffi_cif, void, ffi_raw, _Jv_InterpMethodInvocation) 
(/usr/lib/libgcj.so.3) at 0x40246424: 
_Jv_InterpMethod.run_normal(ffi_cif, void, ffi_raw, void) 
(/usr/lib/libgcj.so.3) at 0x4039d1bc: ?? (??:0) 
at 0x4025b308: gnu.gcj.runtime.FirstThread.call_main() 
(/usr/lib/libgcj.so.3) at 0x402c60b1: 
gnu.gcj.runtime.FirstThread.run() (/usr/lib/libgcj.so.3) at 
0x40267fdc: _Jv_ThreadRun(java.lang.Thread) 
(/usr/lib/libgcj.so.3) at 0x4023478c: 
_Jv_RunMain(java.lang.Class, byte const, int, byte const, boolean) 
(/usr/lib/libgcj.so.3) at 0x08048900: ?? (??:0) 
at 0x420158d4: ?? (??:0) at 0x080486c1: ?? 
(??:0)

I have also tried 
running a Java application using the Native JDBC Driver.
I get the following 
error :
Driver not found for 
URL: jdbc:[EMAIL PROTECTED]:5432:notesjava.sql.SQLException: Driver 
not found for URL: jdbc:[EMAIL PROTECTED]:5432:notes at 
0x4028115f: java.lang.Throwable.Throwable(java.lang.String) 
(/usr/lib/libgcj.so.3) at 0x402740d2: 
java.lang.Exception.Exception(java.lang.String) 
(/usr/lib/libgcj.so.3) at 0x40316294: 
java.sql.SQLException.SQLException(java.lang.String, java.lang.String, int) 
(/usr/lib/libgcj.so.3) at 0x40316244: 
java.sql.SQLException.SQLException(java.lang.String) 
(/usr/lib/libgcj.so.3) at 0x40316102: 
java.sql.DriverManager.getConnection(java.lang.String, java.util.Properties) 
(/usr/lib/libgcj.so.3) at 0x4031603a: 
java.sql.DriverManager.getConnection(java.lang.String, java.lang.String, 
java.lang.String) (/usr/lib/libgcj.so.3) at 0x4039d347: 
ffi_call_SYSV (/usr/lib/libgcj.so.3) at 0x4039d307: ffi_raw_call 
(/usr/lib/libgcj.so.3) at 0x40248528: 
_Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation) 
(/usr/lib/libgcj.so.3) at 0x40248e34: 
_Jv_InterpMethod.run(ffi_cif, void, ffi_raw, _Jv_InterpMethodInvocation) 
(/usr/lib/libgcj.so.3) at 0x40246424: 
_Jv_InterpMethod.run_normal(ffi_cif, void, ffi_raw, void) 
(/usr/lib/libgcj.so.3) at 0x4039d1bc: ?? (??:0) 
at 0x4025b308: gnu.gcj.runtime.FirstThread.call_main() 
(/usr/lib/libgcj.so.3) at 0x402c60b1: 
gnu.gcj.runtime.FirstThread.run() (/usr/lib/libgcj.so.3) at 
0x40267fdc: _Jv_ThreadRun(java.lang.Thread) 
(/usr/lib/libgcj.so.3) at 0x4023478c: 
_Jv_RunMain(java.lang.Class, byte const, int, byte const, boolean) 
(/usr/lib/libgcj.so.3) at 0x08048900: ?? (??:0) 
at 0x420158d4: ?? (??:0) at 0x080486c1: ?? 
(??:0)

Can you help me?Do 
you have any contact number?
Do you have any url 
links that might be helpful to me?
Or any other contact 
number in India or abroad for PostgreSql?
Please do reply me 
asap.

Thanks and 
Regards,
Kallol 
Nandi,Systems 
Analyst,Indus 
Software - A Division of R Systems International Ltd.,Tidel 
Park, Taramani, Chennai-600113, India.Phone: +91-44-22540014/6 
Extn: 209Fax: 
+91-44-22540017Email: [EMAIL PROTECTED]Visit us 
@ http://www.indussoft.com/ 

"The 
information in this email is confidential, and intended solely for the 
addressee. Access to this email by anyone else is unauthorized. If you are the 
addressee, the contents of this email are intended for your use only and it must 
not be forwarded to any third party, without first obtaining written 
authorization from the originator, or Indus Software. It may contain 
information, which is confidential and legally privileged, and the same shall 
not be used, or dealt with, by any third party, in any manner whatsoever, 
without the specific consent of Indus Software.
The 
opinions expressed are those of the sender, and do not necessarily reflect those 
of the Indus Software."



Re: [HACKERS] Access to transaction status

2003-06-20 Thread Christian Plattner
- Original Message - 
From: Jeroen T. Vermeulen [EMAIL PROTECTED]

 I ran into the same need (Bruce, we discussed this at FOSDEM in Brussels
 this February) for libpqxx.  My code tries to compensate for the
 possibility that the backend connection is lost while waiting for a reply
 to a COMMIT.  The way I worked around it was to create a special record
 at the beginning of the transaction, in a dedicated table that's
 effectively a custom transaction log.  If the record is still there when
 I reconnect, the transaction committed.  If not, it didn't.

 Obviously this leaves some garbage collection issues, so I'd be really
 happy with a way to go back to the server after my connection is lost
 and find out whether my transaction committed or not.

I see a race condition in this approach: if you reconnect too fast, and the
backend which actually should commit is still in progress (assume it takes a
while to commit for whatever reasons) you get the impression that it did not
commit - and a short time later the backend will commit... (before noticing
that the client connection was lost).

A safe method would be to shut down all backends (or is there another method
to safely abort all transactions?), then start the backends again, and then
read the table with the special records. In this way you would be sure that
your transaction is not in progress while you're inspecting the table.
Ofcourse, this approach is not very fast and may abort alot of
transactions - but if consistency is more important for you than anything
else...

- Christian



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

   http://archives.postgresql.org


Re: [HACKERS] Access to transaction status

2003-06-20 Thread Christian Plattner

- Original Message - 
From: Tom Lane [EMAIL PROTECTED]

 How much later?  clog is not kept forever.

Due to my setup, I could assure, that for the XID I ask for always

(ShmemVariableCache-nextXid - XID)  C   (and C is in my case something
around 150).

holds. A possible solution could be to (dynamically) announce this constant
C to the clog code,
so that the information is kept for a while. Ofcourse one should not do a
VACUUM FULL while not being sure about the status of a transaction in the
past :)

Until now, I did not investigate what happens when
ShmemVariableCache-nextXid wraps around.

- Christian


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


Re: [HACKERS] Access to transaction status

2003-06-20 Thread Jeroen T. Vermeulen
On Fri, Jun 20, 2003 at 09:35:08AM +0200, Christian Plattner wrote:
 
 I see a race condition in this approach: if you reconnect too fast, and the
 backend which actually should commit is still in progress (assume it takes a
 while to commit for whatever reasons) you get the impression that it did not
 commit - and a short time later the backend will commit... (before noticing
 that the client connection was lost).
 
Good point.  So far I assumed that a broken connection would take a while
to repair.  OTOH by the time TCP gives up due to a bad network connection,
wouldn't the server reach the same conclusion?


Jeroen


---(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] Access to transaction status

2003-06-20 Thread Christian Plattner

- Original Message - 
From: Jeroen T. Vermeulen [EMAIL PROTECTED]

  I see a race condition in this approach: if you reconnect too fast, and
the
  backend which actually should commit is still in progress (assume it
takes a
  while to commit for whatever reasons) you get the impression that it did
not
  commit - and a short time later the backend will commit... (before
noticing
  that the client connection was lost).

 Good point.  So far I assumed that a broken connection would take a while
 to repair.  OTOH by the time TCP gives up due to a bad network connection,
 wouldn't the server reach the same conclusion?


Well, I wouldn't rely solely on TCP when assuring consistency. Also, I don't
think that the backend will ever inspect its TCP socket while committing.

btw: There could be also other reasons for the client to loose the
connection (i.e. client process crashes).

- Christian


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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Nigel J. Andrews

On Thu, 19 Jun 2003, The Hermit Hacker wrote:

 On Thu, 19 Jun 2003, Andrew Dunstan wrote:
 
 
  Maybe a better strategy would be to get a release out soon but not wait
  6 months for another release which would contain the Win32 port and the
  PITR stuff (assuming those aren't done in time for this release).
 
  Just a thought.
 
 And definitely in agreement here ... I'd rather see a shortened dev cycle
 prompted by a big feature being added, then delaying a release because oh
 oh, I need another few weeks that draws out when something unexpected
 happens :(

...

I'm not sure why another delay is being considered. There's been a delay of
a week because of the server problems hasn't there and wasn't the original
delay only acceptable on the basis that that was that and there wasn't going to
be another extension?


--
Nigel Andrews



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

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


Re: tsearch V2 (Was: Re: [HACKERS] Two weeks to feature freeze)

2003-06-20 Thread Oleg Bartunov
On Fri, 20 Jun 2003, Christopher Kings-Lynne wrote:

  Why part of the core distribution, and not just left as a loadable module,
  like it is now?

 The day I can go 'CREATE FULLTEXT INDEX ...' just like MySQL can I will be a
 very happy chappy...


with new tserach v2 we're pretty close to that day. we need more testing,
more suggestions and more documentation. There are several issues remains,
mostly with core GiST not tsearch. The most important is concurrency support !
We've several times planned to work on it, but real life  is rather complex
thing :(

 Chris


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


Regards,
Oleg
_
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: [EMAIL PROTECTED], http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83

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


[HACKERS] Lotus Domino and PostgreSql in Linux

2003-06-20 Thread Kallol Nandi



I am running an agent in the domino server that 
connects to a database in Postgresql through odbc dsn.I am getting an error 
"Error Creating product object" at the line   Set con = New 
ODBCConnectionHere is the code :Option PublicUselsx 
"*LSXODBC"Sub Initialize Dim con As 
ODBCConnection Dim qry As ODBCQuery Dim result 
As ODBCResultSet Dim id As Integer Dim nam As 
String,job As StringAm getting Error here Set con = New 
ODBCConnection Set qry = New ODBCQuery Set 
result = New ODBCResultSet Set qry.Connection = con 
Set result.Query = qry status = 
con.ConnectTo("debug") qry.SQL = "select * from 
testtable" result.Execute Do  
 result.NextRow   id = 
result.GetValue("a", id)   nam = 
result.GetValue("b", nam) Loop Until 
result.IsEndOfData result.Close(DB_CLOSE) 
con.DisconnectEnd SubI guess it is an error related to 
Domino.But not sure. may be related to the ODBC driver also.Is there any 
way to solve it.

Kallol 
Nandi,Systems 
Analyst,Indus 
Software - A Division of R Systems International Ltd.,Tidel 
Park, Taramani, Chennai-600113, India.Phone: +91-44-22540014/6 
Extn: 209Fax: 
+91-44-22540017Email: [EMAIL PROTECTED]Visit us 
@ http://www.indussoft.com/ 
"The 
information in this email is confidential, and intended solely for the 
addressee. Access to this email by anyone else is unauthorized. If you are the 
addressee, the contents of this email are intended for your use only and it must 
not be forwarded to any third party, without first obtaining written 
authorization from the originator, or Indus Software. It may contain 
information, which is confidential and legally privileged, and the same shall 
not be used, or dealt with, by any third party, in any manner whatsoever, 
without the specific consent of Indus Software.
The 
opinions expressed are those of the sender, and do not necessarily reflect those 
of the Indus Software."



Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Justin Clift
The Hermit Hacker wrote:

On Thu, 19 Jun 2003, Andrew Dunstan wrote:


Maybe a better strategy would be to get a release out soon but not wait
6 months for another release which would contain the Win32 port and the
PITR stuff (assuming those aren't done in time for this release).
Just a thought.


And definitely in agreement here ... I'd rather see a shortened dev cycle
prompted by a big feature being added, then delaying a release because oh
oh, I need another few weeks that draws out when something unexpected
happens :(
Yep, this makes sense.  Looks like it'll be PostgreSQL 7.4 being all the 
present improvements, but without PITR and Win32.  Then, in a few months 
(hopefully less than 3) we'll have PostgreSQL 8.0, with both of those 
major features in it (and whatever other enhancements have been added).

The only thing that makes me wince is that we have a protocol change at 
PostgreSQL 7.4 release instead of 8.0.  It kind of doesn't sound right, 
having a protocol change in the 7 series, when we have an 8 series 
coming up soon after.

Oh well, so it's not perfect...

;-)

Regards and best wishes,

Justin Clift

snip

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


[HACKERS] Ownership change doesn't change privileges

2003-06-20 Thread Peter Eisentraut
When you change the owner of a table and relacl is null, then the new
owner obtains all privileges, because the default privileges apply to the
current owner.  But when relacl is not null, the old owner retains all
privileges and the new owner has none.

Perhaps the privileges of the owner should be represented with a different
flag in the aclitem, alongside world, group, public?

Currently, changing the table ownership requires superuser privileges, so
this situation can be fixed manually.  But when groups can own tables and
users can move table ownerships between their groups (in a way to be
defined), this can be trickier.

Ideas?

-- 
Peter Eisentraut   [EMAIL PROTECTED]


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

   http://archives.postgresql.org


Re: [HACKERS] Access to transaction status

2003-06-20 Thread Jeroen T. Vermeulen
On Fri, Jun 20, 2003 at 10:20:14AM +0200, Christian Plattner wrote:
 
 Well, I wouldn't rely solely on TCP when assuring consistency. Also, I don't
 think that the backend will ever inspect its TCP socket while committing.
 
No, but its underlying IP stack would.


 btw: There could be also other reasons for the client to loose the
 connection (i.e. client process crashes).

In that case the client would lose all its state as well, so not really 
a problem that can be handled client-side.


Jeroen


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

   http://archives.postgresql.org


Re: [HACKERS] Access to transaction status

2003-06-20 Thread Christian Plattner
- Original Message - 
From: Tom Lane [EMAIL PROTECTED]

 How much later?  clog is not kept forever.

I took a deeper look into the source. Forget my last posting.

As far as I understand your code there is only one chance that information
in clog gets lost:
If XIDs are reused then ExtendCLOG will overwrite existing entries.
Also, it seems to me that VACCUM has not effect on the clog.

Now let's assume that there is a GET_XID_STATUS(xid) function.

If at the time GET_XID_STATUS(xid) gets executed 'xid' has not been reused
(which only should occur after about 4 billion transactions following xid),
then the mechanism should work.

If one uses TransactionIdPrecedes to check if xid is in the past (as in my
sample code), then the window is restricted to 2 billion transactions, which
seems enough for me. I implemented this check so that the clog lookup code
does not try to fetch pages that do not yet exist (which crashes the
backend) if one supplies a wrong xid.

What do you think?

Thanks, Christian


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

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


Re: [HACKERS] Access to transaction status

2003-06-20 Thread Christian Plattner

- Original Message - 
From: Jeroen T. Vermeulen [EMAIL PROTECTED]

  btw: There could be also other reasons for the client to loose the
  connection (i.e. client process crashes).

 In that case the client would lose all its state as well, so not really
 a problem that can be handled client-side.

Well, my client (actually it is a middleware layer which routes transactions
to a set of replicas) keeps its own log, because it must be able to handle
arbitary failures. So it never looses its state.

- Christian


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


Re: [HACKERS] Access to transaction status

2003-06-20 Thread Jeroen T. Vermeulen
On Fri, Jun 20, 2003 at 02:41:29PM +0200, Christian Plattner wrote:
 
 Well, my client (actually it is a middleware layer which routes transactions
 to a set of replicas) keeps its own log, because it must be able to handle
 arbitary failures. So it never looses its state.

In that case perhaps we should see if there's anything we can do for
each other.  At the current rate, libpqxx is growing towards a sort of
middleware product, but obviously it's not the right place to tackle
many of the typical middleware problems.


Jeroen


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

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


Re: [HACKERS] add column .. default

2003-06-20 Thread Rod Taylor
On Thu, 2003-06-19 at 21:22, Christopher Kings-Lynne wrote:
  There is no alternative, unless you want the command to be
  non-roll-back-able.
 
 Well, you can do a cluster-type table duplication...

Thats still double the disk space, although that has the nice side
effect of not requiring a vacuum.
-- 
Rod Taylor [EMAIL PROTECTED]

PGP Key: http://www.rbt.ca/rbtpub.asc


signature.asc
Description: This is a digitally signed message part


Re: [HACKERS] Access to transaction status

2003-06-20 Thread Tom Lane
Christian Plattner [EMAIL PROTECTED] writes:
 From: Tom Lane [EMAIL PROTECTED]
 How much later?  clog is not kept forever.

 ... Ofcourse one should not do a
 VACUUM FULL while not being sure about the status of a transaction in the
 past :)

As long as you haven't done a cluster-wide VACUUM, clog status will not
get recycled.  For the application you're describing I think this will
work fine.

You might want to set up the API of the inquiry function to include
specified return codes for UNKNOWN (older than beginning of clog) and
FUTURE (greater than NextXid) as well as COMMITTED, ABORTED, and
INPROGRESS.  The current implementation can't easily give you UNKNOWN
(it'll error out instead) but any general-usage function of this kind
would have to offer that.

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] Ownership change doesn't change privileges

2003-06-20 Thread Tom Lane
Peter Eisentraut [EMAIL PROTECTED] writes:
 Perhaps the privileges of the owner should be represented with a different
 flag in the aclitem, alongside world, group, public?

Seems reasonable to me.  It always struck me as kind of odd that the
owner's name would become explicit in the ACL as soon as you did
anything.

regards, tom lane

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


Re: [HACKERS] Access to transaction status

2003-06-20 Thread Tom Lane
Christian Plattner [EMAIL PROTECTED] writes:
 From: Tom Lane [EMAIL PROTECTED]
 How much later?  clog is not kept forever.

 As far as I understand your code there is only one chance that information
 in clog gets lost:
 If XIDs are reused then ExtendCLOG will overwrite existing entries.
 Also, it seems to me that VACCUM has not effect on the clog.

You're quite mistaken.  clog is truncated during vacuum, once we are
confident that there are no unvacuumed rows in the database with XIDs
older than a certain point.  This is to keep clog space requirements
within reason.

regards, tom lane

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

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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Robert Treat
On Fri, 2003-06-20 at 04:41, Nigel J. Andrews wrote:
 
 On Thu, 19 Jun 2003, The Hermit Hacker wrote:
 
  On Thu, 19 Jun 2003, Andrew Dunstan wrote:
  
  
   Maybe a better strategy would be to get a release out soon but not wait
   6 months for another release which would contain the Win32 port and the
   PITR stuff (assuming those aren't done in time for this release).
  
   Just a thought.
  
  And definitely in agreement here ... I'd rather see a shortened dev cycle
  prompted by a big feature being added, then delaying a release because oh
  oh, I need another few weeks that draws out when something unexpected
  happens :(
 
 ...
 
 I'm not sure why another delay is being considered. There's been a delay of
 a week because of the server problems hasn't there and wasn't the original
 delay only acceptable on the basis that that was that and there wasn't going to
 be another extension?
 

There really isn't for this release. Any talk of delay is just a thought
on general policy for future releases.

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


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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Robert Treat
On Fri, 2003-06-20 at 06:59, Justin Clift wrote:
 The Hermit Hacker wrote:
  On Thu, 19 Jun 2003, Andrew Dunstan wrote:
 Yep, this makes sense.  Looks like it'll be PostgreSQL 7.4 being all the 
 present improvements, but without PITR and Win32.  Then, in a few months 
 (hopefully less than 3) we'll have PostgreSQL 8.0, with both of those 
 major features in it (and whatever other enhancements have been added).
 
 The only thing that makes me wince is that we have a protocol change at 
 PostgreSQL 7.4 release instead of 8.0.  It kind of doesn't sound right, 
 having a protocol change in the 7 series, when we have an 8 series 
 coming up soon after.
 
 Oh well, so it's not perfect...
 

...which is why I'd advocate making this release an 8.0 regardless of
win32 or pitr.  I know it's old school to actually base versioning on
technical criteria instead of buzzwords, but there's no reason we have
to follow the corporate mold. Still, I'd rather not get into that debate
yet since I don't want to let the win32 guys off the hook yet! 

win32 for the next release! go guys go!


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


---(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] Two weeks to feature freeze

2003-06-20 Thread Tom Lane
Robert Treat [EMAIL PROTECTED] writes:
 On Fri, 2003-06-20 at 06:59, Justin Clift wrote:
 The only thing that makes me wince is that we have a protocol change at 
 PostgreSQL 7.4 release instead of 8.0.

 ...which is why I'd advocate making this release an 8.0 regardless of
 win32 or pitr.

shrug ... The backend will still talk to old clients, and libpq will
still talk to old backends, so I don't think the protocol change is
really going to cause a flag day for anyone.  On a technical level it's
probably not an adequate reason to call this release 8.0.

On the other hand, I dislike the notion that we would call a release 8.0
simply because it now has a native Windows port.  (And if there is a
short release cycle after this one, that might be about the only big new
thing there.)  Considering that we aren't going to be recommending the
Windows port for production work, we should not let the release
numbering give the impression we think it's the greatest Postgres
feature ever to come down the pike.

I'm happy to keep calling 'em 7.* for the foreseeable future, myself.

regards, tom lane

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

   http://archives.postgresql.org


Re: tsearch V2 (Was: Re: [HACKERS] Two weeks to feature freeze)

2003-06-20 Thread The Hermit Hacker

And, actually, for some reason I hadn't thought of the tsearch as being
another 'INDEX' type ... I crawl back over and be quiet now :)

Oleg, as far as commits are concerned, I have no problems with extending
the privileges to one of your guys for this, just email me seperately who,
and I'll get it setup ...

On Fri, 20 Jun 2003, Oleg Bartunov wrote:

 On Fri, 20 Jun 2003, Christopher Kings-Lynne wrote:

   Why part of the core distribution, and not just left as a loadable module,
   like it is now?
 
  The day I can go 'CREATE FULLTEXT INDEX ...' just like MySQL can I will be a
  very happy chappy...
 

 with new tserach v2 we're pretty close to that day. we need more testing,
 more suggestions and more documentation. There are several issues remains,
 mostly with core GiST not tsearch. The most important is concurrency support !
 We've several times planned to work on it, but real life  is rather complex
 thing :(

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

   Regards,
   Oleg
 _
 Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
 Sternberg Astronomical Institute, Moscow University (Russia)
 Internet: [EMAIL PROTECTED], http://www.sai.msu.su/~megera/
 phone: +007(095)939-16-83, +007(095)939-23-83


Marc G. Fournier   ICQ#7615664   IRC Nick: Scrappy
Systems Administrator @ hub.org
primary: [EMAIL PROTECTED]   secondary: [EMAIL PROTECTED]|postgresql}.org

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

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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Robert Treat
On Fri, 2003-06-20 at 10:42, Tom Lane wrote:
 Robert Treat [EMAIL PROTECTED] writes:
  On Fri, 2003-06-20 at 06:59, Justin Clift wrote:
  The only thing that makes me wince is that we have a protocol change at 
  PostgreSQL 7.4 release instead of 8.0.
 
  ...which is why I'd advocate making this release an 8.0 regardless of
  win32 or pitr.
 
 shrug ... The backend will still talk to old clients, and libpq will
 still talk to old backends, so I don't think the protocol change is
 really going to cause a flag day for anyone.  On a technical level it's
 probably not an adequate reason to call this release 8.0.

 
Can you give me an example of a technical change that would warrant a
major version bump?  
 
 On the other hand, I dislike the notion that we would call a release 8.0
 simply because it now has a native Windows port.  (And if there is a
 short release cycle after this one, that might be about the only big new
 thing there.)  Considering that we aren't going to be recommending the
 Windows port for production work, we should not let the release
 numbering give the impression we think it's the greatest Postgres
 feature ever to come down the pike.
 

yep.


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


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

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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Tom Lane
Robert Treat [EMAIL PROTECTED] writes:
 On Fri, 2003-06-20 at 10:42, Tom Lane wrote:
 shrug ... The backend will still talk to old clients, and libpq will
 still talk to old backends, so I don't think the protocol change is
 really going to cause a flag day for anyone.  On a technical level it's
 probably not an adequate reason to call this release 8.0.
 
 Can you give me an example of a technical change that would warrant a
 major version bump?  

Well, if we hadn't gotten the work done to make libpq still able to talk
to older backends, then we'd have had enough of a compatibility issue
that I think calling it 8.0 would have been a reasonable thing to do.

If you want a feature-with-a-capital-F reason for going to 8.0, there is
only one candidate Feature in my personal view, and that's a built-in
replication solution.  That doesn't seem to be getting any nearer :-(

regards, tom lane

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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Robert Treat
On Fri, 2003-06-20 at 11:21, Josh Berkus wrote:
 Robert,
 
  Well, I suppose that history has shown that waiting on specific features
  causes trouble with postgresql development, but I don't see why a
  release can't be based around waiting for feature x as long as feature x
  is being actively worked on by trusted developers who have an endgame in
  sight.
 
 Ultimately, this is one of those technical vs. marketing questions ... 

absolutely not. this is a x style of development vs. y style of
development discussion. many many projects, commercial and open source,
use a style of releasing based on features included in a given version.
In fact I'd be willing to say that the majority of open source projects
work this way, since open source projects generally aren't beholden to
release dates, giving developers the time they need to get specific
features done and release them when they are ready.  as i prefaced in my
message, history has shown us that waiting on specific features causes
trouble with postgresql development, but that doesn't mean we should
act as if this style of development doesn't exist.  

 whether to release now with a bunch of back-end features that the current 
 users want, or to release later and include the features that we said were 
 going to be in 7.4.   And PostgreSQL is a technical project, not a marketing 
 one.  
 

right, which is why core/hackers will decide both what gets into each
releases and when it's released.  since i'm not outpacing tom or bruce
in my patch submissions i don't expect them to bend to my whims, but as
someone who follows and participates in postgresql development
regardless of an marketing aspects, i don't mind pointing out
alternatives.

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


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


[HACKERS] Subtraction carry bug in xlog.c in 7.3 and 7.4

2003-06-20 Thread J.R. Nield
The attached patches against 7.3 and 7.4 fix a subtraction carry bug in
xlog.c.

-- 
John Nield
[EMAIL PROTECTED]
Index: pgsql-server-7_3/src/backend/access/transam/xlog.c
diff -c pgsql-server-7_3/src/backend/access/transam/xlog.c:1.1.1.1 
pgsql-server-7_3/src/backend/access/transam/xlog.c:1.1.1.1.2.2
*** pgsql-server-7_3/src/backend/access/transam/xlog.c:1.1.1.1  Thu Jun 19 14:25:08 
2003
--- pgsql-server-7_3/src/backend/access/transam/xlog.c  Thu Jun 19 18:21:54 2003
***
*** 354,362 
  logSeg = (xlrp).xrecoff / XLogSegSize \
)
  #define XLByteToPrevSeg(xlrp, logId, logSeg)  \
!   ( logId = (xlrp).xlogid, \
! logSeg = ((xlrp).xrecoff - 1) / XLogSegSize \
!   )
  
  /*
   * Is an XLogRecPtr within a particular XLOG segment?
--- 354,366 
  logSeg = (xlrp).xrecoff / XLogSegSize \
)
  #define XLByteToPrevSeg(xlrp, logId, logSeg)  \
!   do { \
!   logId = (xlrp).xlogid; \
! if ( (xlrp).xrecoff == 0 ) \
!   { logId--; logSeg = XLogSegsPerFile - 1; } \
!   else \
!   logSeg = ((xlrp).xrecoff - 1) / XLogSegSize; \
!   } while (0)
  
  /*
   * Is an XLogRecPtr within a particular XLOG segment?
***
*** 369,376 
 (xlrp).xrecoff / XLogSegSize == (logSeg))
  
  #define XLByteInPrevSeg(xlrp, logId, logSeg)  \
!   ((xlrp).xlogid == (logId)  \
!((xlrp).xrecoff - 1) / XLogSegSize == (logSeg))
  
  
  #define XLogFileName(path, log, seg)  \
--- 373,384 
 (xlrp).xrecoff / XLogSegSize == (logSeg))
  
  #define XLByteInPrevSeg(xlrp, logId, logSeg)  \
!   ( \
!   ((xlrp).xrecoff == 0)? \
!   ((xlrp).xlogid - 1 == (logId)  (XLogSegsPerFile - 1) == logSeg): \
!   ((xlrp).xlogid == (logId)   \
!   ((xlrp).xrecoff - 1) / XLogSegSize == 
(logSeg)) \
!   )
  
  
  #define XLogFileName(path, log, seg)  \
*** src/backend/access/transam/xlog.c.orig	Fri Jun 20 09:04:20 2003
--- src/backend/access/transam/xlog.c	Fri Jun 20 09:10:04 2003
***
*** 354,362 
  	  logSeg = (xlrp).xrecoff / XLogSegSize \
  	)
  #define XLByteToPrevSeg(xlrp, logId, logSeg)	\
! 	( logId = (xlrp).xlogid, \
! 	  logSeg = ((xlrp).xrecoff - 1) / XLogSegSize \
! 	)
  
  /*
   * Is an XLogRecPtr within a particular XLOG segment?
--- 354,366 
  	  logSeg = (xlrp).xrecoff / XLogSegSize \
  	)
  #define XLByteToPrevSeg(xlrp, logId, logSeg)	\
! 	do { \
! 		logId = (xlrp).xlogid; \
! if ( (xlrp).xrecoff == 0 ) \
! 			{ logId--; logSeg = XLogSegsPerFile - 1; } \
! 		else \
! 			logSeg = ((xlrp).xrecoff - 1) / XLogSegSize; \
! 	} while (0)
  
  /*
   * Is an XLogRecPtr within a particular XLOG segment?
***
*** 369,376 
  	 (xlrp).xrecoff / XLogSegSize == (logSeg))
  
  #define XLByteInPrevSeg(xlrp, logId, logSeg)	\
! 	((xlrp).xlogid == (logId)  \
! 	 ((xlrp).xrecoff - 1) / XLogSegSize == (logSeg))
  
  
  #define XLogFileName(path, log, seg)	\
--- 373,384 
  	 (xlrp).xrecoff / XLogSegSize == (logSeg))
  
  #define XLByteInPrevSeg(xlrp, logId, logSeg)	\
!   ( \
! 	((xlrp).xrecoff == 0)? \
! 		((xlrp).xlogid - 1 == (logId)  (XLogSegsPerFile - 1) == logSeg): \
! 		((xlrp).xlogid == (logId)   \
! 		((xlrp).xrecoff - 1) / XLogSegSize == (logSeg)) \
!   )
  
  
  #define XLogFileName(path, log, seg)	\

---(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] Subtraction carry bug in xlog.c in 7.3 and 7.4

2003-06-20 Thread Tom Lane
J.R. Nield [EMAIL PROTECTED] writes:
 The attached patches against 7.3 and 7.4 fix a subtraction carry bug in
 xlog.c.

This is simply a waste of cycles, because xrecoff can never be zero
(if it were, it'd be pointing at a page header, which is not a valid
record location).  If you look around in the code, you'll note that
xrecoff==0 is actually used as an invalid-value flag in a couple of
contexts.

Can you point to anyplace where the behavior would change?  If so
I think there's a deeper bug to fix.

regards, tom lane

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


[HACKERS] what is the meaning of schema?

2003-06-20 Thread _
My understanding of schema that I discovered
in 7.3 (I don't think they were available before)
is that you can have two tables with the same name
if they are in different schemas.

I have done a google search, as well as archive search
but

pg_dump and pg_dumpall are broken if a database
contains schemas.

First of all if there are two tables with the same
name in different schemas pg_dump only dumps out
one table.  There is no way to dump other tables
and I have checked pg_dump man page

Restoring a pg_dumpall is now a nightmare because

I had as superuser

# create schema test authorization httpd

on a database not owned by database owner.
And it works merrily until the time to
dump and restore.

pg_dumpall answers to above create authorization is 

\connect - httpd

create schema test

Hell breaks lose with that!  Because httpd cannot
create schema on a database that it does not own.
Why couldn't pg_dumpall does

create schema test authorization httpd

as superuser when the schema was created in that 
fashion?

I really don't think anyone is going to pay attention
to this rant since these list does not like/answer anonymous posts
but I have to post just so some poor soul might find
it in the archive and be warned.

My current versions are 7.3.2 and 7.3.3 and I have been using
posgres since 7.1 and consider myself experienced with postgres

Schemas are the best thing since slice breads but
the baker decided to poison the bread.  Nice!

Thanks

__
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.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: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Josh Berkus
Robert,

 absolutely not. this is a x style of development vs. y style of
 development discussion. many many projects, commercial and open source,
 use a style of releasing based on features included in a given version.
 In fact I'd be willing to say that the majority of open source projects
 work this way, since open source projects generally aren't beholden to
 release dates, giving developers the time they need to get specific
 features done and release them when they are ready.  as i prefaced in my
 message, history has shown us that waiting on specific features causes
 trouble with postgresql development, but that doesn't mean we should
 act as if this style of development doesn't exist.

Ah.  I see what you mean.   Sorry for the misunderstanding.

The thing is, from the perspective of *current* Postgres users, 7.4 has 
several killer features, some of which have been ready for 3 months.  In 
fact, I just finished sending an e-mail to a client advising them to try 7.4 
as soon as it is tested, becuase of hashaggs.

So looked at from that perspective, our mistake was to try to cram too many 
features into 7.4 ... more than could possibly get done in 6-8 months.   
What's happening now is that the core group has decided, OK, we don't have 
5-6 of the features we wanted to have, but we do have 10 other features, so 
maybe it's time to release.

I'm not sure you're correct in the behaviour of the majoirty of OSS projects.   
Certainly if the Mozilla or OpenOffice.org projects are attaching specific 
release numbers to specific features, I haven't seen it.  Linux does that, I 
guess, but that does result in a 2-year span between major releases -- and 
results in a lot of major features being included in incremental releases. 
But I think most OSS projects just release when they think they have enough 
tested features to justify a major release -- regardless of what those 
features are.

Anybody here on other projects want to weigh in?

Me, I'd be in favor of releasing more frequently ... I felt that we waited too 
long for 7.4.

-- 
Josh Berkus
Aglio Database Solutions
San Francisco

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

   http://archives.postgresql.org


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Tom Lane
Josh Berkus [EMAIL PROTECTED] writes:
 So looked at from that perspective, our mistake was to try to cram too many 
 features into 7.4 ... more than could possibly get done in 6-8 months.   

It's more that we thought that all these features would get done in
about the same timeframe, and (not too surprisingly) some got done and
some didn't.

 Me, I'd be in favor of releasing more frequently ... I felt that we
 waited too long for 7.4.

Yeah, this is why I'm not in favor of slipping more.

Time was that we had a major release every 3 or 4 months.  As the project
matures I think it's appropriate for the cycle to get slower: a lot of
low-hanging fruit is gone, so we have larger jobs to tackle, plus users
are using PG for larger databases and don't want to face major-version
changes too often.  But I don't want it to get to be a year on average
between releases, at least not yet.  8 or 9 months seems reasonable, and
by that standard we're overdue.

regards, tom lane

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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Jason Earl
The Hermit Hacker [EMAIL PROTECTED] writes:

 On Thu, 19 Jun 2003, Robert Treat wrote:

 Well, I suppose that history has shown that waiting on specific features
 causes trouble with postgresql development, but I don't see why a
 release can't be based around waiting for feature x as long as feature x
 is being actively worked on by trusted developers who have an endgame in
 sight.

 Everyone has an 'endgame in sight', at least when they ask for a
 release to be postponed ... but then their date keeps slipping, etc
 ...

 The thing is, if win32 is 'that close to being finished', then as
 soon as v7.4 is out, that code should be ready to throw in ... and
 the same for every other features that could 'postpone a release'
 ...

 I'd rather see the dev cycle shortened by a month, then extended ...

Why couldn't you just release the win32 version of 7.4 when it was
finished.  If it takes an extra month then that just gives you guys
the chance to circulate *two* press releases.  The Native Win32 port
is likely to make a big enough splash all by itself.

Jason

---(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


[HACKERS] Commands to change name, schema, owner

2003-06-20 Thread Peter Eisentraut
We only have sporadic support to rename objects, change the owner of
objects, and no support to change the schema of an object.  So how about a
big bang to add support for these three operations for every object where
it is applicable?  I hope to do it without a separate parse structure and
routine for each kind of object and operation, so it can easily be
extended.

Are there any tricky problems with any of these operations?  For example,
what happens when an object you have used, say, in a view gets moved to a
schema that you don't have access to.  Bad luck?


Renaming is possible for: aggregate, constraint, conversion, database,
domain, function, group, index, language, operator, opclass, rule, schema,
sequence, table, trigger, type, user, view.

The command is: ALTER THING oldname RENAME TO newname;

Requires being the owner of the object (or superuser for group, user,
language) and CREATE privilege on containing schema.


Changing the owner is possible for: aggregate, conversion, database,
domain, function, operator, opclass, schema, sequence, table, type, view.

The command is: ALTER THING name AUTHORIZATION username;  (This is
consistent with the CREATE SCHEMA syntax.  Anyone like OWNER better?)

Requires being superuser.


Changing the schema is possible for: aggregate, conversion, domain,
function, operator, opclass, table, type, view.

The command is: ALTER THING name SCHEMA newschema;

Requires USAGE on old schema(?), owner of object, CREATE in new schema.

-- 
Peter Eisentraut   [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] src/bin/scripts seems a bit of a misnomer now

2003-06-20 Thread Robert Treat
On Thu, 2003-06-19 at 12:09, Jon Jensen wrote:
 On Thu, 19 Jun 2003, Christopher Kings-Lynne wrote:
 
  Does anyone care about contrib/reindexdb anymore?
 
 I would've found it handy, but didn't know about it and wrote my own in
 Perl. Inside a transaction it drops the index then rebuilds it using what
 it gets from pg_get_indexdef(), and it looks at the index files on disk
 before and after to show disk space saved (or grown) per index and total.  
 I run it weekly in cron.
 
 Is something like that of use to anyone else?
 

I think something like this was either posted to the list, put on gborg,
or maybe hidden in contrib somewhere. I'd like a copy if you don't mind,
I currently use reindex regularly on my database but your script sounds
a little more informational.

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


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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Dann Corbit
 -Original Message-
 From: Jason Earl [mailto:[EMAIL PROTECTED] 
 Sent: Friday, June 20, 2003 10:45 AM
 To: The Hermit Hacker
 Cc: Robert Treat; Tom Lane; Christopher Kings-Lynne; Bruce 
 Momjian; PostgreSQL-development
 Subject: Re: [HACKERS] Two weeks to feature freeze
 
 
 The Hermit Hacker [EMAIL PROTECTED] writes:
 
  On Thu, 19 Jun 2003, Robert Treat wrote:
 
  Well, I suppose that history has shown that waiting on specific 
  features causes trouble with postgresql development, but I 
 don't see 
  why a release can't be based around waiting for feature x 
 as long as 
  feature x is being actively worked on by trusted 
 developers who have 
  an endgame in sight.
 
  Everyone has an 'endgame in sight', at least when they ask for a 
  release to be postponed ... but then their date keeps slipping, etc 
  ...
 
  The thing is, if win32 is 'that close to being finished', 
 then as soon 
  as v7.4 is out, that code should be ready to throw in ... 
 and the same 
  for every other features that could 'postpone a release' ...
 
  I'd rather see the dev cycle shortened by a month, then extended ...
 
 Why couldn't you just release the win32 version of 7.4 when 
 it was finished.  If it takes an extra month then that just 
 gives you guys the chance to circulate *two* press releases.  
 The Native Win32 port is likely to make a big enough splash 
 all by itself.

A formal release needs a big testing effort.  Two separate releases will
double the work of validation.

---(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] psql

2003-06-20 Thread Nailah Ogeer
what i was trying to do was maintain an array of Buffer pool clusters.
What i did previously was change the pointers around in the freelist so
instead of one i have 4. Now each buffer pool is called a BP cluster.
Within this BP cluster i have things like cluster id, freelist descriptor
etc, and a linked list that holds all the relation id's belonging to that
cluster (right now it does this randomly but we will change this to
grouping according to access patterns). Every time i call
RelationBuildDesc from relcache.c, i randomly assign a cluster id and put
the relation id in the cluster. And every time i want to remove the
relation from the BP i will have to remove it from the linked list of
relation ids. I know that this implementation will not work well for
multi database systems, but this is just the first step of this work.
So what is happening is that i enter the relation ids into the BP cluster
linked list fine and every time i call psql, it automatically deletes.

hope i gave u a better explanation

On Thu, 19 Jun 2003, Bruno Wolff III wrote:

 On Thu, Jun 19, 2003 at 17:07:43 -0400,
   Nailah Ogeer [EMAIL PROTECTED] wrote:

 Please don't respond to other messages to start a new thread.

  What i am trying to do is to maintain a linked list of all the relations
  in a database. When i create a db then i want it to insert into the linked
  list the relation ids. As it stands now, i can create a db fine and i see
  the relation id's in the linked list. BUT, as soon as i psql into the db
  then they all disappear. I maintain an array that stores the linked lists
  which i initialized in buf_init.
  I don't understand this. Can someone explain why? Is it wiping out the
  array i initialized before.

 You might be better off explaining to us what you are really trying to
 do. Information about relations is already in the system catalogs.
 Using a linked list in a relation database doesn't work very well.



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


Re: [GENERAL] [HACKERS] psql

2003-06-20 Thread Tom Lane
Nailah Ogeer [EMAIL PROTECTED] writes:
 So what is happening is that i enter the relation ids into the BP cluster
 linked list fine and every time i call psql, it automatically deletes.

Sounds to me like you are trying to keep stuff in backend-local memory
that needs to be in shared memory.

regards, tom lane

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


Re: [GENERAL] [HACKERS] psql

2003-06-20 Thread Nailah Ogeer
Well here's the thing. Before i was trying to use ShmemInitStruct in
buf_init.c. The problem with this is that you can't shrink or grow shared
memory. That is why i switched over and just used malloc. So i seem to be
in a big dilemma, on one hand, if i use malloc, i can't keep this info i
need; and on the other if i use shmeminitstruct then i can't shrink or
grow the BP clusters.
But i will try to test your hypothesis to see if shared memory will take
care of this.

On Fri, 20 Jun 2003, Tom Lane wrote:

 Nailah Ogeer [EMAIL PROTECTED] writes:
  So what is happening is that i enter the relation ids into the BP cluster
  linked list fine and every time i call psql, it automatically deletes.

 Sounds to me like you are trying to keep stuff in backend-local memory
 that needs to be in shared memory.

   regards, tom lane

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



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

   http://archives.postgresql.org


Re: [GENERAL] [HACKERS] psql

2003-06-20 Thread Sailesh Krishnamurthy
 Nailah == Nailah Ogeer [EMAIL PROTECTED] writes:

Nailah Well here's the thing. Before i was trying to use
Nailah ShmemInitStruct in buf_init.c. The problem with this is
Nailah that you can't shrink or grow shared memory. That is why i
Nailah switched over and just used malloc. So i seem to be in a

We've implemented a Shared Memory MemoryContext in TelegraphCQ. We
used the opensource libmm from the Apache project. Maybe you can try
using it - it's fairly easy to use. The current version in the web is
based off of 7.2 code, but I hope to refresh with a beta based on 7.3
code in the next few weeks.

http://telegraph.cs.berkeley.edu/telegraphcq

-- 
Pip-pip
Sailesh
http://www.cs.berkeley.edu/~sailesh


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


Re: [HACKERS] O_DIRECT in freebsd

2003-06-20 Thread Jim C. Nasby
On Wed, Jun 18, 2003 at 10:01:37AM +1000, Gavin Sherry wrote:
 On Tue, 17 Jun 2003, Tom Lane wrote:
 
  Christopher Kings-Lynne [EMAIL PROTECTED] writes:
   The reason I mention it is that Postgres already supports O_DIRECT I think
   on some other platforms (for whatever reason).
  
  [ sounds of grepping... ]  No.  The only occurrence of O_DIRECT in the
  source tree is in TODO:
  
  * Consider use of open/fcntl(O_DIRECT) to minimize OS caching
  
  I personally disagree with this TODO item for the same reason Sean
  cited: Postgres is designed and tuned to rely on OS-level disk caching,
  and bypassing that cache is far more likely to hurt our performance than
  help it.
 
 DB2 and Oracle, from memory, allow users to pass hints to the planner to
 use/not use file system caching. This could be useful if you had an
 application retrieving a large amount of data on an adhoc basis. The large
 retrieval would empty out the disk cache there by negatively impacting
 upon other applications operating on data which should be cached.
 
I've recently been bitten by this. On DB2, I could change what
bufferpool the large tables were using and set it fairly small, but
obviously not an option with PGSQL. But, if pgsql could stop caching
from occuring on user-specified queries, large table or index scans,
etc., it would be very helpful.
-- 
Jim C. Nasby (aka Decibel!)[EMAIL PROTECTED]
Member: Triangle Fraternity, Sports Car Club of America
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 4: Don't 'kill -9' the postmaster


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Kevin Brown
Dann Corbit wrote:
  -Original Message-
  From: Jason Earl [mailto:[EMAIL PROTECTED] 
  Sent: Friday, June 20, 2003 10:45 AM
  To: The Hermit Hacker
  Cc: Robert Treat; Tom Lane; Christopher Kings-Lynne; Bruce 
  Momjian; PostgreSQL-development
  Subject: Re: [HACKERS] Two weeks to feature freeze

[...]

  Why couldn't you just release the win32 version of 7.4 when 
  it was finished.  If it takes an extra month then that just 
  gives you guys the chance to circulate *two* press releases.  
  The Native Win32 port is likely to make a big enough splash 
  all by itself.
 
 A formal release needs a big testing effort.  Two separate releases will
 double the work of validation.

That's true in the general case.

But in this case we're talking about releasing for a completely new
platform.  That's much different than doing another release for the same
platform set.

The testing that needs to be done for the Win32 release has to be done
separately *anyway*, so there's nothing lost by releasing the Win32 port
separately.


-- 
Kevin Brown   [EMAIL PROTECTED]

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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Dann Corbit
 -Original Message-
 From: Jason Earl [mailto:[EMAIL PROTECTED] 
 Sent: Friday, June 20, 2003 3:32 PM
 To: Dann Corbit
 Cc: Jason Earl; The Hermit Hacker; PostgreSQL-development
 Subject: Re: [HACKERS] Two weeks to feature freeze
 
 
 Dann Corbit [EMAIL PROTECTED] writes:
  
  Why couldn't you just release the win32 version of 7.4 when
  it was finished.  If it takes an extra month then that just 
  gives you guys the chance to circulate *two* press releases.  
  The Native Win32 port is likely to make a big enough splash 
  all by itself.
 
  A formal release needs a big testing effort.  Two separate releases 
  will double the work of validation.
 
 There are several problems with that statement.  The first is 
 that PostgreSQL's testing effort happens right here on this 
 mailing list. 

That's not exactly reassuring.  There is no regression test that gets
formal acceptance?!

 The various PostgreSQL hackers code stuff up, 
 and we try and break it. There's very little /effort/ 
 involved.  People that want the new features go out on a limb 
 and start using them.  If they don't work, then they bring it 
 up on the list.  If they do work then very little gets said.
 
 As it now stands Tom Lane is on the record as stating that 
 the new Win32 version isn't going to be ready for production 
 anyhow.  If anything the Win32 version *should* get released 
 separately simply because we don't want people mistaking the 
 Win32 version as being up to the PostgreSQL teams high 
 standards.  Those people that want the Win32 version to 
 become production ready are going to have to risk their 
 precious data.  Otherwise, the Win32 version will likely 
 remain a second class citizen forever.
 
 The fact of the matter is that the Win32 specific bits are 
 the parts that are likely to break in the new port.  If 
 anything the Windows version will *benefit* from an earlier 
 *nix release because the *nix users will chase down the bugs 
 in the new PostgreSQL features.  Once the *nix version is up 
 to 7.4.2 (or so) then a Windows release of 7.4.2 should allow 
 the PostgreSQL hackers to simply chase down Windows specific problems.

Then using the same logic, the new Windows version should wait
indefinitely, since the *nix version will always be shaking out bugs.
 
 Adding a new platform--especially a platform as diverse from 
 the rest of PostgreSQL's supported platforms as Windows--is 
 what adds the work. Testing the new platform is relatively 
 easy.  All you need to do is to start using the Win32 version 
 with real live data.

That is not testing.  Using the world as your beta team seems to be a
business model used by a few software giants that is largely frowned
upon.  I would think that there is an opportunity to do things
differently. [Read 'properly'].

We (at CONNX Solutions Inc.) have a formal release procedure that
includes many tens of thousands of automated tests using dozens of
different platforms.  There are literally dozens of machines (I would
guess 70 or so total) running around the clock for 7 days before we even
know if we have a release candidate.  The QA team is distinct from the
development team, and if they say FLOP! the release goes nowhere.  No
formal release until QA passes it.

If there is no procedure for PostgreSQL of this nature, then there
really needs to be.  I am sure that MySQL must have something in place
like that.  Their Crash-Me test suite shows (at least) that they have
put a large effort into testing.


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

   http://archives.postgresql.org


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Alvaro Herrera
On Fri, Jun 20, 2003 at 03:39:47PM -0700, Dann Corbit wrote:

 We (at CONNX Solutions Inc.) have a formal release procedure that
 includes many tens of thousands of automated tests using dozens of
 different platforms.  [...]
 
 If there is no procedure for PostgreSQL of this nature, then there
 really needs to be.  I am sure that MySQL must have something in place
 like that.  Their Crash-Me test suite shows (at least) that they have
 put a large effort into testing.

The regression testing suite in Postgres is one of the things that
impresses me about this software.  It's very rare that a change is even
committed to the main tree if a single regression test doesn't pass.
When it does, a proper fix is quickly put in or the change reverted.

It's even rare that patches with regression failures get posted in
pgsql-patches.  Regression tests are a very handy tool for contributors
to check that their work is safe.  It's considered good practice to
submit new tests when there's new functionality in a patch.

There probably isn't such a gigantic effort like the one you describe,
but there certainly _is_ a testing procedure.  There's probably room for
improvement, of course, but we don't want the tests to take a full week
to complete, IMHO.

It would be nice to have a system which could receive a patch and
compile and verify that it passes the tests before it goes to Bruce's
queue; or compile on multiple platforms to check for portability
problems, for example.

-- 
Alvaro Herrera (alvherre[a]dcc.uchile.cl)
Uno puede defenderse de los ataques; contra los elogios se esta indefenso

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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Jason Earl
Dann Corbit [EMAIL PROTECTED] writes:

 -Original Message-
 From: Jason Earl [mailto:[EMAIL PROTECTED] 
 Sent: Friday, June 20, 2003 3:32 PM
 To: Dann Corbit
 Cc: Jason Earl; The Hermit Hacker; PostgreSQL-development
 Subject: Re: [HACKERS] Two weeks to feature freeze
 
 
 Dann Corbit [EMAIL PROTECTED] writes:
  
  Why couldn't you just release the win32 version of 7.4 when
  it was finished.  If it takes an extra month then that just 
  gives you guys the chance to circulate *two* press releases.  
  The Native Win32 port is likely to make a big enough splash 
  all by itself.
 
  A formal release needs a big testing effort.  Two separate releases 
  will double the work of validation.
 
 There are several problems with that statement.  The first is 
 that PostgreSQL's testing effort happens right here on this 
 mailing list. 

 That's not exactly reassuring.  There is no regression test that
 gets formal acceptance?!

Yes, there are regression tests, and new tests get invented all of the
time whenever the real world finds new bugs.  Regression tests are
excellent for making sure that you don't make the same mistake twice,
but they aren't a substitute for handing the code over to actual end
users.

 The various PostgreSQL hackers code stuff up, 
 and we try and break it. There's very little /effort/ 
 involved.  People that want the new features go out on a limb 
 and start using them.  If they don't work, then they bring it 
 up on the list.  If they do work then very little gets said.
 
 As it now stands Tom Lane is on the record as stating that 
 the new Win32 version isn't going to be ready for production 
 anyhow.  If anything the Win32 version *should* get released 
 separately simply because we don't want people mistaking the 
 Win32 version as being up to the PostgreSQL teams high 
 standards.  Those people that want the Win32 version to 
 become production ready are going to have to risk their 
 precious data.  Otherwise, the Win32 version will likely 
 remain a second class citizen forever.
 
 The fact of the matter is that the Win32 specific bits are 
 the parts that are likely to break in the new port.  If 
 anything the Windows version will *benefit* from an earlier 
 *nix release because the *nix users will chase down the bugs 
 in the new PostgreSQL features.  Once the *nix version is up 
 to 7.4.2 (or so) then a Windows release of 7.4.2 should allow 
 the PostgreSQL hackers to simply chase down Windows specific problems.

 Then using the same logic, the new Windows version should wait
 indefinitely, since the *nix version will always be shaking out
 bugs.

That's not true at all.  Despite the excellent work by the PostgreSQL
team, and despite the beta testing that will be done by volunteers, if
history repeats itself, there will be problems with version 7.4.0,
even on platforms that have been well supported by PostgreSQL forever.
I am not saying that we should hold off indefinitely on the Win32
port, I am simply saying that it probably wouldn't hurt to shake out
the normal .0 release bugs before throwing the unique Win32 bugs into
the mix.

My guess is that reported Win32 bugs are going blamed on the Win32
specific bits at first no matter what happens.  Unless the bug can be
demonstrated on a *nix version it will be assumed that the problem is
a shortcoming of the Win32 specific code.  That's just common sense.

 Adding a new platform--especially a platform as diverse from 
 the rest of PostgreSQL's supported platforms as Windows--is 
 what adds the work. Testing the new platform is relatively 
 easy.  All you need to do is to start using the Win32 version 
 with real live data.

 That is not testing.  Using the world as your beta team seems to be
 a business model used by a few software giants that is largely
 frowned upon.  I would think that there is an opportunity to do
 things differently. [Read 'properly'].

Hmm... I must have missed the huge corporation paying for in house
testing of PostgreSQL.  In the Free Software world the beta team is
all of those people that need the new features so badly that they are
willing to risk their own data and hardware testing it.  You might not
like the way that this sounds, but in practice it works astoundingly
well.  Chances are you can't name 25 pieces of commercial software
that run on the wide array of hardware platforms and OSes as
PostgreSQL, and PostgreSQL has a earned a well deserved reputation for
being a solid piece of software.  Clearly the PostgreSQL team is doing
*something* right.

 We (at CONNX Solutions Inc.) have a formal release procedure that
 includes many tens of thousands of automated tests using dozens of
 different platforms.  There are literally dozens of machines (I
 would guess 70 or so total) running around the clock for 7 days
 before we even know if we have a release candidate.  The QA team is
 distinct from the development team, and if they say FLOP! the
 release goes nowhere.  No formal release until QA 

Re: [HACKERS] ss_family in hba.c

2003-06-20 Thread Bruno Wolff III
On Thu, Jun 19, 2003 at 23:01:19 +0200,
  Kurt Roeckx [EMAIL PROTECTED] wrote:
 On Tue, Jun 17, 2003 at 11:01:27PM -0500, Bruno Wolff III wrote:
  
  My system does have its own sockaddr_storage definition. I think
  it uses __ss_ as the prefix. Also, after looking at the fallback
  definition in pqcomm.h, I don't see where that defines ss_family
  and hence don't see how that could work.
  I am going to see if adding __ works as suggested by someone else
  who replied.
 
 See if this patch helps.
 
 Don't forget to run autoconf after applying the patch.

I get an error message running autoconf claiming I need to be using
version 2.53 or higher. However, normally I build from CVS without
using it (directly). I run configure and then make. I am guessing
that autoconf is used to make a new configure file from configure.in?
I can see about getting a new version of autoconf up and running.
In the meantime the compile error happens in a different program than
it did previously:
gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -I../../../../src/include   
-c printtup.c -o printtup.o
In file included from ../../../../src/include/libpq/libpq-be.h:22,
 from ../../../../src/include/libpq/libpq.h:21,
 from printtup.c:20:
../../../../src/include/libpq/pqcomm.h:82: #error struct sockaddr_storage does not 
provide an ss_family member
make[4]: *** [printtup.o] Error 1

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

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


Re: [HACKERS] ss_family in hba.c

2003-06-20 Thread Bruno Wolff III
On Fri, Jun 20, 2003 at 18:56:30 -0500,
  Bruno Wolff III [EMAIL PROTECTED] wrote:
 On Thu, Jun 19, 2003 at 23:01:19 +0200,
   Kurt Roeckx [EMAIL PROTECTED] wrote:
  On Tue, Jun 17, 2003 at 11:01:27PM -0500, Bruno Wolff III wrote:
   
   My system does have its own sockaddr_storage definition. I think
   it uses __ss_ as the prefix. Also, after looking at the fallback
   definition in pqcomm.h, I don't see where that defines ss_family
   and hence don't see how that could work.
   I am going to see if adding __ works as suggested by someone else
   who replied.
  
  See if this patch helps.
  
  Don't forget to run autoconf after applying the patch.
 
 I get an error message running autoconf claiming I need to be using
 version 2.53 or higher. However, normally I build from CVS without

After getting 2.57 everything seems to be working OK. So the patch seems
good from my end.

---(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] Commands to change name, schema, owner

2003-06-20 Thread Tom Lane
Peter Eisentraut [EMAIL PROTECTED] writes:
 Are there any tricky problems with any of these operations?

A few.  Moving a table across schemas would require moving its indexes
and rowtype as well; conversely you should forbid moving the indexes and
rowtype by themselves, or altering their owners separately from the
table, or renaming the rowtype by itself.  I am not real sure that
renaming a database is safe if there are active backends in it; doesn't
a backend have its dbname stored statically in a few places?  Same goes
for renaming a user who has active backends.  (Even if you can fix the
instances within the backend, what about connected clients, for instance
libpq's private state?  And what if the rename means these clients
should not have been allowed to connect, per pg_hba.conf?)  Renaming
operators would possibly change their precedence, which I don't *think*
would break rule dumps, but it's something to consider.  Renaming
sequences would break nextval() and related calls on them, since we
don't have any way to find the references and update the text strings.
Changing a function owner might be interesting for SECURITY DEFINER
functions; I'm not sure what is likely to happen for active or
already-planned calls on the function.

 The command is: ALTER THING oldname RENAME TO newname;

 Requires being the owner of the object (or superuser for group, user,
 language) and CREATE privilege on containing schema.

The privilege considerations are doubtless different for the several
kinds of objects that don't live within schemas; could we see a more
complete spec?

 The command is: ALTER THING name SCHEMA newschema;

 Requires USAGE on old schema(?), owner of object, CREATE in new schema.

If you got as far as executing the command, you have USAGE on the old
schema, else you could never have looked up the object.

regards, tom lane

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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Dann Corbit
 -Original Message-
 From: Jason Earl [mailto:[EMAIL PROTECTED] 
 Sent: Friday, June 20, 2003 4:43 PM
 To: Dann Corbit
 Cc: Jason Earl; PostgreSQL-development
 Subject: Re: [HACKERS] Two weeks to feature freeze
 
 
 Dann Corbit [EMAIL PROTECTED] writes:
 
  -Original Message-
  From: Jason Earl [mailto:[EMAIL PROTECTED]
  Sent: Friday, June 20, 2003 3:32 PM
  To: Dann Corbit
  Cc: Jason Earl; The Hermit Hacker; PostgreSQL-development
  Subject: Re: [HACKERS] Two weeks to feature freeze
  
  
  Dann Corbit [EMAIL PROTECTED] writes:
   
   Why couldn't you just release the win32 version of 7.4 
 when it was 
   finished.  If it takes an extra month then that just gives you 
   guys the chance to circulate *two* press releases.
   The Native Win32 port is likely to make a big enough splash 
   all by itself.
  
   A formal release needs a big testing effort.  Two 
 separate releases
   will double the work of validation.
  
  There are several problems with that statement.  The first is
  that PostgreSQL's testing effort happens right here on this 
  mailing list. 
 
  That's not exactly reassuring.  There is no regression test 
 that gets 
  formal acceptance?!
 
 Yes, there are regression tests, and new tests get invented 
 all of the time whenever the real world finds new bugs.  
 Regression tests are excellent for making sure that you don't 
 make the same mistake twice, but they aren't a substitute for 
 handing the code over to actual end users.

After testing  QA, there is a beta period.  You don't hand beta code
over to actual end users.  In the corporate world it would be a clear
case of both negligence and incompetence.
 
  The various PostgreSQL hackers code stuff up,
  and we try and break it. There's very little /effort/ 
  involved.  People that want the new features go out on a limb 
  and start using them.  If they don't work, then they bring it 
  up on the list.  If they do work then very little gets said.
  
  As it now stands Tom Lane is on the record as stating that
  the new Win32 version isn't going to be ready for production 
  anyhow.  If anything the Win32 version *should* get released 
  separately simply because we don't want people mistaking the 
  Win32 version as being up to the PostgreSQL teams high 
  standards.  Those people that want the Win32 version to 
  become production ready are going to have to risk their 
  precious data.  Otherwise, the Win32 version will likely 
  remain a second class citizen forever.
  
  The fact of the matter is that the Win32 specific bits are
  the parts that are likely to break in the new port.  If 
  anything the Windows version will *benefit* from an earlier 
  *nix release because the *nix users will chase down the bugs 
  in the new PostgreSQL features.  Once the *nix version is up 
  to 7.4.2 (or so) then a Windows release of 7.4.2 should allow 
  the PostgreSQL hackers to simply chase down Windows 
 specific problems.
 
  Then using the same logic, the new Windows version should wait 
  indefinitely, since the *nix version will always be shaking 
 out bugs.
 
 That's not true at all.  Despite the excellent work by the 
 PostgreSQL team, and despite the beta testing that will be 
 done by volunteers, if history repeats itself, there will be 
 problems with version 7.4.0, even on platforms that have been 
 well supported by PostgreSQL forever. I am not saying that we 
 should hold off indefinitely on the Win32 port, I am simply 
 saying that it probably wouldn't hurt to shake out the normal 
 .0 release bugs before throwing the unique Win32 bugs into the mix.
 
 My guess is that reported Win32 bugs are going blamed on the 
 Win32 specific bits at first no matter what happens.  Unless 
 the bug can be demonstrated on a *nix version it will be 
 assumed that the problem is a shortcoming of the Win32 
 specific code.  That's just common sense.

You are right that a new feature will add new bugs.  I am saying that
the Win32 port is a new feature that will need a shakedown, but the
shakedown should occur in the testing and beta phase, like any other
feature.
 
  Adding a new platform--especially a platform as diverse from
  the rest of PostgreSQL's supported platforms as Windows--is 
  what adds the work. Testing the new platform is relatively 
  easy.  All you need to do is to start using the Win32 version 
  with real live data.
 
  That is not testing.  Using the world as your beta team 
 seems to be a 
  business model used by a few software giants that is 
 largely frowned 
  upon.  I would think that there is an opportunity to do things 
  differently. [Read 'properly'].
 
 Hmm... I must have missed the huge corporation paying for in 
 house testing of PostgreSQL.  In the Free Software world the 
 beta team is all of those people that need the new features 
 so badly that they are willing to risk their own data and 
 hardware testing it.  

I don't see how this model can possibly succeed then.  You can't just
hope that 

[HACKERS] compile failure on cvs tip --with-krb5

2003-06-20 Thread Joe Conway
This change (I'm sure this will wrap poorly -- sorry):
http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/include/libpq/pqcomm.h.diff?r1=1.85r2=1.86
modified SockAddr, but no corresponding change was made here 
(fe-auth.c:612):

  case AUTH_REQ_KRB5:
#ifdef KRB5
  if (pg_krb5_sendauth(PQerrormsg, conn-sock, conn-laddr.in,
   conn-raddr.in,
   hostname) != STATUS_OK)
It's not obvious to me what the change ought to be though.

Joe



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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Tom Lane
Jason Earl [EMAIL PROTECTED] writes:
 The fact of the matter is that the Win32 specific bits are the parts
 that are likely to break in the new port.

Actually, what scares me about this is the probability that the Win32
port will break other platforms.  The changes look to be invasive enough
to create a nontrivial risk of that.

For comparison, look at the CVS history of the recent efforts to support
IPv6 connections.  Those patches have broken both IPv4 and Unix-socket
connections at different times, and are still a source of ongoing build
problems on some platforms, plus who-knows-what problems yet to be found
on platforms that aren't used by the bleeding-edge-CVS folk.  I predict
that the tweaks needed to support Windows' lack of a fork() primitive
will be far worse.

BTW, I would not approve of a response along the lines of can't you
#ifdef to the point that there are no code changes in the Unix builds?
No you can't, unless you want to end up with an unmaintainable mess 
of #ifdef spaghetti.  The thing that makes this hard is the tradeoff
between making the code readable and maintainable (which requires
sharing as much code as possible across platforms) vs isolating
platform-specific considerations.  Programming at this level is not
a science but an art form, and it's very hard to get it right the first
time --- especially when none of us have access to all the platforms
that the code must ultimately work on.

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] Two weeks to feature freeze

2003-06-20 Thread Tom Lane
Dann Corbit [EMAIL PROTECTED] writes:
 If there is no procedure for PostgreSQL of this nature, then there
 really needs to be.

Are you volunteering to create it?  Step right up.

 I am sure that MySQL must have something in place
 like that.  Their Crash-Me test suite shows (at least) that they have
 put a large effort into testing.

...ROTFL...  Crash-Me is not a regression test.  It is a marketing
effort.

regards, tom lane

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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Tom Lane
Alvaro Herrera [EMAIL PROTECTED] writes:
 It would be nice to have a system which could receive a patch and
 compile and verify that it passes the tests before it goes to Bruce's
 queue; or compile on multiple platforms to check for portability
 problems, for example.

It happens not infrequently that Bruce commits some patch that fails the
regression tests.  Whereupon he gets chewed out by whoever notices it
first :-).  I've been guilty of the same on occasion, even though I try
hard to avoid it.  If the regression tests took two seconds to run I'm
sure we'd both set up scripts to ensure we *never* commit without
regression testing first.  On the other hand, if they took a week to run
you can be damn sure that most commits would go in without any
regression testing.  I think that our existing tests are a fairly happy
medium --- they catch most stuff, and the stuff they don't catch is in
my opinion stuff that an automated test is unlikely to catch.  (I do add
things to the regression tests whenever something shows up that looks
like it should have been caught.)

Another point is that passing on one platform doesn't ensure passing on
another.  Here we really rely on the willingness of the pghackers
community to update to CVS tip regularly and run the regression tests
when they do.  Again, tests that take a couple minutes to run are ideal;
if they took a week then the uptake would drop to zero, and we'd not be
ahead.

regards, tom lane

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

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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Tom Lane
Jason Earl [EMAIL PROTECTED] writes:
 Hmm... I must have missed the huge corporation paying for in house
 testing of PostgreSQL.  In the Free Software world the beta team is
 all of those people that need the new features so badly that they are
 willing to risk their own data and hardware testing it.

I don't have a lot of faith in huge automated test efforts.  They're
great at ensuring you don't make the same mistakes you made once before,
but in my experience the nastiest bugs are the ones you haven't seen
before and would never in a million years have dreamed to test for.
Thus, the best test team is a bunch of people doing unplanned things
with the software, on a wide variety of platforms...

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] Two weeks to feature freeze

2003-06-20 Thread Thomas Swan
Tom Lane wrote:

Alvaro Herrera [EMAIL PROTECTED] writes:
 

It would be nice to have a system which could receive a patch and
compile and verify that it passes the tests before it goes to Bruce's
queue; or compile on multiple platforms to check for portability
problems, for example.
*snip*

Another point is that passing on one platform doesn't ensure passing on
another.  Here we really rely on the willingness of the pghackers
community to update to CVS tip regularly and run the regression tests
when they do.  Again, tests that take a couple minutes to run are ideal;
if they took a week then the uptake would drop to zero, and we'd not be
ahead.
 

Have you considered something similar to the Mozilla tinderbox approach 
where you have a daemon checkout the cvs, compile, run regression tests, 
and report a status or be able to report a status?



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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Dann Corbit
 -Original Message-
 From: Tom Lane [mailto:[EMAIL PROTECTED] 
 Sent: Friday, June 20, 2003 8:36 PM
 To: Dann Corbit
 Cc: Jason Earl; PostgreSQL-development
 Subject: Re: [HACKERS] Two weeks to feature freeze 
 
 
 Dann Corbit [EMAIL PROTECTED] writes:
  If there is no procedure for PostgreSQL of this nature, then there 
  really needs to be.
 
 Are you volunteering to create it?  Step right up.

No.  And as an outsider, I rather doubt if any procedures I developed
would be taken very seriously.  If such procedures are to be developed,
I suspect that they will have to be developed from within if they are to
be successful.

This would be a good start:

A.  Combine:
1.  Your regression test
2.  Crashme (or some rough equivalent if you don't like it)
3.  The NIST validation test suite
B.  Automate:
1.  Installation of the tests
2.  Execution of the tests
3.  Transfer of the test results to a repository
4.  Analysis of the test results
C.  Assign:
1.  Criteria for acceptance of a build for release
2.  Authority for acceptance of a build for release
3.  Delegation rules for issue resolution
4.  Procedures for issue resolution
 
  I am sure that MySQL must have something in place
  like that.  Their Crash-Me test suite shows (at least) that they 
  have put a large effort into testing.
 
 ...ROTFL...  Crash-Me is not a regression test.  It is a 
 marketing effort.

Let's see...
Their marketing effort checks for STANDARDS conformance against over
several hundred distinct, important properties.
Their marketing effort checks for a number of interesting and valuable
extensions.
Their marketing effort checks for system safety in a manner that is
better than anything I have ever seen from a commercial vendor.

And the PostgreSQL regression test is superior in what ways?

Look at this:
http://www.mysql.com/information/crash-me.php?mysql_4_1=onpostgres=on

Their marketing effort makes PostgreSQL look superior to MySQL in most
areas.  If it is a marketing effort, then we must applaud them for their
honesty.

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

   http://archives.postgresql.org


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Dann Corbit
 -Original Message-
 From: Tom Lane [mailto:[EMAIL PROTECTED] 
 Sent: Friday, June 20, 2003 8:58 PM
 To: Jason Earl
 Cc: Dann Corbit; PostgreSQL-development
 Subject: Re: [HACKERS] Two weeks to feature freeze 
 
 
 Jason Earl [EMAIL PROTECTED] writes:
  Hmm... I must have missed the huge corporation paying for in house 
  testing of PostgreSQL.  In the Free Software world the 
 beta team is 
  all of those people that need the new features so badly 
 that they are 
  willing to risk their own data and hardware testing it.
 
 I don't have a lot of faith in huge automated test efforts.  
 They're great at ensuring you don't make the same mistakes 
 you made once before, but in my experience the nastiest bugs 
 are the ones you haven't seen before and would never in a 
 million years have dreamed to test for. 

This is true if and only if the test design is poor.

 Thus, the best test 
 team is a bunch of people doing unplanned things with the 
 software, on a wide variety of platforms...

That is the worst possible test plan.  It totally lacks organization and
there is no hint to define when the feature set has been covered.  Ad
hoc testing is a useful addition, but it cannot replace all the standard
tests that have been used by the industry for decades.

If you run literally hundreds of tests designed to ensure that your
product conforms to ANSI/ISO standards then the bugs that are missed
will be few and far between.  Unless you are bad at designing tests.

Designing tests is busywork.  Desiging tests is boring.  Nobody wants to
design tests, let alone interpret the results and define correct
baselines.  But testing is very, very important.

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

   http://archives.postgresql.org


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread ow
--- Dann Corbit [EMAIL PROTECTED] wrote:
 Why couldn't you just release the win32 version of 7.4 
 when it was finished.

I agree. Don't delay *nix release because of win32 port is not ready. To many
users win32 port is of marginal importance anyway.






__
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com

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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Tom Lane
Thomas Swan [EMAIL PROTECTED] writes:
 Have you considered something similar to the Mozilla tinderbox approach 
 where you have a daemon checkout the cvs, compile, run regression tests, 
 and report a status or be able to report a status?

Tinderbox is pretty cool.  Who wants to set it up?

regards, tom lane

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

   http://archives.postgresql.org


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Tom Lane
Dann Corbit [EMAIL PROTECTED] writes:
 ...ROTFL...  Crash-Me is not a regression test.  It is a 
 marketing effort.

 Their marketing effort checks for STANDARDS conformance against over
 several hundred distinct, important properties.

If you'd not spelled STANDARDS in caps I'd not have taken the trouble to
respond ... but I suggest you stop to count exactly how many of their
bullet points are actually grounded in the SQL standard, how many are
not, and how many are in fact counter to spec but agree with MySQL's
deviations from spec (of course those show as green for MySQL's version
of reality, and as failures for spec-compliant databases).

I have been through crash-me in some detail, and it left a very bad
taste in my mouth.  Don't bother holding it up as an example of good
practice.

regards, tom lane

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

   http://archives.postgresql.org


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Dann Corbit
 -Original Message-
 From: Tom Lane [mailto:[EMAIL PROTECTED] 
 Sent: Friday, June 20, 2003 9:19 PM
 To: Dann Corbit
 Cc: Jason Earl; PostgreSQL-development
 Subject: Re: [HACKERS] Two weeks to feature freeze 
 
 
 Dann Corbit [EMAIL PROTECTED] writes:
  ...ROTFL...  Crash-Me is not a regression test.  It is a
  marketing effort.
 
  Their marketing effort checks for STANDARDS conformance 
 against over 
  several hundred distinct, important properties.
 
 If you'd not spelled STANDARDS in caps I'd not have taken the 
 trouble to respond 

Sorry for shouting.

... but I suggest you stop to count 
 exactly how many of their bullet points are actually grounded 
 in the SQL standard, how many are not, and how many are in 
 fact counter to spec but agree with MySQL's deviations from 
 spec (of course those show as green for MySQL's version of 
 reality, and as failures for spec-compliant databases).
 
 I have been through crash-me in some detail, and it left a 
 very bad taste in my mouth.  Don't bother holding it up as an 
 example of good practice.

Every single test in their list is interesting and useful.

I see several hundred things which I recognize as part of the ANSI/ISO
SQL Standard.

I have set up and run the tests.  I did not go into great detail (as you
have done) to ensure that they were really testing what they claimed to
test and that correct interpretation of the results was made in each
case.

If they have done something underhanded, then they should be called out
onto the carpet for it.  In any case, the general outline of what they
are doing is a very good idea.  If it can be improved upon, then that
would be an excellent idea.


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

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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Alvaro Herrera
On Fri, Jun 20, 2003 at 09:25:08PM -0700, Dann Corbit wrote:

Citing Tom Lane:
  I have been through crash-me in some detail, and it left a 
  very bad taste in my mouth.  Don't bother holding it up as an 
  example of good practice.
 
 Every single test in their list is interesting and useful.

At least on the version I just saw there are several results with
Postgres that are weird (table names  500 chars?).  Other things tested
are clearly wrong (things that are = NULL, dates like '00-00-');
results for Postgres that are wrong probably because they are trying a
weird syntax. Etc.

Things like that drive the credibility of the whole thing to the floor.
Maybe something like this should exist for Postgres, but it's not
crash-me.  Maybe the NIST compliance test is adequate.

-- 
Alvaro Herrera (alvherre[a]dcc.uchile.cl)
La conclusion que podemos sacar de esos estudios es que
no podemos sacar ninguna conclusion de ellos (Tanenbaum)

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


Re: [HACKERS] add column .. default

2003-06-20 Thread Christopher Kings-Lynne
 Thats still double the disk space, although that has the nice side
 effect of not requiring a vacuum.

Also, a rollback after 99% of the updates have been done will waste no
diskspace...

Chris



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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Dann Corbit
 -Original Message-
 From: Alvaro Herrera [mailto:[EMAIL PROTECTED] 
 Sent: Friday, June 20, 2003 10:00 PM
 To: Dann Corbit
 Cc: Tom Lane; Jason Earl; PostgreSQL-development
 Subject: Re: [HACKERS] Two weeks to feature freeze
 
 
 On Fri, Jun 20, 2003 at 09:25:08PM -0700, Dann Corbit wrote:
 
 Citing Tom Lane:
   I have been through crash-me in some detail, and it left a
   very bad taste in my mouth.  Don't bother holding it up as an 
   example of good practice.
  
  Every single test in their list is interesting and useful.
 
 At least on the version I just saw there are several results 
 with Postgres that are weird (table names  500 chars?).  

It does get silly at a point, but I have seen systems with 128
characters for table names, column names, etc.  Some people seem to like
it.  Not me.  Too much typing.

 Other things tested are clearly wrong (things that are = 
 NULL, 

Sounds like testing for the existence of a bug.
X = NULL
X = NULL
X = NULL
Etc. must always test false, regardless of the contents of X.  Test for
equality with NULL is a conformance error if NULL == NULL returns true.

 dates like '00-00-'); 

Not sure what that might even mean.

 results for Postgres that are 
 wrong probably because they are trying a weird syntax. Etc.
 
 Things like that drive the credibility of the whole thing to 
 the floor. Maybe something like this should exist for 
 Postgres, but it's not crash-me.  Maybe the NIST compliance 
 test is adequate.

So far, I have seen three problems pointed out (out of 600+ tests).
That's 0.5% defects.  Why not just drop the stupid tests, or bend them
to test for what they ought to be testing.

Besides those three, what other tests are bogus and why?

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


Re: [HACKERS] Commands to change name, schema, owner

2003-06-20 Thread Christopher Kings-Lynne
 The command is: ALTER THING name AUTHORIZATION username;  (This is
 consistent with the CREATE SCHEMA syntax.  Anyone like OWNER better?)
k
WHy not copy the exiting ALTER TABLE / OWNER TO syntax?

Chris



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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Christopher Kings-Lynne
 We (at CONNX Solutions Inc.) have a formal release procedure that
 includes many tens of thousands of automated tests using dozens of
 different platforms.  There are literally dozens of machines (I would
 guess 70 or so total) running around the clock for 7 days before we even
 know if we have a release candidate.  The QA team is distinct from the
 development team, and if they say FLOP! the release goes nowhere.  No
 formal release until QA passes it.

PostgreSQL has a comprehensive regression suite that is run by the
developers all the time...

 If there is no procedure for PostgreSQL of this nature, then there
 really needs to be.  I am sure that MySQL must have something in place
 like that.  Their Crash-Me test suite shows (at least) that they have
 put a large effort into testing.

No, it means they've put a crap effort into trying to make other databases
look bad...

Chris



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

   http://archives.postgresql.org


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Christopher Kings-Lynne
 I don't have a lot of faith in huge automated test efforts.  They're
 great at ensuring you don't make the same mistakes you made once before,
 but in my experience the nastiest bugs are the ones you haven't seen
 before and would never in a million years have dreamed to test for.
 Thus, the best test team is a bunch of people doing unplanned things
 with the software, on a wide variety of platforms...

Which is why I never use a .0 release of PostgreSQL :)

Chris



---(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] Two weeks to feature freeze

2003-06-20 Thread Christopher Kings-Lynne
 Things like that drive the credibility of the whole thing to the floor.
 Maybe something like this should exist for Postgres, but it's not
 crash-me.  Maybe the NIST compliance test is adequate.

Plus I belive the RedHat people are getting PostgreSQL through the NIST
compliance tests at the moment...I'd love to see MySQL pass them...

Chris



---(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] Two weeks to feature freeze

2003-06-20 Thread Christopher Kings-Lynne
 Sounds like testing for the existence of a bug.
 X = NULL
 X = NULL
 X = NULL
 Etc. must always test false, regardless of the contents of X.  Test for
 equality with NULL is a conformance error if NULL == NULL returns true.

They should all return NULL, not false...

  dates like '00-00-');

Yes, that's MySQL's idea of a NULL date.  In fact, it's exactly what you
get when you insert a NULL date into a NOT NULL column - hooray the test
proves that MySQL accepts NULL values in NOT NULL columns...

Chris


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

   http://archives.postgresql.org


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Tom Lane
Christopher Kings-Lynne [EMAIL PROTECTED] writes:
 Maybe the NIST compliance test is adequate.

 Plus I belive the RedHat people are getting PostgreSQL through the NIST
 compliance tests at the moment...I'd love to see MySQL pass them...

FWIW, the first pass of those tests is complete, and it turned up
exactly one bug that we didn't already know of (the
outer-level-aggregate bizarrity that I fixed last week ... which MySQL
wouldn't be subject to since they haven't got subselects ...)

The work is not done, because there are some tests that couldn't be run
because they were blocked by known noncompliances (such as lack of
updatable views).  But I'm not getting a sense that we will learn a
whole lot from the NIST tests.

Further details will be published soon...

regards, tom lane

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


Re: [HACKERS] Two weeks to feature freeze

2003-06-20 Thread Christopher Kings-Lynne
 If you mean the one that comes with PostgreSQL, then I think the MySQL
 test is better.  The PostgreSQL test seems to focus more on extensions
 than anything else.

What the?  It tests no extensions.  The extensions have their own
regression tests.

 Most of the criticism leveled at their efforts sound like fearful hand
 waving to me.  True, I have not studied the test as carefully as others
 have.  But the PostgreSQL test is not superior to the MySQL test.  I
 have put considerable effort into the PostgreSQL regression test.  We
 achieved 100% success on the Win32 platform, including dynamic loading
 of functions.

Notice that it tests absulutely no parallel functionality, whereas
PostgreSQL tests things in parallel to check for concurrency problems:

Note that this benchmark is single threaded, so it measures the minimum
time for the operations. We plan to in the future add a lot of
multi-threaded tests to the benchmark suite. 

It's said that for at least 4 years now.

Crash-me has nothing to do with testing, it jsut checks to see what
features a db supports:

crash-me tries to determine what features a database supports and what
its capabilities and limitations are by actually running queries. For
example, it determines:

What column types are supported
How many indexes are supported
What functions are supported
How big a query can be
How big a VARCHAR column can be

Obviously it has nothing to do with can I index every type in the system,
can I use the index to look up a set of test values, etc., etc.

Chris



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

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