hawq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From r..@apache.org
Subject [06/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue
Date Tue, 22 Sep 2015 19:14:09 GMT
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/changelog.txt
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/changelog.txt b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/changelog.txt
new file mode 100644
index 0000000..ea0d71d
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/changelog.txt
@@ -0,0 +1,285 @@
+==================
+PyGreSQL ChangeLog
+==================
+
+Version 4.0 (2009-01-01)
+------------------------
+- Dropped support for Python below 2.3 and PostgreSQL below 7.4.
+- Improved performance of fetchall() for large result sets
+  by speeding up the type casts (as suggested by Peter Schuller).
+- Exposed exceptions as attributes of the connection object.
+- Exposed connection as attribute of the cursor object.
+- Cursors now support the iteration protocol.
+- Added new method to get parameter settings.
+- Added customizable row_factory as suggested by Simon Pamies.
+- Separated between mandatory and additional type objects.
+- Added keyword args to insert, update and delete methods.
+- Added exception handling for direct copy.
+- Release the GIL while making a connection
+  (as suggested by Peter Schuller).
+- If available, use decimal.Decimal for numeric types.
+- Allow DB wrapper to be used with DB-API 2 connections
+  (as suggested by Chris Hilton).
+- Made private attributes of DB wrapper accessible.
+- Dropped dependence on mx.DateTime module.
+- Support for PQescapeStringConn() and PQescapeByteaConn();
+  these are now also used by the internal _quote() functions.
+- Added 'int8' to INTEGER types. New SMALLINT type.
+- Added a way to find the number of rows affected by a query()
+  with the classic pg module by returning it as a string.
+  For single inserts, query() still returns the oid as an integer.
+  The pgdb module already provides the "rowcount" cursor attribute
+  for the same purpose.
+- Improved getnotify() by calling PQconsumeInput() instead of
+  submitting an empty command.
+- Removed compatibility code for old OID munging style.
+- The insert() and update() methods now use the "returning" clause
+  if possible to get all changed values, and they also check in advance
+  whether a subsequent select is possible, so that ongoing transactions
+  won't break if there is no select privilege.
+- Added "protocol_version" and "server_version" attributes.
+- Revived the "user" attribute.
+- The pg module now works correctly with composite primary keys;
+  these are represented as frozensets.
+- Removed the undocumented and actually unnecessary "view" parameter
+  from the get() method.
+- get() raises a nicer ProgrammingError instead of a KeyError
+  if no primary key was found.
+- delete() now also works based on the primary key if no oid available
+  and returns whether the row existed or not.
+
+
+Version 3.8.1 (2006-06-05)
+--------------------------
+- Use string methods instead of deprecated string functions.
+- Only use SQL-standard way of escaping quotes.
+- Added the functions escape_string() and escape/unescape_bytea()
+  (as suggested by Charlie Dyson and Kavous Bojnourdi a long time ago).
+- Reverted code in clear() method that set date to current.
+- Added code for backwards compatibility in OID munging code.
+- Reorder attnames tests so that "interval" is checked for before "int."
+- If caller supplies key dictionary, make sure that all has a namespace.
+
+Version 3.8 (2006-02-17)
+------------------------
+- Installed new favicon.ico from Matthew Sporleder <mspo@mspo.com>
+- Replaced snprintf by PyOS_snprintf.
+- Removed NO_SNPRINTF switch which is not needed any longer
+- Clean up some variable names and namespace
+- Add get_relations() method to get any type of relation
+- Rewrite get_tables() to use get_relations()
+- Use new method in get_attnames method to get attributes of views as well
+- Add Binary type
+- Number of rows is now -1 after executing no-result statements
+- Fix some number handling
+- Non-simple types do not raise an error any more
+- Improvements to documentation framework
+- Take into account that nowadays not every table must have an oid column
+- Simplification and improvement of the inserttable() function
+- Fix up unit tests
+- The usual assortment of minor fixes and enhancements
+
+Version 3.7 (2005-09-07)
+------------------------
+Improvement of pgdb module:
+
+- Use Python standard `datetime` if `mxDateTime` is not available
+
+Major improvements and clean-up in classic pg module:
+
+- All members of the underlying connection directly available in `DB`
+- Fixes to quoting function
+- Add checks for valid database connection to methods
+- Improved namespace support, handle `search_path` correctly
+- Removed old dust and unnessesary imports, added docstrings
+- Internal sql statements as one-liners, smoothed out ugly code
+
+Version 3.6.2 (2005-02-23)
+--------------------------
+- Further fixes to namespace handling
+
+Version 3.6.1 (2005-01-11)
+--------------------------
+- Fixes to namespace handling
+
+Version 3.6 (2004-12-17)
+------------------------
+- Better DB-API 2.0 compliance
+- Exception hierarchy moved into C module and made available to both APIs
+- Fix error in update method that caused false exceptions
+- Moved to standard exception hierarchy in classic API
+- Added new method to get transaction state
+- Use proper Python constants where appropriate
+- Use Python versions of strtol, etc. Allows Win32 build.
+- Bug fixes and cleanups
+
+Version 3.5 (2004-08-29)
+------------------------
+Fixes and enhancements:
+
+- Add interval to list of data types
+- fix up method wrapping especially close()
+- retry pkeys once if table missing in case it was just added
+- wrap query method separately to handle debug better
+- use isinstance instead of type
+- fix free/PQfreemem issue - finally
+- miscellaneous cleanups and formatting
+
+Version 3.4 (2004-06-02)
+------------------------
+Some cleanups and fixes.
+This is the first version where PyGreSQL is moved back out of the
+PostgreSQL tree. A lot of the changes mentioned below were actually
+made while in the PostgreSQL tree since their last release.
+
+- Allow for larger integer returns
+- Return proper strings for true and false
+- Cleanup convenience method creation
+- Enhance debugging method
+- Add reopen method
+- Allow programs to preload field names for speedup
+- Move OID handling so that it returns long instead of int
+- Miscellaneous cleanups and formatting
+
+Version 3.3 (2001-12-03)
+------------------------
+A few cleanups.  Mostly there was some confusion about the latest version
+and so I am bumping the number to keep it straight.
+
+- Added NUMERICOID to list of returned types. This fixes a bug when
+  returning aggregates in the latest version of PostgreSQL.
+
+Version 3.2 (2001-06-20)
+------------------------
+Note that there are very few changes to PyGreSQL between 3.1 and 3.2.
+The main reason for the release is the move into the PostgreSQL
+development tree.  Even the WIN32 changes are pretty minor.
+
+- Add Win32 support (gerhard@bigfoot.de)
+- Fix some DB-API quoting problems (niall.smart@ebeon.com)
+- Moved development into PostgreSQL development tree.
+
+Version 3.1 (2000-11-06)
+------------------------
+- Fix some quoting functions.  In particular handle NULLs better.
+- Use a method to add primary key information rather than direct
+  manipulation of the class structures
+- Break decimal out in `_quote` (in pg.py) and treat it as float
+- Treat timestamp like date for quoting purposes
+- Remove a redundant SELECT from the `get` method speeding it,
+  and `insert` (since it calls `get`) up a little.
+- Add test for BOOL type in typecast method to `pgdbTypeCache` class
+  (tv@beamnet.de)
+- Fix pgdb.py to send port as integer to lower level function
+  (dildog@l0pht.com)
+- Change pg.py to speed up some operations
+- Allow updates on tables with no primary keys
+
+Version 3.0 (2000-05-30)
+------------------------
+- Remove strlen() call from pglarge_write() and get size from object
+  (Richard@Bouska.cz)
+- Add a little more error checking to the quote function in the wrapper
+- Add extra checking in `_quote` function
+- Wrap query in pg.py for debugging
+- Add DB-API 2.0 support to pgmodule.c (andre@via.ecp.fr)
+- Add DB-API 2.0 wrapper pgdb.py (andre@via.ecp.fr)
+- Correct keyword clash (temp) in tutorial
+- Clean up layout of tutorial
+- Return NULL values as None (rlawrence@lastfoot.com)
+  (WARNING: This will cause backwards compatibility issues)
+- Change None to NULL in insert and update
+- Change hash-bang lines to use /usr/bin/env
+- Clearing date should be blank (NULL) not TODAY
+- Quote backslashes in strings in `_quote` (brian@CSUA.Berkeley.EDU)
+- Expanded and clarified build instructions (tbryan@starship.python.net)
+- Make code thread safe (Jerome.Alet@unice.fr)
+- Add README.distutils (mwa@gate.net & jeremy@cnri.reston.va.us)
+- Many fixes and increased DB-API compliance by chifungfan@yahoo.com,
+  tony@printra.net, jeremy@alum.mit.edu and others to get the final
+  version ready to release.
+
+Version 2.4 (1999-06-15)
+------------------------
+- Insert returns None if the user doesn't have select permissions
+  on the table.  It can (and does) happen that one has insert but
+  not select permissions on a table.
+- Added ntuples() method to query object (brit@druid.net)
+- Corrected a bug related to getresult() and the money type
+- Corrected a bug related to negative money amounts
+- Allow update based on primary key if munged oid not available and
+  table has a primary key
+- Add many __doc__ strings (andre@via.ecp.fr)
+- Get method works with views if key specified
+
+Version 2.3 (1999-04-17)
+------------------------
+- connect.host returns "localhost" when connected to Unix socket
+  (torppa@tuhnu.cutery.fi)
+- Use `PyArg_ParseTupleAndKeywords` in connect() (torppa@tuhnu.cutery.fi)
+- fixes and cleanups (torppa@tuhnu.cutery.fi)
+- Fixed memory leak in dictresult() (terekhov@emc.com)
+- Deprecated pgext.py - functionality now in pg.py
+- More cleanups to the tutorial
+- Added fileno() method - terekhov@emc.com (Mikhail Terekhov)
+- added money type to quoting function
+- Compiles cleanly with more warnings turned on
+- Returns PostgreSQL error message on error
+- Init accepts keywords (Jarkko Torppa)
+- Convenience functions can be overridden (Jarkko Torppa)
+- added close() method
+
+Version 2.2 (1998-12-21)
+------------------------
+- Added user and password support thanks to Ng Pheng Siong (ngps@post1.com)
+- Insert queries return the inserted oid
+- Add new `pg` wrapper (C module renamed to _pg)
+- Wrapped database connection in a class
+- Cleaned up some of the tutorial.  (More work needed.)
+- Added `version` and `__version__`.
+  Thanks to thilo@eevolute.com for the suggestion.
+
+Version 2.1 (1998-03-07)
+------------------------
+- return fields as proper Python objects for field type
+- Cleaned up pgext.py
+- Added dictresult method
+
+Version 2.0  (1997-12-23)
+-------------------------
+- Updated code for PostgreSQL 6.2.1 and Python 1.5
+- Reformatted code and converted to use full ANSI style prototypes
+- Changed name to PyGreSQL (from PyGres95)
+- Changed order of arguments to connect function
+- Created new type `pgqueryobject` and moved certain methods to it
+- Added a print function for pgqueryobject
+- Various code changes - mostly stylistic
+
+Version 1.0b (1995-11-04)
+-------------------------
+- Keyword support for connect function moved from library file to C code
+  and taken away from library
+- Rewrote documentation
+- Bug fix in connect function
+- Enhancements in large objects interface methods
+
+Version 1.0a (1995-10-30)
+-------------------------
+A limited release.
+
+- Module adapted to standard Python syntax
+- Keyword support for connect function in library file
+- Rewrote default parameters interface (internal use of strings)
+- Fixed minor bugs in module interface
+- Redefinition of error messages
+
+Version 0.9b (1995-10-10)
+-------------------------
+The first public release.
+
+- Large objects implementation
+- Many bug fixes, enhancements, ...
+
+Version 0.1a (1995-10-07)
+-------------------------
+- Basic libpq functions (SQL access)

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/default.css
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/default.css b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/default.css
new file mode 100644
index 0000000..15d0778
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/default.css
@@ -0,0 +1,279 @@
+/*
+:Author: David Goodger
+:Contact: goodger@users.sourceforge.net
+:Date: $Date: 2006/01/22 16:15:33 $
+:Revision: $Revision: 1.2 $
+:Copyright: This stylesheet has been placed in the public domain.
+
+Default cascading style sheet for the HTML output of Docutils.
+
+See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
+customize this style sheet.
+*/
+
+/* used to remove borders from tables and images */
+.borderless, table.borderless td, table.borderless th {
+  border: 0 }
+
+table.borderless td, table.borderless th {
+  /* Override padding for "table.docutils td" with "! important".
+     The right padding separates the table cells. */
+  padding: 0 0.5em 0 0 ! important }
+
+.first {
+  /* Override more specific margin styles with "! important". */
+  margin-top: 0 ! important }
+
+.last, .with-subtitle {
+  margin-bottom: 0 ! important }
+
+.hidden {
+  display: none }
+
+a.toc-backref {
+  text-decoration: none ;
+  color: black }
+
+blockquote.epigraph {
+  margin: 2em 5em ; }
+
+dl.docutils dd {
+  margin-bottom: 0.5em }
+
+/* Uncomment (and remove this text!) to get bold-faced definition list terms
+dl.docutils dt {
+  font-weight: bold }
+*/
+
+div.abstract {
+  margin: 2em 5em }
+
+div.abstract p.topic-title {
+  font-weight: bold ;
+  text-align: center }
+
+div.admonition, div.attention, div.caution, div.danger, div.error,
+div.hint, div.important, div.note, div.tip, div.warning {
+  margin: 2em ;
+  border: medium outset ;
+  padding: 1em }
+
+div.admonition p.admonition-title, div.hint p.admonition-title,
+div.important p.admonition-title, div.note p.admonition-title,
+div.tip p.admonition-title {
+  font-weight: bold ;
+  font-family: sans-serif }
+
+div.attention p.admonition-title, div.caution p.admonition-title,
+div.danger p.admonition-title, div.error p.admonition-title,
+div.warning p.admonition-title {
+  color: red ;
+  font-weight: bold ;
+  font-family: sans-serif }
+
+/* Uncomment (and remove this text!) to get reduced vertical space in
+   compound paragraphs.
+div.compound .compound-first, div.compound .compound-middle {
+  margin-bottom: 0.5em }
+
+div.compound .compound-last, div.compound .compound-middle {
+  margin-top: 0.5em }
+*/
+
+div.dedication {
+  margin: 2em 5em ;
+  text-align: center ;
+  font-style: italic }
+
+div.dedication p.topic-title {
+  font-weight: bold ;
+  font-style: normal }
+
+div.figure {
+  margin-left: 2em ;
+  margin-right: 2em }
+
+div.footer, div.header {
+  clear: both;
+  font-size: smaller }
+
+div.line-block {
+  display: block ;
+  margin-top: 1em ;
+  margin-bottom: 1em }
+
+div.line-block div.line-block {
+  margin-top: 0 ;
+  margin-bottom: 0 ;
+  margin-left: 1.5em }
+
+div.sidebar {
+  margin-left: 1em ;
+  border: medium outset ;
+  padding: 1em ;
+  background-color: #ffffee ;
+  width: 40% ;
+  float: right ;
+  clear: right }
+
+div.sidebar p.rubric {
+  font-family: sans-serif ;
+  font-size: medium }
+
+div.system-messages {
+  margin: 5em }
+
+div.system-messages h1 {
+  color: red }
+
+div.system-message {
+  border: medium outset ;
+  padding: 1em }
+
+div.system-message p.system-message-title {
+  color: red ;
+  font-weight: bold }
+
+div.topic {
+  margin: 2em }
+
+h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
+h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
+  margin-top: 0.4em }
+
+h1.title {
+  text-align: center }
+
+h2.subtitle {
+  text-align: center }
+
+hr.docutils {
+  width: 75% }
+
+img.align-left {
+  clear: left }
+
+img.align-right {
+  clear: right }
+
+ol.simple, ul.simple {
+  margin-bottom: 1em }
+
+ol.arabic {
+  list-style: decimal }
+
+ol.loweralpha {
+  list-style: lower-alpha }
+
+ol.upperalpha {
+  list-style: upper-alpha }
+
+ol.lowerroman {
+  list-style: lower-roman }
+
+ol.upperroman {
+  list-style: upper-roman }
+
+p.attribution {
+  text-align: right ;
+  margin-left: 50% }
+
+p.caption {
+  font-style: italic }
+
+p.credits {
+  font-style: italic ;
+  font-size: smaller }
+
+p.label {
+  white-space: nowrap }
+
+p.rubric {
+  font-weight: bold ;
+  font-size: larger ;
+  color: maroon ;
+  text-align: center }
+
+p.sidebar-title {
+  font-family: sans-serif ;
+  font-weight: bold ;
+  font-size: larger }
+
+p.sidebar-subtitle {
+  font-family: sans-serif ;
+  font-weight: bold }
+
+p.topic-title {
+  font-weight: bold }
+
+pre.address {
+  margin-bottom: 0 ;
+  margin-top: 0 ;
+  font-family: serif ;
+  font-size: 100% }
+
+pre.literal-block, pre.doctest-block {
+  margin-left: 2em ;
+  margin-right: 2em ;
+  background-color: #eeeeee }
+
+span.classifier {
+  font-family: sans-serif ;
+  font-style: oblique }
+
+span.classifier-delimiter {
+  font-family: sans-serif ;
+  font-weight: bold }
+
+span.interpreted {
+  font-family: sans-serif }
+
+span.option {
+  white-space: nowrap }
+
+span.pre {
+  white-space: pre }
+
+span.problematic {
+  color: red }
+
+span.section-subtitle {
+  /* font-size relative to parent (h1..h6 element) */
+  font-size: 80% }
+
+table.citation {
+  border-left: solid 1px gray;
+  margin-left: 1px }
+
+table.docinfo {
+  margin: 2em 4em }
+
+table.docutils {
+  margin-top: 0.5em ;
+  margin-bottom: 0.5em }
+
+table.footnote {
+  border-left: solid 1px black;
+  margin-left: 1px }
+
+table.docutils td, table.docutils th,
+table.docinfo td, table.docinfo th {
+  padding-left: 0.5em ;
+  padding-right: 0.5em ;
+  vertical-align: top }
+
+table.docutils th.field-name, table.docinfo th.docinfo-name {
+  font-weight: bold ;
+  text-align: left ;
+  white-space: nowrap ;
+  padding-left: 0 }
+
+h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
+h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
+  font-size: 100% }
+
+tt.docutils {
+  background-color: #eeeeee }
+
+ul.auto-toc {
+  list-style-type: none }

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/docs.css
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/docs.css b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/docs.css
new file mode 100644
index 0000000..3d99c95
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/docs.css
@@ -0,0 +1,109 @@
+/*
+Stylesheet for use with Docutils.
+
+Customized for PyGreSQL docs.
+*/
+
+@import url(default.css);
+
+body {
+	margin: 8pt;
+	padding: 8pt;
+	background-color: #f8f8ff;
+	color: #000008;
+	text-align: justify;
+	font-family: Arial, Verdana, Helvetica, sans-serif;
+	font-size: 11pt; }
+
+a {
+	text-decoration: none; }
+
+a:hover {
+	text-decoration: underline; }
+
+.title, .subtitle {
+	color: #003; }
+
+.topic-title {
+	color: #006;
+	font-size: 14pt; }
+
+h1, h2, h3, h4 {
+	color: #006; }
+
+h1 {
+	padding-top: 20pt;
+	font-size: 17pt; }
+
+div#pygresql-changelog div.section h1 {
+	font-size: 12pt;
+}
+
+h1.title {
+	font-size: 20pt;
+}
+
+h2 {
+	font-size: 14pt; }
+
+h2.subtitle {
+	font-size: 16pt;
+}
+
+h3 {
+	font-size: 13pt; }
+
+h4 {
+	font-size: 12pt; }
+
+a.toc-backref {
+	color: #006; }
+
+ul.simple li {
+	margin-top: 4pt; }
+
+ul.simple ul li {
+	margin-top: 2pt; }
+
+div.contents ul {
+	list-style-type: none; }
+
+div.contents ul li {
+	margin-top: 4pt;
+	font-size: 12pt; }
+
+div.contents ul ul li {
+	margin-top: 2pt;
+	font-size: 11pt; }
+
+cite {
+	font-style: normal;
+	font-family: monospace;
+	font-weight: bold; }
+
+table.field-list th.field-name {
+	font-style: normal;
+	font-family: monospace;
+	font-weight: bold; }
+
+tt.literal, pre.literal-block {
+	font-style: normal;
+	font-family: monospace;
+	font-weight: bold;
+	background-color: #fff; }
+
+tt.literal {
+	padding-left: 2pt;
+	padding-right: 2pt; }
+
+pre.literal-block {
+	padding: 4pt;
+	border: 1px dotted #ccc; }
+
+table.docutils {
+	border-spacing: 0px;
+	border-collapse: collapse; }
+
+table.docutils td {
+	margin: 0px;
+	padding: 2pt; }

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/future.html
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/future.html b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/future.html
new file mode 100644
index 0000000..358de81
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/future.html
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
+<title>PyGreSQL future directions</title>
+<link rel="stylesheet" href="docs.css" type="text/css" />
+</head>
+<body>
+<div class="document" id="pygresql-future-directions">
+<h1 class="title">PyGreSQL future directions</h1>
+<div class="section">
+<h1><a id="to-do" name="to-do">To Do</a></h1>
+<ul class="simple">
+<li>Documentation for the pgdb module (everything specific to PyGreSQL).</li>
+<li>The large object and direct access functions need much more attention.</li>
+<li>The C module needs to be cleaned up and redundant code merged,
+and should get its own unit test module.</li>
+<li>The fetch method should use real cursors.</li>
+<li>What shall we do with the &quot;tutorial&quot; directory
+(it's rather a tutorial for Postgres/SQL than for PyGreSQL,
+it's using only the query method from the classic pg module and
+no other PyGreSQL functionality, it's rather a demo than a tutorial)?</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="proposed-patches" name="proposed-patches">Proposed Patches</a></h1>
+<ul class="simple">
+<li>Notice handling with PQsetNoticeReceiver and PQsetNoticeProcessor
+(one possible implementation was already suggested by Dmitry Dvoinikov
+<a class="reference" href="http://mailman.vex.net/pipermail/pygresql/2005-November/001530.html">http://mailman.vex.net/pipermail/pygresql/2005-November/001530.html</a>).
+Maybe also make notifications accessible via the optional cursor and
+connection attribute &quot;messages&quot; proposed in the DB-API specs.</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="wish-list" name="wish-list">Wish List</a></h1>
+<ul class="simple">
+<li>Make SQLSTATE error codes available.</li>
+<li>Make use of PQexecParams() and PQprepare(). This could speed up
+executemany() and allow retrieving binary data directly by setting
+the resultFormat parameter to one.</li>
+<li>Support optional &quot;errorhandler&quot; extension.</li>
+<li>Support optional cursor and connection attribute &quot;messages&quot;.</li>
+<li>Connection as context manager (see <a class="reference" href="http://tinyurl.com/6j9cef">http://tinyurl.com/6j9cef</a>).</li>
+<li>Users should be able to register their own types with _pg.</li>
+<li>Let pg and pgdb support namedtuples (as available in Py 2.6).
+pg could get a new method namedresult(), and pgdb could provide
+a row factory for namedtuples (similar to sqlite3).</li>
+<li>New methods in the classic module, similar to getresult() and
+dictresult(), but returning dictionaries of rows instead of lists
+of rows (with primary key or oids as keys).</li>
+<li>Make PyGreSQL thread-safe on the connection level.</li>
+<li>The API documentation could be created with Epydoc.</li>
+<li>Write a tutorial for beginners and advanced use.</li>
+<li>More and better documented examples.</li>
+</ul>
+</div>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/future.txt
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/future.txt b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/future.txt
new file mode 100644
index 0000000..8dec0fb
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/future.txt
@@ -0,0 +1,48 @@
+==========================
+PyGreSQL future directions
+==========================
+
+
+To Do
+-----
+
+- Documentation for the pgdb module (everything specific to PyGreSQL).
+- The large object and direct access functions need much more attention.
+- The C module needs to be cleaned up and redundant code merged,
+  and should get its own unit test module.
+- The fetch method should use real cursors.
+- What shall we do with the "tutorial" directory
+  (it's rather a tutorial for Postgres/SQL than for PyGreSQL,
+  it's using only the query method from the classic pg module and
+  no other PyGreSQL functionality, it's rather a demo than a tutorial)?
+
+Proposed Patches
+----------------
+
+- Notice handling with PQsetNoticeReceiver and PQsetNoticeProcessor
+  (one possible implementation was already suggested by Dmitry Dvoinikov
+  http://mailman.vex.net/pipermail/pygresql/2005-November/001530.html).
+  Maybe also make notifications accessible via the optional cursor and
+  connection attribute "messages" proposed in the DB-API specs.
+
+Wish List
+---------
+
+- Make SQLSTATE error codes available.
+- Make use of PQexecParams() and PQprepare(). This could speed up
+  executemany() and allow retrieving binary data directly by setting
+  the resultFormat parameter to one.
+- Support optional "errorhandler" extension.
+- Support optional cursor and connection attribute "messages".
+- Connection as context manager (see http://tinyurl.com/6j9cef).
+- Users should be able to register their own types with _pg.
+- Let pg and pgdb support namedtuples (as available in Py 2.6).
+  pg could get a new method namedresult(), and pgdb could provide
+  a row factory for namedtuples (similar to sqlite3).
+- New methods in the classic module, similar to getresult() and
+  dictresult(), but returning dictionaries of rows instead of lists
+  of rows (with primary key or oids as keys).
+- Make PyGreSQL thread-safe on the connection level.
+- The API documentation could be created with Epydoc.
+- Write a tutorial for beginners and advanced use.
+- More and better documented examples.

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/index.html
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/index.html b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/index.html
new file mode 100644
index 0000000..be2b37c
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/index.html
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>PyGreSQL - PostgreSQL module for Python</title>
+  <meta http-equiv="Content-Type" content="text/html; CHARSET=iso-8859-1">
+  <meta name="description" content="PyGreSQL homepage">
+  <meta name="keywords" content="PyGreSQL, Python, PostgreSQL, database, driver, DB-API, pg, pgdb">
+  <style type="text/css">
+  <!--
+  body {
+    margin: 8pt;
+    padding: 8pt;
+    background-color: #f8f8ff;
+    color: #000008;
+    text-align: justify;
+    font-family: Arial, Verdana, Helvetica, sans-serif;
+    font-size: 12pt; }
+  a {
+    text-decoration: none; }
+  a:hover {
+    text-decoration: underline; }
+  h1, h2 {
+    color: #006; }
+  h1 {
+    padding-top: 16pt;
+    font-size: 18pt; }
+  h2 {
+    padding-top: 8pt;
+    font-size: 16pt; }
+  ul {
+    list-style-type: none; }
+  ul li {
+    margin-top: 4pt;
+    font-size: 13pt; }
+  ul ul li {
+    margin-top: 2pt;
+    font-size: 12pt; }
+  #title {
+    position: absolute;
+    top: 0px;
+    left: 16px;
+    font-size: 36px;
+    font-style: italic;
+    letter-spacing: 5px;
+    color: #666;
+    z-index: 600; }
+  #version {
+    position: absolute;
+    top: 42px;
+    left: 64px;
+    font-size: 11px;
+    font-style: italic;
+    letter-spacing: 5px;
+    color: #000;
+    z-index: 610; }
+  #banner {
+    position: absolute;
+    padding-top: 0px;
+    padding-bottom: 0px;
+    text-align: center;
+    top: 27px;
+    left: 0px;
+    width: 100%;
+    height: 30px;
+    background: #ccd4e2;
+    z-index: 550;
+    border-top: 1px #999 solid;
+    border-bottom: 1px #999 solid; }
+  #bannertext {
+    position: absolute;
+    text-align: center;
+    font-size: 14px;
+    font-weight: bold;
+    letter-spacing: 4px;
+    color: #000066;
+    top: 39px;
+    right: 5%;
+    z-index: 560; }
+  #content {
+    margin: 36px 20px 2px 20px;
+    padding: 4pt 8pt 4pt 16pt;
+    border-left: 1px dashed #555;
+    border-bottom: 1px dashed #555; }
+  #copyright {
+    padding-top: 6pt;
+    font-size: 10pt;
+    color: #333;
+    text-align: center; }
+  -->
+  </style>
+</head>
+
+<body>
+
+  <div id="title">PyGreSQL</div>
+  <div id="version">Version 4.0</div>
+  <div id="banner"></div>
+  <div id="bannertext">:: PostgreSQL module for Python ::</div>
+
+  <div id="content">
+
+    <h1>PyGreSQL &ndash; PostgreSQL module for Python</h1>
+
+    <p><b>PyGreSQL</b> is an <em>open-source</em>
+    <a href="http://www.python.org">Python</a> module
+    that interfaces to a <a href="http://www.postgresql.org">PostgreSQL</a> database.
+    It embeds the PostgreSQL query library to allow easy use of the powerful PostgreSQL
+    features from a Python script.</p>
+
+    <p>This software is copyright &copy; 1995, Pascal Andre.<br />
+    Further modifications are copyright &copy; 1997-2006 by D'Arcy J.M. Cain.</p>
+
+    <p>See the
+    <a href="readme.html#copyright-notice">copyright notice</a>
+    for detailed information.</p>
+
+    <a name="documentation"></a>
+    <h2>Documentation</h2>
+
+    <p>The following information is also available in the <b>docs</b> folder of the distribution:</p>
+
+    <ul>
+      <li><a href="readme.html"><b>readme</b> &ndash; General Information</a>
+        <ul>
+          <li><a href="readme.html#copyright-notice">Copyright notice</a></li>
+          <li><a href="readme.html#introduction">Introduction</a></li>
+          <li><a href="readme.html#where-to-get">Where to get ... ?</a></li>
+          <li><a href="readme.html#distribution-files">Distribution files</a></li>
+        </ul></li>
+      <li><a href="announce.html"><b>announce</b> &ndash; Last announcement</a></li>
+      <li><a href="install.html"><b>install</b> &ndash; Installation</a></li>
+      <li><a href="pg.html"><b>pg</b> &ndash; The &ldquo;classic&rdquo; PyGreSQL interface</a></li>
+      <li><a href="pgdb.html"><b>pgdb</b> &ndash; The DB-API compliant PyGreSQL interface</a></li>
+      <li><a href="changelog.html"><b>changelog</b> &ndash; Historical changes</a></li>
+      <li><a href="future.html"><b>future</b> &ndash; Future directions</a></li>
+    </ul>
+
+    <a name="cvs"></a>
+    <h2>CVS Access</h2>
+
+    <p>The
+    <a href="http://www.pygresql.org/cvsweb.cgi/pygresql">CVS repository</a>
+    is available through
+    <a href="http://www.freebsd.org/projects/cvsweb.html">CVSWeb</a>.</p>
+
+    <a name="mailinglist"></a>
+    <h2>Mailing list</h2>
+
+    <p>You can join
+    <a href="http://mailman.vex.net/mailman/listinfo/pygresql">the mailing
+    list</a> to discuss future development of the PyGreSQL interface.
+    This is usually a low volume list except when there are new features
+    being added.</p>
+
+    <a name="examples"></a>
+    <h2>Examples</h2>
+
+    <p>I am starting to collect examples of applications that use PyGreSQL.
+    So far I only have a few but if you have an example for me, you can
+    either send me the files or the URL for me to point to.</p>
+
+    <p>Here is a <a href="http://ontario.bikerides.ca">List of motorcycle
+    rides in Ontario</a> that uses a PostgreSQL database to store the
+    rides. There is a link at the bottom of the page to view the source code.</p>
+
+    <p>
+    Oleg Broytmann has written a simple example
+    <a href="http://phd.pp.ru/Software/Python/#rgb_example">RGB
+    database demo</a>.
+    </p>
+
+  </div>
+
+  <div id="copyright">
+  Created and maintained by D'Arcy J.M. Cain &ndash;
+  last update: 17 February 2006.<br />
+  If you have any comments, <a href="mailto:darcy@pygresql.org">send mail</a> to me.
+  </div>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/install.html
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/install.html b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/install.html
new file mode 100644
index 0000000..f1e48c0
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/install.html
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
+<title>PyGreSQL Installation</title>
+<link rel="stylesheet" href="docs.css" type="text/css" />
+</head>
+<body>
+<div class="document" id="pygresql-installation">
+<h1 class="title">PyGreSQL Installation</h1>
+<div class="contents topic">
+<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
+<ul class="auto-toc simple">
+<li><a class="reference" href="#general" id="id1" name="id1">1&nbsp;&nbsp;&nbsp;General</a></li>
+<li><a class="reference" href="#installing-from-a-binary-distribution" id="id2" name="id2">2&nbsp;&nbsp;&nbsp;Installing from a Binary Distribution</a></li>
+<li><a class="reference" href="#installing-from-source" id="id3" name="id3">3&nbsp;&nbsp;&nbsp;Installing from Source</a><ul class="auto-toc">
+<li><a class="reference" href="#building-and-installing-with-distutils" id="id4" name="id4">3.1&nbsp;&nbsp;&nbsp;Building and installing with Distutils</a></li>
+<li><a class="reference" href="#compiling-manually" id="id5" name="id5">3.2&nbsp;&nbsp;&nbsp;Compiling Manually</a></li>
+<li><a class="reference" href="#stand-alone" id="id6" name="id6">3.3&nbsp;&nbsp;&nbsp;Stand-Alone</a></li>
+<li><a class="reference" href="#built-in-to-python-interpreter" id="id7" name="id7">3.4&nbsp;&nbsp;&nbsp;Built-in to Python interpreter</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id1" id="general" name="general">1&nbsp;&nbsp;&nbsp;General</a></h1>
+<p>You must first have installed Python and PostgreSQL on your system.
+If you want to access remote database only, you don't need to install
+the full PostgreSQL server, but only the C interface (libpq). If you
+are on Windows, make sure that the directory with libpq.dll is in your
+<tt class="docutils literal"><span class="pre">PATH</span></tt> environment variable.</p>
+<p>The current version of PyGreSQL has been tested with Python 2.5 and
+PostGreSQL 8.3. Older version should work as well, but you will need
+at least Python 2.3 and PostgreSQL 7.4.</p>
+<p>PyGreSQL will be installed as three modules, a dynamic module called
+_pg.pyd, and two pure Python wrapper modules called pg.py and pgdb.py.
+All three files will be installed directly into the Python site-packages
+directory. To uninstall PyGreSQL, simply remove these three files again.</p>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id2" id="installing-from-a-binary-distribution" name="installing-from-a-binary-distribution">2&nbsp;&nbsp;&nbsp;Installing from a Binary Distribution</a></h1>
+<p>This is the easiest way to install PyGreSQL.</p>
+<p>You can currently download PyGreSQL as Linux RPM, NetBSD package and Windows
+installer. Make sure the required Python version of the binary package matches
+the Python version you have installed.</p>
+<p>Install the package as usual on your system.</p>
+<p>Note that the documentation is currently only included in the source package.</p>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id3" id="installing-from-source" name="installing-from-source">3&nbsp;&nbsp;&nbsp;Installing from Source</a></h1>
+<p>If you want to install PyGreSQL from Source, or there is no binary
+package available for your platform, follow these instructions.</p>
+<p>Make sure the Python header files and PostgreSQL client and server header
+files are installed. These come usually with the &quot;devel&quot; packages on Unix
+systems and the installer executables on Windows systems.</p>
+<p>If you are using a precompiled PostgreSQL, you will also need the pg_config
+tool. This is usually also part of the &quot;devel&quot; package on Unix, and will be
+installed as part of the database server feature on Windows systems.</p>
+<div class="section">
+<h2><a class="toc-backref" href="#id4" id="building-and-installing-with-distutils" name="building-and-installing-with-distutils">3.1&nbsp;&nbsp;&nbsp;Building and installing with Distutils</a></h2>
+<p>You can build and install PyGreSQL using
+<a class="reference" href="http://docs.python.org/install/">Distutils</a>.</p>
+<p>Download and unpack the PyGreSQL source tarball if you haven't already done so.</p>
+<p>Type the following commands to build and install PyGreSQL:</p>
+<pre class="literal-block">
+python setup.py build
+python setup.py install
+</pre>
+<p>If you are using <a class="reference" href="http://www.mingw.org">MinGW</a> to build PyGreSQL under
+Microsoft Windows, please note that Python newer version 2.3 is using msvcr71
+instead of msvcrt as its common runtime library. You can allow for that by
+editing the file <tt class="docutils literal"><span class="pre">%MinGWpath%/lib/gcc/%MinGWversion%/specs</span></tt> and changing
+the entry that reads <tt class="docutils literal"><span class="pre">-lmsvcrt</span></tt> to <tt class="docutils literal"><span class="pre">-lmsvcr71</span></tt>. You may also need to copy
+<tt class="docutils literal"><span class="pre">libpq.lib</span></tt> to <tt class="docutils literal"><span class="pre">libpq.a</span></tt> in the PostgreSQL <tt class="docutils literal"><span class="pre">lib</span></tt> directory. Then use
+the following command to build and install PyGreSQL:</p>
+<pre class="literal-block">
+python setup.py build -c mingw32 install
+</pre>
+<p>Now you should be ready to use PyGreSQL.</p>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id5" id="compiling-manually" name="compiling-manually">3.2&nbsp;&nbsp;&nbsp;Compiling Manually</a></h2>
+<p>The source file for compiling the dynamic module is called pgmodule.c.
+You have two options. You can compile PyGreSQL as a stand-alone module
+or you can build it into the Python interpreter.</p>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id6" id="stand-alone" name="stand-alone">3.3&nbsp;&nbsp;&nbsp;Stand-Alone</a></h2>
+<ul>
+<li><p class="first">In the directory containing <tt class="docutils literal"><span class="pre">pgmodule.c</span></tt>, run the following command:</p>
+<pre class="literal-block">
+cc -fpic -shared -o _pg.so -I$PYINC -I$PGINC -I$PSINC -L$PGLIB -lpq pgmodule.c
+</pre>
+<p>where you have to set:</p>
+<pre class="literal-block">
+PYINC = path to the Python include files
+        (usually something like /usr/include/python)
+PGINC = path to the PostgreSQL client include files
+        (something like /usr/include/pgsql or /usr/include/postgresql)
+PSINC = path to the PostgreSQL server include files
+        (like /usr/include/pgsql/server or /usr/include/postgresql/server)
+PGLIB = path to the PostgreSQL object code libraries (usually /usr/lib)
+</pre>
+<p>If you are not sure about the above paths, try something like:</p>
+<pre class="literal-block">
+PYINC=`find /usr -name Python.h`
+PGINC=`find /usr -name libpq-fe.h`
+PSINC=`find /usr -name postgres.h`
+PGLIB=`find /usr -name libpq.so`
+</pre>
+<p>If you have the <tt class="docutils literal"><span class="pre">pg_config</span></tt> tool installed, you can set:</p>
+<pre class="literal-block">
+PGINC=`pg_config --includedir`
+PSINC=`pg_config --includedir-server`
+PGLIB=`pg_config --libdir`
+</pre>
+<p>Some options may be added to this line:</p>
+<pre class="literal-block">
+-DNO_DEF_VAR   no default variables support
+-DNO_DIRECT    no direct access methods
+-DNO_LARGE     no large object support
+-DNO_PQSOCKET  if running an older PostgreSQL
+</pre>
+<p>Define <tt class="docutils literal"><span class="pre">NO_PQSOCKET</span></tt> if you are using a version of PostgreSQL before 6.4
+that does not have the PQsocket function. The other options will be
+described in the next sections.</p>
+<p>On some systems you may need to include <tt class="docutils literal"><span class="pre">-lcrypt</span></tt> in the list of libraries
+to make it compile.</p>
+</li>
+<li><p class="first">Test the new module. Something like the following should work:</p>
+<pre class="literal-block">
+$ python
+
+&gt;&gt;&gt; import _pg
+&gt;&gt;&gt; db = _pg.connect('thilo','localhost')
+&gt;&gt;&gt; db.query(&quot;INSERT INTO test VALUES ('ping','pong')&quot;)
+18304
+&gt;&gt;&gt; db.query(&quot;SELECT * FROM test&quot;)
+eins|zwei
+----+----
+ping|pong
+(1 row)
+</pre>
+</li>
+<li><p class="first">Finally, move the <tt class="docutils literal"><span class="pre">_pg.so</span></tt>, <tt class="docutils literal"><span class="pre">pg.py</span></tt>, and <tt class="docutils literal"><span class="pre">pgdb.py</span></tt> to a directory in
+your <tt class="docutils literal"><span class="pre">PYTHONPATH</span></tt>. A good place would be <tt class="docutils literal"><span class="pre">/usr/lib/python/site-packages</span></tt>
+if your Python modules are in <tt class="docutils literal"><span class="pre">/usr/lib/python</span></tt>.</p>
+</li>
+</ul>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id7" id="built-in-to-python-interpreter" name="built-in-to-python-interpreter">3.4&nbsp;&nbsp;&nbsp;Built-in to Python interpreter</a></h2>
+<ul>
+<li><p class="first">Find the directory where your <tt class="docutils literal"><span class="pre">Setup</span></tt> file lives (usually in the <tt class="docutils literal"><span class="pre">Modules</span></tt>
+subdirectory) in the Python source hierarchy and copy or symlink the
+<tt class="docutils literal"><span class="pre">pgmodule.c</span></tt> file there.</p>
+</li>
+<li><p class="first">Add the following line to your 'Setup' file:</p>
+<pre class="literal-block">
+_pg  pgmodule.c -I$PGINC -I$PSINC -L$PGLIB -lpq
+</pre>
+<p>where:</p>
+<pre class="literal-block">
+PGINC = path to the PostgreSQL client include files (see above)
+PSINC = path to the PostgreSQL server include files (see above)
+PGLIB = path to the PostgreSQL object code libraries (see above)
+</pre>
+<p>Some options may be added to this line:</p>
+<pre class="literal-block">
+-DNO_DEF_VAR   no default variables support
+-DNO_DIRECT    no direct access methods
+-DNO_LARGE     no large object support
+-DNO_PQSOCKET  if running an older PostgreSQL (see above)
+</pre>
+<p>On some systems you may need to include <tt class="docutils literal"><span class="pre">-lcrypt</span></tt> in the list of libraries
+to make it compile.</p>
+</li>
+<li><p class="first">If you want a shared module, make sure that the <tt class="docutils literal"><span class="pre">shared</span></tt> keyword is
+uncommented and add the above line below it. You used to need to install
+your shared modules with <tt class="docutils literal"><span class="pre">make</span> <span class="pre">sharedinstall</span></tt> but this no longer seems
+to be true.</p>
+</li>
+<li><p class="first">Copy <tt class="docutils literal"><span class="pre">pg.py</span></tt> to the lib directory where the rest of your modules are.
+For example, that's <tt class="docutils literal"><span class="pre">/usr/local/lib/Python</span></tt> on my system.</p>
+</li>
+<li><p class="first">Rebuild Python from the root directory of the Python source hierarchy by
+running <tt class="docutils literal"><span class="pre">make</span> <span class="pre">-f</span> <span class="pre">Makefile.pre.in</span> <span class="pre">boot</span></tt> and <tt class="docutils literal"><span class="pre">make</span> <span class="pre">&amp;&amp;</span> <span class="pre">make</span> <span class="pre">install</span></tt>.</p>
+</li>
+<li><p class="first">For more details read the documentation at the top of <tt class="docutils literal"><span class="pre">Makefile.pre.in</span></tt>.</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/install.txt
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/install.txt b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/install.txt
new file mode 100644
index 0000000..3f19a2c
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/install.txt
@@ -0,0 +1,188 @@
+=====================
+PyGreSQL Installation
+=====================
+
+.. sectnum::
+.. contents:: Contents
+
+
+General
+=======
+
+You must first have installed Python and PostgreSQL on your system.
+If you want to access remote database only, you don't need to install
+the full PostgreSQL server, but only the C interface (libpq). If you
+are on Windows, make sure that the directory with libpq.dll is in your
+``PATH`` environment variable.
+
+The current version of PyGreSQL has been tested with Python 2.5 and
+PostGreSQL 8.3. Older version should work as well, but you will need
+at least Python 2.3 and PostgreSQL 7.4.
+
+PyGreSQL will be installed as three modules, a dynamic module called
+_pg.pyd, and two pure Python wrapper modules called pg.py and pgdb.py.
+All three files will be installed directly into the Python site-packages
+directory. To uninstall PyGreSQL, simply remove these three files again.
+
+
+Installing from a Binary Distribution
+=====================================
+
+This is the easiest way to install PyGreSQL.
+
+You can currently download PyGreSQL as Linux RPM, NetBSD package and Windows
+installer. Make sure the required Python version of the binary package matches
+the Python version you have installed.
+
+Install the package as usual on your system.
+
+Note that the documentation is currently only included in the source package.
+
+
+Installing from Source
+======================
+
+If you want to install PyGreSQL from Source, or there is no binary
+package available for your platform, follow these instructions.
+
+Make sure the Python header files and PostgreSQL client and server header
+files are installed. These come usually with the "devel" packages on Unix
+systems and the installer executables on Windows systems.
+
+If you are using a precompiled PostgreSQL, you will also need the pg_config
+tool. This is usually also part of the "devel" package on Unix, and will be
+installed as part of the database server feature on Windows systems.
+
+Building and installing with Distutils
+--------------------------------------
+
+You can build and install PyGreSQL using
+`Distutils <http://docs.python.org/install/>`_.
+
+Download and unpack the PyGreSQL source tarball if you haven't already done so.
+
+Type the following commands to build and install PyGreSQL::
+
+    python setup.py build
+    python setup.py install
+
+If you are using `MinGW <http://www.mingw.org>`_ to build PyGreSQL under
+Microsoft Windows, please note that Python newer version 2.3 is using msvcr71
+instead of msvcrt as its common runtime library. You can allow for that by
+editing the file ``%MinGWpath%/lib/gcc/%MinGWversion%/specs`` and changing
+the entry that reads ``-lmsvcrt`` to ``-lmsvcr71``. You may also need to copy
+``libpq.lib`` to ``libpq.a`` in the PostgreSQL ``lib`` directory. Then use
+the following command to build and install PyGreSQL::
+
+    python setup.py build -c mingw32 install
+
+Now you should be ready to use PyGreSQL.
+
+Compiling Manually
+------------------
+
+The source file for compiling the dynamic module is called pgmodule.c.
+You have two options. You can compile PyGreSQL as a stand-alone module
+or you can build it into the Python interpreter.
+
+Stand-Alone
+-----------
+
+* In the directory containing ``pgmodule.c``, run the following command::
+
+    cc -fpic -shared -o _pg.so -I$PYINC -I$PGINC -I$PSINC -L$PGLIB -lpq pgmodule.c
+
+  where you have to set::
+
+    PYINC = path to the Python include files
+            (usually something like /usr/include/python)
+    PGINC = path to the PostgreSQL client include files
+            (something like /usr/include/pgsql or /usr/include/postgresql)
+    PSINC = path to the PostgreSQL server include files
+            (like /usr/include/pgsql/server or /usr/include/postgresql/server)
+    PGLIB = path to the PostgreSQL object code libraries (usually /usr/lib)
+
+  If you are not sure about the above paths, try something like::
+
+    PYINC=`find /usr -name Python.h`
+    PGINC=`find /usr -name libpq-fe.h`
+    PSINC=`find /usr -name postgres.h`
+    PGLIB=`find /usr -name libpq.so`
+
+  If you have the ``pg_config`` tool installed, you can set::
+
+    PGINC=`pg_config --includedir`
+    PSINC=`pg_config --includedir-server`
+    PGLIB=`pg_config --libdir`
+
+  Some options may be added to this line::
+
+    -DNO_DEF_VAR   no default variables support
+    -DNO_DIRECT    no direct access methods
+    -DNO_LARGE     no large object support
+    -DNO_PQSOCKET  if running an older PostgreSQL
+
+  Define ``NO_PQSOCKET`` if you are using a version of PostgreSQL before 6.4
+  that does not have the PQsocket function. The other options will be
+  described in the next sections.
+
+  On some systems you may need to include ``-lcrypt`` in the list of libraries
+  to make it compile.
+
+* Test the new module. Something like the following should work::
+
+    $ python
+
+    >>> import _pg
+    >>> db = _pg.connect('thilo','localhost')
+    >>> db.query("INSERT INTO test VALUES ('ping','pong')")
+    18304
+    >>> db.query("SELECT * FROM test")
+    eins|zwei
+    ----+----
+    ping|pong
+    (1 row)
+
+* Finally, move the ``_pg.so``, ``pg.py``, and ``pgdb.py`` to a directory in
+  your ``PYTHONPATH``. A good place would be ``/usr/lib/python/site-packages``
+  if your Python modules are in ``/usr/lib/python``.
+
+Built-in to Python interpreter
+------------------------------
+
+* Find the directory where your ``Setup`` file lives (usually in the ``Modules``
+  subdirectory) in the Python source hierarchy and copy or symlink the
+  ``pgmodule.c`` file there.
+
+* Add the following line to your 'Setup' file::
+
+    _pg  pgmodule.c -I$PGINC -I$PSINC -L$PGLIB -lpq
+
+  where::
+
+    PGINC = path to the PostgreSQL client include files (see above)
+    PSINC = path to the PostgreSQL server include files (see above)
+    PGLIB = path to the PostgreSQL object code libraries (see above)
+
+  Some options may be added to this line::
+
+    -DNO_DEF_VAR   no default variables support
+    -DNO_DIRECT    no direct access methods
+    -DNO_LARGE     no large object support
+    -DNO_PQSOCKET  if running an older PostgreSQL (see above)
+
+  On some systems you may need to include ``-lcrypt`` in the list of libraries
+  to make it compile.
+
+* If you want a shared module, make sure that the ``shared`` keyword is
+  uncommented and add the above line below it. You used to need to install
+  your shared modules with ``make sharedinstall`` but this no longer seems
+  to be true.
+
+* Copy ``pg.py`` to the lib directory where the rest of your modules are.
+  For example, that's ``/usr/local/lib/Python`` on my system.
+
+* Rebuild Python from the root directory of the Python source hierarchy by
+  running ``make -f Makefile.pre.in boot`` and ``make && make install``.
+
+* For more details read the documentation at the top of ``Makefile.pre.in``.


Mime
View raw message