Re: Confusion over Python drivers - Mailing list pgsql-hackers

From Marko Kreen
Subject Re: Confusion over Python drivers
Date
Msg-id e51f66da1002061648l53bce309v8e3817d188f7f77@mail.gmail.com
Whole thread Raw
In response to Re: Confusion over Python drivers  (Greg Smith <greg@2ndquadrant.com>)
Responses Re: Confusion over Python drivers  (Robert Haas <robertmhaas@gmail.com>)
Re: Confusion over Python drivers  (Greg Smith <greg@2ndquadrant.com>)
List pgsql-hackers
On 2/7/10, Greg Smith <greg@2ndquadrant.com> wrote:
> Marko Kreen wrote:
> > Psycopg was the leader, especially in web-environments,
> > but it has non-obvious license and with dead website it does not
> > seem that attractive.  Although it is well-maintained still.
> > Best path forward would be to talk with Psycopg guys about
> > license clarification/change.
>
>  Agreed.  A relicensed Psycopg, with a more professional looking
> introduction/documentation page (like the budding page on our Wiki) than
> what the initd web site has, seems like the best platform to hack on top of
> to me as well.  The fact that they've moved to git recently makes it that
> much easier for another branch to exist even outside of their somewhat
> troubled infrastructure.
>
>  To summarize what I saw on this thread, the primary wishlist of changes to
> it are:
>
>  -License change

Note that as long they use non-BSD licence, they need the exception
for the horror that is the OpenSSL licence.

So you cannot 100% satisfy the one-click-lawyers.

>  -Consider refactoring to better follow standard driver practices, such as
> using PQExecParams

This is long-term todo item for psycopg, seems offtopic
to the "driver situation".

>  -Improvement in transaction control to resolve issues that cause idle
> transactions

This is routine bug in either app or psycopg, we have no reason
to touch it.  The guy should report to appropriate lists.

>  -Possible simplifications in how it's implemented async operations, to
> improve robustness/reduce code complexity

Long-term todo item for psycopg2, offtopic for "driver situation".

>  -Confirm/add multi-threaded support.

Seems psycopg2 already has good enough threading.

>  -Confirm/add support for the most common standard types (such as array)

psycopg2 has array support, I'd like to have tuple/record also.

Minor todo item for psycopg, mostly but not completely offtopic
for "driver situation".

> > PyGreSQL is the oldest, older than DB-API, and so it's DB-API
> > interface seems an afterthought and is untested/underused - eg.
> > it does not support bytea.
> >
> >
>  And if Psycopg can't be relicensed happily and/or improved as above, as the
> only other native Python driver PyGreSQL looks like the next candidate to
> build on top of.  Its major issues are:
>
>  -Test/complete/refactor for full DB-API 2.0 support
>  -Add bytea support

timestamp/timestamptz also...

>  -Add extension support, perhaps modeled on what Psycopg.
>  -Build a COPY extension

They seems to have the low-level parts, just they are missing
from DB-API interface.

>  -Confirm/add multi-threaded support
>  -Confirm/add support for the most common standard types (such as array)
>
>  Any other suggestions before I turn the above into a roadmap page on the
> wiki?

I think we should concentrate on the PR problem and technical issues
related to that, keep the other low-level and non-user-visible
issues out.  Or at least separate.  (PsycopgTodo wiki page?)

-- 
marko


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Confusion over Python drivers
Next
From: Josh Berkus
Date:
Subject: Re: Confusion over Python drivers