Differences between revisions 1 and 20 (spanning 19 versions)
Revision 1 as of 2002-07-15 21:20:30
Size: 1050
Editor: pD9EB03FC
Comment:
Revision 20 as of 2008-04-25 11:58:00
Size: 3197
Editor: dilbert
Comment: PoPy team never responded after initial agreement.
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:: 1.5.2 thru 2.4
  Maintenance:: Last version released is 3.8.1 (2006-06-05)

=== psycopg ===

  URL:: http://initd.org/software/initd/psycopg
  Licence:: GPL
  Platforms:: Unix, win32 (beta)
Line 18: Line 50:
  Maintenance:: Active development, frequent updates (as of 10/2003)
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 ===

  URL:: http://initd.org/Software/psycopg
  licence::
  platforms::
  Python versions::

==== Extensions to DB API ====

==== 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/
Line 48: Line 65:
  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 72:
==== 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 75:
== Other Drivers == === mxODBC ===
Line 58: Line 77:
=== 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 82:
  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 84:
==== Programming Model ====

==== Comments ====
----
Line 70: Line 87:

== 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

http://www.postgresql.org/

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.


DB API 2.0 Drivers

PyGreSQL

URL

http://www.pygresql.org/

licence
BSD-like
platforms
Unix, win32
Python versions
1.5.2 thru 2.4
Maintenance
Last version released is 3.8.1 (2006-06-05)

psycopg

URL

http://initd.org/software/initd/psycopg

Licence
GPL
Platforms
Unix, win32 (beta)
Python versions
Maintenance
Active development, frequent updates (as of 10/2003)

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

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 [http://www.postgresql.org/ftp/odbc/versions/ PostgreSQL ODBC driver] on Windows and Unix.


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.