Changes from 2.5 to 3.0
 1) Added support for Python 3.
 2) Added support for cast expressions as requested by Alex Vanderwoude.
 3) Added support for index organized tables.
 4) Added the characters $ and # to the list of valid characters since they are
    part of identifiers which may be found in PL/SQL code.
 5) Added support for defining the terminator that is used for completing a
    statement so that the SQL can be written back out again if desired. Thanks
    to Micah Friesen for the patch.
 6) Added support for wapped packages which aren't quite as nicely formed as
    their source equivalents -- in particular the semicolon is not present.
 7) Added support for updating anonymous views.
 8) Added support for the cache clause of the create sequence statement as
    requested by Micah Friesen.
 9) Allow nothing to follow the dashes that constitute a line comment; thanks to
    Micah Friesen for discovering this.
10) Added support for NCLOB type columns.
11) Ensure that users and public synonyms do not have an owner added to them
    since they do not have owners.
12) As requested by Robert Ritchie, show the row that failed instead of having
    to work your way through the list of all rows which could be considerable.
13) Added support for a range clause as requested by Micah Friesen.
14) Added support for columns declared with the syntax varchar(6 char) instead
    of varchar2(6).

Changes from 2.4 to 2.5
 1) Use exception classes rather than string exceptions everywhere.
 2) Added support for specifying "as sysdba" and "as sysoper" in the connection
    string and set the necessary privileges when connecting.
 3) Added support for getting constant representations for binary data, CLOB
    and BLOB values.
 4) Added support for Oracle context objects.
 5) Fixed support for interval data types.
 6) In cx_OracleParser, added a simple SQL parser and used that to replace the
    module cx_SQL.
 7) In cx_OracleParser, added support for additional SQL statements or options
    on existing statements.
 8) In cx_OracleObject, constraints on objects that have been dropped are now
    ignored.
 9) In cx_OracleObject, trailing lines are no longer stripped from the source
    that is returned from dba_source as wrapped code sometimes requires the
    blank line in Oracle 10g as reported by Robert Ritchie.
10) In cx_OracleObject, added support for option --name-file which is the same
    as --name except that the names are listed in the specified file, one per
    line; roles can also be included if the names refer to roles.
11) In cx_OracleObject, always set the owner when an object is exported so
    that referenced constraints are prefixed with connect statements as
    needed.
12) In cx_OracleObject, added support when describing views to include the
    column names in the SQL for the view.
13) In cx_OracleObject, added support for domain indexes.
14) In cx_OracleObject, added support for Oracle 11.2.
15) In cx_OracleObject, added support for using flashback queries when
    performing describes, either by timestamp or by SCN.
16) In cx_OracleEx, added method for getting the current date from the
    database.
17) In cx_OracleEx, added methods for performing simple insert, update and
    delete statements based on the data passed into those methods.
18) In cx_OracleEx, show the number of rows successfully processed before an
    error occurs as requested by Gordon den Otter.
19) In cx_OracleEx, added method that can be used as an output type handler
    for cx_Oracle that returns all strings as Unicode strings.
20) Added module cx_PatchCommands which enables the use of the simple SQL
    parser for processing SQL statements and reporting more useful information
    than is reported by SQL*Plus.
21) Dropped module cx_RecordSet which has been replaced by more advanced code
    in the ceDatabase module in the cx_PyGenLib project.
22) Dropped module cx_CursorCache which is not used and only contained a few
    lines of code anyway.

Changes from 2.3 to 2.4
 1) In cx_ExportData and cx_ImportData, use cx_Logging to output messages
    rather than write directly to stderr.
 2) In cx_ImportData, added phrase "(n% of file)" to the reporting message when
    possible as requested by Don Reid.
 3) In cx_ImportData, replaced use of executemanyprepared() with executemany()
    and bind arrays instead of dictionaries which actually improves performance
    by about 20-25% in some cases.
 4) In cx_OracleDebugger, fixed case of message attribute.
 5) In cx_OracleObject, added support for describing comments on tables and
    columns.
 6) In cx_OracleObject, eliminate identical grants from the output.
 7) In cx_OracleObject, export the roles before the users as the reason the
    roles are included is because they are administered by the users and the
    grants will by definition fail.
 8) In cx_OracleObject, create the directory before any exporting actually
    takes place in order to handle the situation when no objects end up being
    exported, as requested by Micah Friesen.
 9) In cx_OracleParser, added support for a select for update statement
    without a where clause.
10) In cx_OracleUtils, ignore invalid objects of type "UNDEFINED" which will
    fail to compile anyway.
11) In cx_SQL, added support for compiling comment statements.
12) In cx_SQL, added additional case statement to handle the modify constraint
    clause.
13) cx_Oracle 4.2 is now required.
14) Added new module cx_OracleEx which supports logging of Oracle statements
    and has a few additional convenient methods.
15) Removed module cx_DumpData which was only used by DumpData in the
    cx_OracleTools project.

Changes from 2.2 to 2.3
 1) Added new module cx_OracleDebugger which allows for logging of messages
    using dbms_pipe which was originally exclusively done in DbDebugger, a
    part of the cx_OracleTools package.
 2) Added support for limiting the number of rows exported and skipping a
    certain number of rows first in cx_ExportData.
 3) Removed special code in cx_ExportData and cx_ImportData for handling
    dates since they can be pickled directly now.
 4) Added support for exporting timestamp columns in cx_ExportData.
 5) Improved Oracle SQL and PL/SQL parser in cx_OracleParser.
 6) Added ability to enable roles when connecting to a database using the
    utility function in cx_OracleUtils.
 7) Added support for describing index organized tables in cx_OracleObject.
 8) Added support for describing compressed keys in indexes in cx_OracleObject.
 9) Added support for describing users and roles in cx_OracleObject.
10) Added support for describing trigters which call stored procedures instead
    of executing PL/SQL blocks in cx_OracleObject.
11) Fixed bug in display of size of unicode columns in cx_OracleObject.
12) Fixed bug in display of integer columns in cx_OracleObject.
13) Fixed bug in cx_OracleObject which was not describing generated primary
    key and unique constraints.
14) Ensured that the "&" character is not dumped directly in cx_DumpData so
    that the "set define off" command is not required before running the
    generated script through SQL*Plus.
15) Fixed messages that were generated by cx_SQL when constraints were enabled
    or disabled.
16) Fixed some spelling mistakes.

Changes from 2.1 to 2.2
 1) Added partial support for describing partitioned tables.
 2) Added support for describing constraints directly.
 3) Added utility function which will prompt for a password when one is
    missing in a connect string and then return the modified connect string.
 4) Added support for case sensitivity when describing objects.
 5) Improved the grammar for parsing Oracle code.
 6) Added support for exporting CLOB and BLOB columns directly.
 7) Do not use the column "table_owner" on dba_synonyms if the value is null.
    This is a rather rare situation but raises an exception which discovered.
 8) Add checking for circular dependencies to avoid infinite loops.

Changes for 2.1
 1) First introduced to the public.

