From: Greg Smith on
Bruce Momjian wrote:
> While I realize experienced people can easily navigate this confusion...

No, that's the worst part--the more you know and the deeper you dig into
it, the more broken you realize the whole thing is. When one of the
best drivers (in some respects) has a web page that looks like this:
http://initd.org/ that doesn't seem so bad at first--but if you're
experienced, you know that the page has been in that disturbing state
since late 2006. You start digging into the driver mess, figure you
just need to learn how things fit together, but the hole keeps getting
bigger as you dig.

The issues here have already been identified: the Perl DBI is an
excellent spec, while the Python one is so weak everybody ends up
needing their own extensions to it. And then portability *even among
Python PostgreSQL drivers* goes out the window. If somebody built a
BSD/MIT licensed driver that replaces every useful feature of all the
forks, with no major problems, and a couple of major projects switched
over to it (think "Skype" level big), maybe this mess could get
resolved. I think it would take someone already familiar with the major
issues involved a couple of months of regular work to make any serious
progress on it.

--
Greg Smith 2ndQuadrant Baltimore, MD
PostgreSQL Training, Services and Support
greg(a)2ndQuadrant.com www.2ndQuadrant.com


--
Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

From: James William Pye on
On Feb 5, 2010, at 8:00 AM, Peter Eisentraut wrote:
> I think another difference is that the Perl DBI interface is very rich,
> whereas the Python DB-API is quite minimal and almost forces people to
> write (incompatible) extensions.

Yep.

> The DB-SIG at Python that ought to drive all this is also quite dead,

From reading messages that come into that list(not-so-lately), I've gotten the impression that they are content with DB-API 2. Aside from the TPC interfaces, the last round of activity that I know of was dbapi3[1 (which was a long while ago)].

> possibly because everyone has moved on to SQLAlchemy.

Yeah. AFAICT, that is the general direction encouraged by DB-SIG. Write an abstraction on top of DB-API. SQLAlchemy, SQLObject, anysql, and I'm sure there are others.


[1] http://wiki.python.org/moin/Aug2001DbApi3Strawman
http://wiki.python.org/moin/DbApi3
--
Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

From: Jeff Davis on
On Fri, 2010-02-05 at 09:38 -0500, Bruce Momjian wrote:
> Wow, that is super-confusing.

Agreed. Standardization among licenses is useful, and I think it's
important to have a driver with a license that people already
understand.

Regards,
Jeff Davis


--
Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

From: Bruce Momjian on
Josh Berkus wrote:
>
> > The situation is unfortunate, but you might as well argue that too many
> > Linux desktops or Linux distributions confuse new users and hurt
> > adoption. These alternatives all exist for a reason, and it will be
> > difficult to get some of them to abandon their work with the aim of
> > reducing the overall "confusion".
>
> I'm not as concerned about "confusion" as the fact that *all* of the
> various Python drivers suck in different, and crippling, ways. I don't
> care how many drivers we have, as long as we have at least one 1st-class
> driver.

Agreed, and we can point newbies to that one great driver.

--
Bruce Momjian <bruce(a)momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

--
Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

From: James William Pye on
On Feb 5, 2010, at 11:34 AM, Josh Berkus wrote:
> For people who use Python a lot, could I have a list of the deficiencies
> in DBAPI? I've got my horse and lance ready.
>
> Given that SQLAlchemy isn't for everyone, of course ... it couldn't be,
> or Django would use it, no?


Here are some to start with:

- paramstyle
- No direct support of prepared statements
[they *tried* to compensate for this with "cached statements", but it's inadequate]
- Too many *optional* extensions (Cursor Method .__iter__() being rather notable)

http://www.python.org/dev/peps/pep-0249/

--
Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers