1050
Comment:
|
4837
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
[[TableOfContents]] | |
Line 4: | Line 3: |
== Masthead == | = PostgreSQL = |
Line 7: | Line 6: |
licence:: platforms:: |
licence:: BSD platforms:: Unix, win32 ([[http://www.postgresql.org/docs/faqs.FAQ_MINGW.html|NT-based Microsoft operating system]]) == Pros == From the [[http://www.postgresql.org/about/|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. ---- |
Line 12: | Line 36: |
=== PyGresQL === | === PyGreSQL === |
Line 14: | Line 38: |
URL:: http://www.druid.net/pygresql/ licence:: platforms:: |
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) |
Line 18: | Line 50: |
Maintenance:: development stalled (as of 12/2008) | |
Line 21: | Line 54: |
==== Comments ==== === PoPy === URL:: http://popy.sourceforge.net licence:: platforms:: Python versions:: ==== 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 |
Line 34: | Line 58: |
=== psycopg === | * Written for heavily multithreaded applications in mind. * Offers a few advanced features over PoPy * Win32 binaries can be found here http://www.stickpeople.com/projects/python/psycopg/ |
Line 36: | Line 62: |
URL:: http://initd.org/Software/psycopg licence:: platforms:: |
=== psycopg2 === URL:: http://initd.org/software/initd/psycopg2 Licence:: GPL Platforms:: Unix, win32 (beta) |
Line 40: | Line 68: |
==== Extensions to DB API ==== ==== Comments ==== |
Maintenance:: Active development |
Line 48: | Line 73: |
licence:: platforms:: Python versions:: |
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) |
Line 54: | Line 80: |
==== Comments ==== | * 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. |
Line 56: | Line 83: |
== Other Drivers == | === mxODBC === |
Line 58: | Line 85: |
=== driver name === | 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 |
Line 60: | Line 90: |
URL:: licence:: platforms:: Python versions:: |
mxODBC is compatible with the [[http://www.postgresql.org/ftp/odbc/versions/|PostgreSQL ODBC driver]] on Windows and Unix. |
Line 65: | Line 92: |
==== Programming Model ==== | 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. Red``Hat 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 |
Line 69: | Line 117: |
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): * PoPy: http://sourceforge.net/projects/popy * No activity since 2003 * pgasync: http://jamwt.com/pgasync/ * Asynchronous and pure Python. Speed comparable to C bindings. Special support for Twisted. * bpgsql: http://barryp.org/software/bpgsql/ * Barebones pure-Python PostgreSQL client * [[sipPQ]] ---- |
|
Line 70: | Line 140: |
== Pros == == Cons == |
* [[Zope]] * DbDoc * three PostgreSQL drivers (using pgdb, included with the PostgreSQL distro, pypgsql, and psycopg) exist for [[PyDO]] (Python Data Objects) |
PostgreSQL
- URL
- 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
- 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
- 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
- Written for heavily multithreaded applications in mind.
Offers a few advanced features over PoPy
Win32 binaries can be found here http://www.stickpeople.com/projects/python/psycopg/
psycopg2
- URL
- Licence
- GPL
- Platforms
- Unix, win32 (beta)
- Python versions
- Maintenance
- Active development
pyPgSQL
- URL
- 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
- 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
- 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
- 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):
PoPy: http://sourceforge.net/projects/popy
- No activity since 2003
pgasync: http://jamwt.com/pgasync/
- Asynchronous and pure Python. Speed comparable to C bindings. Special support for Twisted.
bpgsql: http://barryp.org/software/bpgsql/
- Barebones pure-Python PostgreSQL client