skunkweb-list Mailing List for The SkunkWeb Web Application Server (Page 4)
Brought to you by:
drew_csillag,
smulloni
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(131) |
Sep
(39) |
Oct
(60) |
Nov
(41) |
Dec
(29) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(61) |
Feb
(77) |
Mar
(20) |
Apr
(33) |
May
(27) |
Jun
(5) |
Jul
(43) |
Aug
(48) |
Sep
(8) |
Oct
(2) |
Nov
(9) |
Dec
(6) |
2003 |
Jan
(31) |
Feb
(32) |
Mar
(48) |
Apr
(134) |
May
(84) |
Jun
(42) |
Jul
(40) |
Aug
(62) |
Sep
(54) |
Oct
(37) |
Nov
(29) |
Dec
(14) |
2004 |
Jan
(11) |
Feb
(11) |
Mar
(9) |
Apr
(9) |
May
(2) |
Jun
(5) |
Jul
(14) |
Aug
(9) |
Sep
(11) |
Oct
(13) |
Nov
(7) |
Dec
(4) |
2005 |
Jan
(5) |
Feb
(10) |
Mar
(25) |
Apr
(14) |
May
(70) |
Jun
(57) |
Jul
(16) |
Aug
(39) |
Sep
(16) |
Oct
(5) |
Nov
(7) |
Dec
|
2006 |
Jan
(17) |
Feb
|
Mar
(7) |
Apr
(6) |
May
(5) |
Jun
(3) |
Jul
(2) |
Aug
(7) |
Sep
(6) |
Oct
(32) |
Nov
(35) |
Dec
(13) |
2007 |
Jan
(10) |
Feb
(19) |
Mar
(13) |
Apr
(13) |
May
(16) |
Jun
(21) |
Jul
(6) |
Aug
(1) |
Sep
(2) |
Oct
(2) |
Nov
|
Dec
(2) |
From: Richard S. <iro...@ri...> - 2006-08-01 00:23:30
|
Hi - I'm using Pydo with MySQL but after the system has not been used for a while I keep getting the dreaded "MySQL has gone away" message. FIRST QUESTION: I understand using a Pool may help this but is this only true if I override subclass ConnectionPool and override onHandOut or will it just help anyway ? (I'm not 100% sure what to do in onHandOut otherwise I'd just try). Any examples ? SECOND QUESTION: I define a connection and then import that into a class which subclasses PyDO (see below). Will the connection get returned to the pool after every method invocation of Programme ? I have a feeling it won't ! ConnectionPyDo2: ================ from pydo import * delAlias('corptrack0') dicConnection={} dicConnection['host'] = 'localhost' dicConnection['user'] = 'corpdba' dicConnection['passwd'] = 'corpdba' dicConnection['db'] = 'corptrack' initAlias('corptrack0', 'mysql',dicConnection,True,True) Programme ========= from pydo import * import ConnectionPyDo2 class Programme(PyDO): connectionAlias='corptrack0' table='eva_programme' mutable=True refetch=True fields=(Sequence('PRG_AUTOID'), Unique('PRG_TITLE'), 'PRG_OVERVIEW', #... blah ... ... thanks richard. |
From: Hamish L. <hb...@st...> - 2006-07-20 09:57:53
|
What do people think about the idea of adding to the PyDO API a method that would return the constraints on a table expressed as a FormEncode schema? One use for this would be in an overridden _validateFields, when we want to catch any constraint violations ourselves rather than leaving it to the database to complain. If there is support for the idea, I'll make a stab at it some time. Hamish Lawson |
From: Jodene M. <jod...@hs...> - 2006-07-03 20:31:15
|
Best Se q ll e ing Wa r tch g es :=20 Role r x Cart e ier Bre t itling Bvlga g ri Omeg e a Pa b tek Philipp b e , etc.=20 Ha n ndba p gs & Pu c rs w es N u eckt w ies T y IFFA x NY & CO Je x werl i y P c ens O n rde j r T g ODA t Y and sa i ve 25 % http://superhkugeyellow.com <http://superhkugeyellow.com>=20 , , , others were busy with Thorin. It was unlikely that any, even Fili or Kili, would come out on the wall until it was their turn. It was very dark, and the road after a while, when he left the newly made path and climbed down towards the lower course of the stream, was strange to him. At last he came to the bend where he had to cross the water, if he was to make for the camp, as he wished. The bed of the stream was there |
From: Faber <zan...@in...> - 2006-06-25 17:07:20
|
On Saturday 24 June 2006 16:00, Jacob Smullyan wrote: > > "ProgrammingError: terminating connection due to administrator command > > server closed the connection unexpectedly > > This probably means the server terminated abnormally > > before or while processing the request." > > > > How could I avoid this exception? > I believe you want to subclass ConnectionPool and override onHandOut() > to perform an additional test on the connection, such as performing a > fast test query (a la "SELECT 1"). If onHandOut() returns False > you'll get a new connection. Thank you Jacob, I'll try to override onHandOut() and see if it works for my application. Regards -- Faber http://faberbox.com/ http://smarking.com/ Last.fm music profile: http://www.last.fm/user/MrFaber/ |
From: Jacob S. <smu...@sm...> - 2006-06-24 14:00:23
|
On Sat, Jun 24, 2006 at 02:34:31PM +0200, Faber wrote: > Hello, >=20 > I'm using PyDO2 with PostgreSQL in a web application, hosted by a thirdy= =20 > party provider, using a connection pool: >=20 > db_pool =3D ConnectionPool( > max_poolsize=3D10, > keep_poolsize=3D0, > delay=3D0.2, > retries=3D10 > ) >=20 > Sometimes the hosting restarts the PostgreSQL server, and I get this=20 > exception in my Python code (even *after* the server has been restarted): >=20 > "ProgrammingError: terminating connection due to administrator command > server closed the connection unexpectedly > This probably means the server terminated abnormally > before or while processing the request." >=20 > How could I avoid this exception? Hi Faber -- I believe you want to subclass ConnectionPool and override onHandOut() to perform an additional test on the connection, such as performing a fast test query (a la "SELECT 1"). If onHandOut() returns False you'll get a new connection. Or, if the overhead of these tests is disagreeable (one test per commit), you might be able to stick a hook in your web framework to test one connection at request cleanup and reinitialize the pool if it has gone sour. However, if you tend not to use many transactions per request it is probably OK. Cheers, js >=20 > Thank you >=20 > --=20 > Faber > http://faberbox.com/ > http://smarking.com/ >=20 > We live in a society exquisitely dependent on science and technology, > in which hardly anyone knows anything about science and technology. -- Ca= rl=20 > Sagan >=20 > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job ea= sier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D120709&bid=3D263057&dat= =3D121642 > _______________________________________________ > Skunkweb-list mailing list > Sku...@li... > https://lists.sourceforge.net/lists/listinfo/skunkweb-list >=20 --=20 Jacob Smullyan |
From: Faber <zan...@in...> - 2006-06-24 12:34:48
|
Hello, I'm using PyDO2 with PostgreSQL in a web application, hosted by a thirdy party provider, using a connection pool: db_pool = ConnectionPool( max_poolsize=10, keep_poolsize=0, delay=0.2, retries=10 ) Sometimes the hosting restarts the PostgreSQL server, and I get this exception in my Python code (even *after* the server has been restarted): "ProgrammingError: terminating connection due to administrator command server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request." How could I avoid this exception? Thank you -- Faber http://faberbox.com/ http://smarking.com/ We live in a society exquisitely dependent on science and technology, in which hardly anyone knows anything about science and technology. -- Carl Sagan |
From: Jacob S. <smu...@sm...> - 2006-05-22 19:54:25
|
I've just released SkunkWeb 3.4.3 is the same as 3.4.2 except that it includes the patch I sent to the list a few days ago to fix the layout service. http://prdownloads.sourceforge.net/skunkweb/skunkweb-3.4.3.tar.gz?download Cheers, js -- Jacob Smullyan |
From: Jacob S. <smu...@sm...> - 2006-05-18 21:09:31
|
The layout service in skunkweb 3.4.2 has some nasty typo-like errors. I can't commit to berlios right now so I'm attaching a patch. When berlios is working properly for me again I'll check it in and cut a brown bag release. j -- Jacob Smullyan |
From: Drew C. <dre...@ya...> - 2006-05-18 19:17:00
|
It had been rumored that SkunkWeb will run on win32 with the Cygwin toolkit. I can now positively confirm that this is so! I'm successfully running a very complex application (using an ODBC database connection) originally written for Linux on SkunkWeb 3.4.0, Python 2.2.3 with Apache 2.something on a recent (last 2 weeks) version of Cygwin. There was no real porting effort required, except for the ODBC stuff (which has nothing directly to do with SkunkWeb). Viva la Skunk! Drew Csillag __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Jacob S. <smu...@sm...> - 2006-05-09 21:38:59
|
Greetings, SkunkWeb user(s): I've just released SkunkWeb 3.4.2 ("Limburger"). The mvc services have expanded a bit and behave better with scoping than they did previously, and there is also a new "layout" service which provides layout templates via new <:slot:> and <:calltemplate:> tags. Documentation, you ask? Eh, not presently. Download link: http://prdownloads.sourceforge.net/skunkweb/skunkweb-3.4.2.tar.gz?download js -- Jacob Smullyan |
From: Jacob S. <smu...@sm...> - 2006-04-25 17:28:45
|
Hi all -- I'm planning some changes to skunkweb which I'd like to run by you. First of all, there is some new stuff in subversion now -- a "layout" service which provides <:slot:> and <:calltemplate:> tags. They make it easier to define layout templates; I've been using them for a while and just migrated them into skunk svn. I also wrote a very simple wsgi handler on my train ride the other day and checked it in, as a preliminary gesture to more full wsgi support. For a while I've felt that there were fairly major changes I wanted to make, but it was too much for me to do given my schedule. But now I think I have a way of making more incremental changes that will be more manageable. So here is my plan: 1. Move mod_skunkweb to a separate project (because of the autoconf=20 dependency).=20 2. Turn skunkweb into a regular distutils install; get rid of=20 autoconf (which probably means requiring that the conf file=20 specify a bit more, and that swmgr/swpython in normal use=20 would specify a conf file -- but swpython would become less important). 3. Move existing modules under a "skunk3" package, but provide=20 a way to adjust sys.path easily so they can be imported as usual from within skunkweb. (We can't very well install lots of modules=20 with names like "Date", "web", "templating", etc., in site-packages;=20 and "skunk" is already in use by the skunk4 libraries, which are also=20 getting used here.) 4. Integrate WSGI internally; marshal request data into WSGI format=20 and make CONNECTION a wrapper around WSGI data (which would also be=20 globally available). (Eventual goal: not only to be able to embed=20 WSGI applications, but to make skunkweb applications embeddable as=20 such.) 5. Over releases, gradually move away from some skunk3 implementations to less tightly coupled skunk4 versions of libraries. The goal would be to modernize and and modularize while providing relatively smooth upgrades. Comments and ideas welcome. Cheers, js --=20 Jacob Smullyan |
From: Jacob S. <smu...@sm...> - 2006-04-19 20:31:49
|
On Wed, Apr 19, 2006 at 04:28:18AM -0400, zu...@zu... wrote: > Imagine my horror when I received the following compiler > error from gcc: >=20 > swpython.c:17: warning: incompatible implicit declaration > of built-in function 'alloca' >=20 > and the build failed - Gasp! Cruel gcc! Fixed in subversion. Thanks! js --=20 Jacob Smullyan |
From: <zu...@zu...> - 2006-04-19 08:28:28
|
Just installed SkunkWeb 3.4.1 onto my new development laptop (Acer Aspire 9500, very nice) which is running Kubuntu Linux 6.06. Imagine my horror when I received the following compiler error from gcc: swpython.c:17: warning: incompatible implicit declaration of built-in function 'alloca' and the build failed - Gasp! Google to the rescue: I added #include <alloca.h> to the top of swpython.c, and soon was looking at a truly beautiful sight from http://localhost: Congratulations! you have successfully installed SkunkWeb 3.4.1. Aaaaahhhhhh.... so sweet, so sweet indeed. My beloved skunkweb was odorous once again. James Phillips http://zunzun.com |
From: Jacob S. <smu...@sm...> - 2006-04-10 14:59:17
|
On Mon, Apr 10, 2006 at 10:49:24AM -0400, Jacob Smullyan wrote: > Looks like a Python bug to me. Do you know if it has been > discussed/reported? >=20 > If they do stick with this insane behavior, using "ReturnValue(thing)" > syntax will side-step the problem. Actually, I now see that this isn't new -- I guess this is legacy behavior. I still think it sucks. --=20 Jacob Smullyan |
From: Jacob S. <smu...@sm...> - 2006-04-10 14:49:30
|
On Fri, Apr 07, 2006 at 12:04:23PM -0700, Drew Csillag wrote: > Now that they've officially deprecated string exceptions in Python 2.5, i= f you > use any amount of data components, you'll get a large slew of > DeprecationWarnings to the terminal that started SkunkWeb. This fixes th= e case > for data components, I'm pretty sure there are others floating about. Th= ere > is, however, a caveat that: > raise ReturnValue, 5 > is now indistinguishable from: > raise ReturnValue, (5,) > but *is* distinct from: > raise ReturnValue, [5] >=20 > And I don't see any easy way to work around things so raising (5,) would = come > out as (5,) and raising 5 also comes out as 5. So if you return variable > length tuples with this patch, be careful. If anybody has a better fix f= or > this, that'd be good. Looks like a Python bug to me. Do you know if it has been discussed/reported? If they do stick with this insane behavior, using "ReturnValue(thing)" syntax will side-step the problem. Another implementation that I think would work in Executables would be: try: return val.message except AttributeError: return val.args 'message' is a 2.5-ism. This way we don't need to look at the type of args. Cheers, js >=20 > Cheers, > Drew >=20 >=20 > diff -r /sai/skunkweb/lib/pylibs/AE/Exceptions.py ./Exceptions.py > 11c11,12 > < ReturnValue =3D "ReturnValue" > --- > > class ReturnValue(Exception): > > pass > diff -r /sai/skunkweb/lib/pylibs/AE/Executables.py ./Executables.py > 74c74,76 > < return val > --- > > if type(val.args) =3D=3D type(()) and len(val.args) =3D= =3D 1: > > return val.args[0] > > return val.args >=20 >=20 > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around=20 > http://mail.yahoo.com=20 >=20 >=20 > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting langua= ge > that extends applications into web and mobile media. Attend the live webc= ast > and join the prime developer group breaking into this new coding territor= y! > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D110944&bid=3D241720&dat= =3D121642 > _______________________________________________ > Skunkweb-list mailing list > Sku...@li... > https://lists.sourceforge.net/lists/listinfo/skunkweb-list >=20 --=20 Jacob Smullyan |
From: Drew C. <dre...@ya...> - 2006-04-07 19:04:30
|
Now that they've officially deprecated string exceptions in Python 2.5, if you use any amount of data components, you'll get a large slew of DeprecationWarnings to the terminal that started SkunkWeb. This fixes the case for data components, I'm pretty sure there are others floating about. There is, however, a caveat that: raise ReturnValue, 5 is now indistinguishable from: raise ReturnValue, (5,) but *is* distinct from: raise ReturnValue, [5] And I don't see any easy way to work around things so raising (5,) would come out as (5,) and raising 5 also comes out as 5. So if you return variable length tuples with this patch, be careful. If anybody has a better fix for this, that'd be good. Cheers, Drew diff -r /sai/skunkweb/lib/pylibs/AE/Exceptions.py ./Exceptions.py 11c11,12 < ReturnValue = "ReturnValue" --- > class ReturnValue(Exception): > pass diff -r /sai/skunkweb/lib/pylibs/AE/Executables.py ./Executables.py 74c74,76 < return val --- > if type(val.args) == type(()) and len(val.args) == 1: > return val.args[0] > return val.args __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Jacob S. <smu...@sm...> - 2006-03-16 01:02:53
|
Not to toot my own horn or anything, there is a new skunkweb 3.4.1 site at http://www.wnyc.org/ using the much not-touted and inappropriately named "mvc" service, and the hermetic PyDO2. Not third-Railed, Turbo-charged or Djangified, but convenient enough for me. The designer deserves special praise: http://www.feltmedia.com/ -- a pleasure to work with. =20 js --=20 Jacob Smullyan |
From: Jacob S. <smu...@sm...> - 2006-03-13 11:59:20
|
On Mon, Mar 13, 2006 at 05:12:29PM +1300, Andrew Groom wrote: > Hi there, >=20 > I'd really like to use PyDO for a project I'm working on, but I'm=20 > constrained to using python 2.3. I'm guessing there's a previous version= =20 > of PyDO that would work with it, but could anyone tell me where to find i= t ? PyDO 1 is part of the skunkweb distribution: http://prdownloads.sourceforge.net/skunkweb/skunkweb-3.4.1.tar.gz?download The api is similar but not the same. It requires a module or two elsewhere in the skunkweb distribution (static.py in particular). Another alternative would be to patch PyDO2, somewhat heavily but nonetheless superficially, to work with 2.3. You'd need to replace decorators like @classmethod and replace generator expressions with list comprehensions, but I think that is about it. I suppose I'd have been a better citizen had I written it to 2.3 anyway. Cheers, js --=20 Jacob Smullyan |
From: Andrew G. <an...@re...> - 2006-03-13 04:12:47
|
Hi there, I'd really like to use PyDO for a project I'm working on, but I'm constrained to using python 2.3. I'm guessing there's a previous version of PyDO that would work with it, but could anyone tell me where to find it ? Cheers, Andrew. |
From: Jacob S. <smu...@sm...> - 2006-03-11 21:24:43
|
Hi all -- I've just released skunkweb 3.4.1, which contains some minor bugfixes and one new service (misleadingly called "mvc", sorry about that) which implements controllers (a la CherryPy, Rails, etc.) and uses Routes (routes.groovie.org) to resolve controllers from urls. You can get it at sourceforge: http://sourceforge.net/project/showfiles.php?group_id=3D32756&package_id= =3D24888&release_id=3D400647 This release does not include PyDO2 (released separately, at berlios) or the skunk4 stuff in svn, some of which is usable (the cache) but most of which is not. Cheers, js --=20 Jacob Smullyan |
From: Jonathan E. <jon...@ut...> - 2006-03-08 16:26:09
|
Nice! On 3/8/06, Jacob Smullyan <smu...@sm...> wrote: > > After much toil by Hamish Lawson on the Oracle backend, I'm at last > releasing PyDO 2.0. Get it from the cheeseshop: > > easy_install -U PyDO > > or from berlios: > > http://prdownload.berlios.de/skunkweb/PyDO-2.0.tar.gz > > Cheers, > > js > > > -- > Jacob Smullyan > -- Jonathan Ellis http://spyced.blogspot.com |
From: Jacob S. <smu...@sm...> - 2006-03-08 16:01:35
|
After much toil by Hamish Lawson on the Oracle backend, I'm at last releasing PyDO 2.0. Get it from the cheeseshop: easy_install -U PyDO or from berlios: http://prdownload.berlios.de/skunkweb/PyDO-2.0.tar.gz Cheers, js --=20 Jacob Smullyan |
From: Jacob S. <smu...@sm...> - 2006-03-02 20:12:13
|
I ended up getting bitten by this bug, too. I added a virtual host and suddenly got errors, with the glibc detected free() error on the console, just for that host. Applying this patch made the problem go away. Weird. So I've checked it in. =20 I will be doing a release within the next week or so. js On Thu, Jan 05, 2006 at 10:41:34PM -0500, Jacob Smullyan wrote: > Drew's patch for the FC4 normpath problem. >=20 > ----- Forwarded message from Drew Csillag <dre...@ya...> ----- >=20 > Return-Path: dre...@ya... > Delivered-To: smu...@sm... > DomainKey-Signature: a=3Drsa-sha1; q=3Ddns; c=3Dnofws; > s=3Ds1024; d=3Dyahoo.com; > h=3DMessage-ID:Received:Date:From:Subject:To:In-Reply-To:MIME-Version:C= ontent-Type:Content-Transfer-Encoding; > b=3DQEGP5PWAm1ORClNLA12DSo3lOoNksYifldvpYcNGWVEtyptzx13HJb/8p0k/zVY3tF0= C1VzYJYfbwFsDyBUPrejoJPV8rF5G0pDqqKaAC6DgYRnDlChrPSrK1CDAgg1cwOR5I2cTNcKcWw= Ah5NbqveWreYjgcyddMYZDVtqhxhk=3D ; > Date: Fri, 23 Sep 2005 07:05:36 -0700 (PDT) > From: Drew Csillag <dre...@ya...> > Subject: small patch to _normpath.c > To: Jacob Smullyan <smu...@sm...> > Content-Type: multipart/mixed; boundary=3D"0-1402088261-1127484336=3D:670= 27" > Content-Transfer-Encoding: 8bit >=20 > I was moving skunkweb (originally compiled on Redhat 7.2) to Redhat > 4.0 and for reasons I don't entirely understand was running into core > dumps in _normpath upon calls to free(). This one switches the > malloc()s to alloca()s (since the allocated memory isn't used outside > itself). >=20 > Cheers, > Drew >=20 >=20 > =09 > __________________________________=20 > Yahoo! Mail - PC Magazine Editors' Choice 2005=20 > http://mail.yahoo.com >=20 >=20 > ----- End forwarded message ----- >=20 > --=20 > Jacob Smullyan > diff -ur skunkweb-3.4.0/pylibs/skunklib/_normpath.c skunkweb/pylibs/skunk= lib/_normpath.c > --- skunkweb-3.4.0/pylibs/skunklib/_normpath.c 2003-05-01 16:46:02.000000= 000 -0400 > +++ skunkweb/pylibs/skunklib/_normpath.c 2005-09-22 14:00:03.000000000 -0= 400 > @@ -35,9 +35,9 @@ > return NULL; > =20 > #undef DEBUG > - parts =3D (struct str*)malloc( sizeof(struct str) * len ); > - newparts =3D (struct str*)malloc( sizeof(struct str) * len ); > - newpath =3D (char*)malloc( sizeof(char) * len + 1); > + parts =3D (struct str*)alloca( sizeof(struct str) * len ); > + newparts =3D (struct str*)alloca( sizeof(struct str) * len ); > + newpath =3D (char*)alloca( sizeof(char) * len + 1); > =20 > /* do the string.split */ > for (i =3D 0; i < len; i++) > @@ -136,9 +136,9 @@ > printf("newpathlen =3D %d len =3D %d\n", newpathlen, len); > #endif=20 > ret =3D PyString_FromStringAndSize(newpath, newpathlen); > - free(newpath); > - free(parts); > - free(newparts); > +// free(newpath); > +// free(parts); > +// free(newparts); > return ret; > } > =20 --=20 Jacob Smullyan |
From: Jacob S. <smu...@sm...> - 2006-01-13 17:42:01
|
On Fri, Jan 13, 2006 at 11:48:10AM -0500, Jacob Smullyan wrote: > My patch just stripped out the negative ids from the constraints, only > tossing out the constraint entirely if the constraint didn't contain > any nonnegative values. That may well be wrong, and result in > constraints being misreported; maybe the whole constraint should be > skipped in there is a negative id in it (which would be equivalent to > the proposed but unworkable SQL above). For the time being, I've checked in some code that does this. Indices with system columns are skipped. js -- Jacob Smullyan |
From: Jacob S. <smu...@sm...> - 2006-01-13 16:48:18
|
On Fri, Jan 13, 2006 at 08:49:11AM -0700, Jonathan Ellis wrote: > That's probably the right thing to do. Cleaner would be to add "AND > a.attnum > 0" to the query itself, though, which is what the other > query on pg_attribute does right now. That only deals with the case where the first element of indkey is negative; but sometimes only an element farther down in the array is negative (browse through "select indkey from pg_catalog.indkey" -- excellent summer reading). So you'd need something like "AND 0 < ANY(indkey)", except that indkey is an int2vector and doesn't support the ANY operator; there is probably a way to do it in sql, but I don't know what it is. My patch just stripped out the negative ids from the constraints, only tossing out the constraint entirely if the constraint didn't contain any nonnegative values. That may well be wrong, and result in constraints being misreported; maybe the whole constraint should be skipped in there is a negative id in it (which would be equivalent to the proposed but unworkable SQL above). It would be better to find fewer constraints than find ones that don't actually exist. I don't have time to research this today, but if no one else knows how these catalogs actually work in regard to indices and system columns I'll look into it soon. j --=20 Jacob Smullyan |