Differences between revisions 27 and 28
Revision 27 as of 2009-04-24 05:20:58
Size: 4840
Editor: adsl-69-110-222-137
Comment:
Revision 28 as of 2009-04-25 16:10:44
Size: 4837
Editor: PaulBoddie
Comment:
Deletions are marked like this. Additions are marked like this.
Line 143: Line 143:
.

PostgreSQL

URL

http://www.postgresql.org/

licence
BSD
platforms

Unix, win32 (NT-based Microsoft operating system)

Pros

From the features page:

  • Good compliance with SQL standards
  • Supports many SQL features
    • Foreign keys
    • Implements all SQL99 join types: inner join, left, right, full outer join, natural join
    • Subqueries
    • UNION and UNION ALL, INTERSECT and EXCEPT
    • Views
    • Triggers
  • Support for international character sets, multibyte character encodings, Unicode
  • Supports many languages for writing server-side functions/procedures and aggregates: Python, C, Perl, Tcl, PL/PgSQL, ...
  • ACID compliant
  • Support for rollback
  • Serializable transaction isolation
  • Multi-Version Concurrency Control (MVCC) for highly scalable concurrent applications

Cons

  • Native Windows version is implemented in the PostgreSQL 8.x version, and just for Windows NT 4.0 / 2000 / XP / 2003. For running on other Windows platform or an older version than 8.0 there is a Cygwin version.


DB API 2.0 Drivers

PyGreSQL

URL

http://www.pygresql.org/

licence
BSD-like
platforms
Unix, win32
Python versions
2.3 thru 2.6
Maintenance
Last version released is 4.0 (2009-01-01)

psycopg1

URL

http://initd.org/software/initd/psycopg1

Licence
GPL
Platforms
Unix, win32 (beta)
Python versions
Maintenance
development stalled (as of 12/2008)

Extensions to DB API

  • dictfetchone(), dictfetchmany(), dictfechall() methods on the cursor object; these will return dictionaries instead of tuples, so you can access rows by name instead of by index

Comments

psycopg2

URL

http://initd.org/software/initd/psycopg2

Licence
GPL
Platforms
Unix, win32 (beta)
Python versions
Maintenance
Active development

pyPgSQL

URL

http://pypgsql.sourceforge.net

Licence
BSD-like (depends on mxDateTime, which may be GPL-incompatible)
Platforms
Unix, win32
Python versions
2.1 thru 2.3
Maintenance
Active, sporatic (as of 10/2003)

Extensions to DB API

  • The fetch methods on cursors return an instances of PgResultSet, which you can use to access rows by index (like in DB-API), dictionary-like or with attributes. This feature can be turned off for a slight performance boost.

  • Support for PostgreSQL notifications in the low-level API.

mxODBC

URL

http://www.egenix.com/products/python/mxODBC/

Licence
eGenix Commercial License
Platforms
Windows, Linux, MacOS X, FreeBSD, Solaris, AIX
Python versions
2.1 - 2.5

mxODBC is compatible with the PostgreSQL ODBC driver on Windows and Unix.

Note that you have to enable the advanced option "Use bytea for lo" in case you want to work with BLOBs.

pyodbc

URL

http://code.google.com/p/pyodbc

License
MIT
Platforms
Windows, Linux, MacOS X, FreeBSD, Solaris, Any (source provided)
Python versions
2.4 - 2.6

Actively maintained Open Source project.

Precompiled binaries are available for Windows. RedHat Enterprise Linux, Centos, and Fedora have precompiled RPMs available in their Extras repositories.

py-postgresql

URL

http://python.projects.postgresql.org

License
BSD/MIT/PSF
Platforms
Any (windows installers available)
Python version
3.x
Maintenance
Active development

Comments

Python 3 port of pg_proboscis and friends. Pure Python with C optimizations. Prepared statement driven APIs, PG-API.(DB-API is there as well).

Written with efficiency and flexibility in mind. Data is streamed in when requested to do so, and always is streamed in under DB-API.

Other Python Interfaces for PostgreSQL

These entries still need to be updated to the standard format (see above):


Supported Python Applications

  • Zope

  • DbDoc

  • three PostgreSQL drivers (using pgdb, included with the PostgreSQL distro, pypgsql, and psycopg) exist for PyDO (Python Data Objects)

PostgreSQL (last edited 2021-03-31 06:49:56 by TonyLocke)

Unable to edit the page? See the FrontPage for instructions.