Changes in 1.27.1 (released 03/31/2009)
Fixed a bug in the dependency checking for
Connnection.itertableas.oradeletenow has a new option to usetruncate tableinstead ofdelete from.
Changes in 1.27 (released 03/31/2009)
Added a new script
oradeletethat can be used to delete all records from all tables and to reset all sequences.Connectionhas a new methoditersequences.Fixed a bug in the generated SQl code for triggers (the name always included the name of the original schema).
Changes in 1.26 (released 03/27/2009)
ll.orasqlnow requires cx_Oracle 5.0 compiled in Unicode mode (i.e. withWITH_UNICODE=1). Lots of unicode handling stuff has been rewritten to take advantage of Unicode mode.orafindhas a new option--encodingto decode the searchstring on the commandline.The
Poolconstructor now supports the additional argumentsgetmodeandhomogeneousfrom cx_Oracle 5.0.Fix a typo in
Privilege.grantddl.
Changes in 1.25.4 (released 01/21/2009)
Procedures and functions with timestamp arguments can now be called.
Changes in 1.25.3 (released 11/07/2008)
Procedures and functions now should handle arguments of type
BLOBcorrectly.
Changes in 1.25.2 (released 08/29/2008)
Recordhas a new methodgetwhich works like the dictionary methodget.
Changes in 1.25.1 (released 07/21/2008)
orafind.pynow has an additional optionsreadlobs(defaulting to false). If this option is set, the value of LOBs in the records found, will be printed.
Changes in 1.25 (released 06/17/2008)
A new script has been added:
orafind.pywill search for a specified string in all columns of all tables in a schema.
Changes in 1.24.1 (released 05/30/2008)
Fixed two bugs in
Callable._calcargsandConnection.getobject.
Changes in 1.24 (released 05/20/2008)
Connection.getobject,ProcedureandFunctionnow support functions and procedures in packages.Added
__repr__to the exception classes.
Changes in 1.23.4 (released 04/04/2008)
All database scripts now have an additional option
encodingthat specifies the encoding for the output script.
Changes in 1.23.3 (released 04/03/2008)
Fixed a regression in the scripts
oracreate.py,oradrop.pyandoragrant.py.
Changes in 1.23.2 (released 04/01/2008)
When calling functions/procedures, arguments are now wrapped in variable objects for their real type instead of ones for the type the function or procedure expects.
Changes in 1.23.1 (released 03/25/2008)
Added a
__contains__toRecordfor checking the existence of a field.
Changes in 1.23 (released 03/25/2008)
Calling procedures and functions has been rewritten:
ll.orasqlwill only pass those parameters to the procedure/function that are passed to the call (or variables for out parameters). Internally this is handled by executing the call as a parameterized query calling the procedure/function with named arguments.FetchRecordhas been renamed toRecord(and is used for the result of procedure and function calls now, which required some internal changes toFetchRecord). The formerRecordhas been renamed toArgsas its only use now is collecting arguments for procedure/function calls. (The methodfromdatahas been dropped.)The
__repr__output ofArgumentobjects now shows the datatype.
Changes in 1.22 (released 03/19/2008)
Added a new method
_getobjecttoConnectionthat does whatgetobjectdoes, but is case sensitive (This is used internally bySynonym.getobject).The methods
xfetchone,xfetchmany,xfetchall,xfetch,xexecuteandxexecutemanyhave been dropped again. Fetch result objects are now of typeFetchRecord. Field access is available via index (i.e.row[0]), key (row["name"]) and attribute (row.name). These result objects are generated via therowfactoryattribute (which was added in cx_Oracle 4.3.2). All fetch and execute methods support unicode values.
Changes in 1.21.1 (released 03/17/2008)
Updated the scripts to work with the new execute methods.
Changes in 1.21 (released 03/13/2008)
Connectionhas a new methodgetobject, which returns the schema object with a specified name.Synonymhas a new methodgetobject, that returns the object for which theSynonymobject is a synonym.The name of
ProcedureandFunctionobjects now is case sensitive when calling the procedure or function.
Changes in 1.20 (released 02/07/2008)
The fancy fetch methods have been renamed to
xfetchone,xfetchmany,xfetchallandxfetch.__iter__no longer gets overwritten. New methodsxexecuteandxexecutemanyhave been added, that support passing unicode parameters.
Changes in 1.19 (released 02/01/2008)
All docstrings use ReST now.
Changes in 1.18 (released 01/07/2008)
Updated the docstrings to XIST 3.0.
Added ReST versions of the documentation.
Changes in 1.17.5 (released 08/09/2007)
Fixed a bug in the error handling of wrong arguments when calling functions or procedures.
Changes in 1.17.4 (released 04/30/2007)
The threshold for string length for procedure and function arguments has been reduced to 4000.
Changes in 1.17.3 (released 03/08/2007)
BLOBarguments for procedures and functions are always passed as variables now.
Changes in 1.17.2 (released 03/07/2007)
Arguments for procedures and functions that are longer that 32000 characters are passed as variables now (the threshold was 32768 before and didn't work).
Changes in 1.17.1 (released 03/02/2007)
Fix an inverted logic bug in
Record.fromdatathat surfaced in unicode mode:BLOBs were treated as string andCLOBs as binary data.
Changes in 1.17 (released 02/23/2007)
The
readlobsandunicodeparameters are now honored when calling procedures and functions viaProcedureandFunctionobjects.
Changes in 1.16 (released 02/21/2007)
A parameter
unicodehas been added to various constructors and methods. This parameter can be used to get strings (i.e.VARCHAR2andCLOBs) asunicodeobject instead ofstrobjects.
Changes in 1.15 (released 02/17/2007)
Fixed an output bug in
oradiff.pywhen running in full output mode.A parameter
readlobshas been added to various constructors and methods that can be used to get small (or all)LOBvalues as strings in cursor fetch calls.
Changes in 1.14 (released 02/01/2007)
A new method
iterprivilegeshas been added toConnection.A script
oragrant.pyhas been added for copying privileges.
Changes in 1.13 (released 11/06/2006)
Two new methods (
itertablesanditerfks) have been added toConnection. They yield all table definitions or all foreign keys respectively.A new method
isenabledhas been added toForeignKey.A
__str__method has been added toObject.A bug in
oramerge.pyhas been fixed: In certain situationsoramerge.pyused merging actions that were meant to be used for the preceeding object.
Changes in 1.12.2 (released 10/18/2006)
Fixed a bug that showed up when an index and a foreign key of the same name existed.
Changes in 1.12.1 (released 09/19/2006)
Fixed a bug in
Index.__xattrs__.
Changes in 1.12 (released 09/06/2006)
Functionobjects are now callable too. They return the return value and aRecordcontaining the modified input parameters.
Changes in 1.11.1 (released 08/29/2006)
Fixed a bug in
Column.modifyddl.
Changes in 1.11 (released 08/22/2006)
The class
Columnhas gained a few new methods:datatype,default,nullableandcomment.Calling a procedure will now raise a
SQLObjectNotFoundErrorerror, if the procedure doesn't exist.
Changes in 1.10 (released 08/11/2006)
The classes
ProcandLLProchave been removed. The functionality ofProchas been merged intoProcedureDefinition(with has been renamed toProcedure). Information about the procedure arguments is provided by theiteragumentsmethod.All other subclasses of
Definitionhave been renamed to remove the "Definition" for the name to reduce typing. (Methods have been renamed accordingly too.)</li>oramerge.mainandoradiff.mainnow accept option arrays as arguments.oradiff.pyhas finally been fixed.
Changes in 1.9.4 (released 08/09/2006)
Fixed a bug in
oradiff.py.
Changes in 1.9.3 (released 08/08/2006)
Fixed a bug in
oramerge.py.
Changes in 1.9.2 (released 08/04/2006)
Fixed a bug in
TableDefinition.iterdefinitions.
Changes in 1.9.1 (released 08/02/2006)
Fixed a bug in
oracreate.py.
Changes in 1.9 (released 07/24/2006)
Dependencies involving
MaterializedViewDefinitionandIndexDefinitionobjects generated by constraints work properly now, so that iterating all definitions in create order really results in a working SQL script.A method
tablehas been added toPKDefinition,FKDefinition,UniqueDefinitionandIndexDefinition. This method returns theTableDefinitionto object belongs to.A method
pkhas been added toFKDefinition. It returns the primary key that this foreign key references.Indexes and constraints belonging to skipped tables are now skipped too in
oracreate.py.Arguments other than
sys.argv[1:]can now be passed to theoracreate.pyandoradrop.pymainfunctions.
Changes in 1.8.1 (released 07/17/2006)
ll.orasqlcan now handle objects name that are not in uppercase.
Changes in 1.8 (released 07/14/2006)
Connection.iterobjectshas been renamed toiterdefinitions.Each
Definitionsubclass has a new classmethoditerdefinitionsthat iterates through all definitions of this type in a schema (or all schemas).Each
Definitionsubclass has new methodsiterreferencesanditerreferencedbythat iterate through related definitions. The methodsiterreferencesallanditerreferencedbyalldo this recursively. The methoditerdependentis gone now.The method
iterschemaofConnectionnow has an additional parameterschema. Passing"all"forschemawill give you statistics for the complete database not just one schema.A new definition class
MaterializedViewDefinitionhas been added that handles materialized views. Handling of create options is rudimentary though. Patches are welcome.TableDefinitionhas a three new methods:ismviewreturns whether the table is a materialized view;itercommentsiterates through comments anditerconstraintsiterates through primary keys, foreign keys and unique constraints.The method
getcursorwill now raise aTypeErrorif it can't get a cursor.
Changes in 1.7.2 (released 07/05/2006)
RAWfields in tables are now output properly inTableDefinition.createddl.A class
PackageBodyDefinitionhas been added.oracreate.pywill output package body definitions andoradrop.pywill drop them.
Changes in 1.7.1 (released 07/04/2006)
Duplicate code in the scripts has been removed.
Fixed a bug in
oramerge.py: If the source to be diffed was long enough the call todiff3deadlocked.
Changes in 1.7 (released 06/29/2006)
The method
iterobjectshas been moved fromCursortoConnection.The method
itercolumnshas been moved fromCursortoTableDefinition.LLProcnow recognizes thec_outparameter used byll.toxic0.8.Support for positional arguments has been added for
ProcandLLProc. Error messages for calling procedures have been enhanced.SequenceDefinitionnow has a new methodcreateddlcopythat returns code that copies the sequence value.oracreate.pyhas a new option-s/--seqcopythat uses this feature.setuptoolsis now supported for installation.
Changes in 1.6 (released 04/26/2006)
Added a
SessionPool(a subclass ofSessionPoolincx_Oracle) whoseacquiremethod returnsll.orasql.Connectionobjects.
Changes in 1.5 (released 04/05/2006)
Added a class
IndexDefinitionfor indexes.oracreate.pywill now issue create statements for indexes.
Changes in 1.4.3 (released 12/07/2005)
Fixed a bug with empty lines in procedure sources.
Remove spurious spaces at the start of procedure and function definitions.
Changes in 1.4.2 (released 12/07/2005)
Fixed a bug that the DDL output of Java source.
Trailing whitespace in each line of procedures, functions etc. is now stripped.
Changes in 1.4.1 (released 12/06/2005)
Fixed a bug that resulted in omitted field lengths.
Changes in 1.4 (released 12/05/2005)
The option
-m/--modehas been dropped from the scriptoramerge.py.A new class
ColumnDefinitionhas been added toll.orasql. TheCursorclass has a new methoditercolumnsthat iterates theColumnDefinitionobjects of a table.oramerge.pynow doesn't output a mergedcreate tablestatement, but the appropriatealter tablestatements.
Changes in 1.3 (released 11/24/2005)
Added an option
-itooracreate.pyandoradrop.pyto ignore errors.The argument
allof the cursor methoditerobjectsis now namedschemaand may have three values:"own","dep"and"all".Added an script
oramerge.pythat does a three way merge of three database schemas and outputs the resulting script.DB links are now copied over in
SynonymDefinitionobjects.
Changes in 1.2 (released 10/24/2005)
Added a argument to
createddlanddropddlto specify if terminated or unterminated DDL is wanted (i.e. add;or/or not).CommentsDefinitionhas been renamed toCommentDefinitionand holds the comment for one field only.JavaSourceDefinitionhas been added.The scripts
oracreate.py,oradrop.pyandoradiff.pynow skip objects with"$"in their name by default. This can be changed with the-koption (but this will lead to unexecutable scripts).oradiff.pyhas a new options-b: This allows you to specify how whitespace should be treated.Added an option
-xtooracreate.pyto make it possible to directly execute the DDL in another database.Fixed a bug in
SequenceDefinitionwhen theCACHEfield was0.
Changes in 1.1 (released 10/20/2005)
A script
oradiff.pyhas been added which can be used for diffing Oracle schemas.Definition classes now have two new methods
cdateandudatethat give the creation and modification time of the schema object (if available).A
"flat"iteration mode has been added toCursor.iterobjectsthat returns objects unordered.Connectionhas a new methodconnectstring.A class
LibraryDefinitionhas been added.CommentsDefinition.createddlreturns""instead of"\n"now if there are no comments.SQLObjectNotfoundErrorhas been renamed toSQLObjectNotFoundError.
Changes in 1.0 (released 10/13/2005)
ll.orasqlrequires version 1.0 of the core package now.A new generator method
iterobjectshas been added to theCursorclass. This generator returns "definition objects" for all the objects in a schema in topological order (i.e. if the name of an object (e.g. a table) is generated it will only depend on objects whose name has been yielded before). SQL for recreating and deleting these SQL objects can be generated from the definition objects.Two scripts (
oracreate.pyandoradrop.py) have been added, that create SQL scripts for recreating or deleting the content of an Oracle schema.
Changes in 0.7 (released 08/09/2005)
The commands generated by
iterdropno longer have a terminating;, as this seems to confuse Oracle/cx_Oracle.
Changes in 0.6 (released 06/20/2005)
Two new functions have been added:
iterdropis a generator that yields information about how to clear the schema (i.e. drop all table, sequences, etc.).itercreateyields information about how to recreate a schema.
Changes in 0.5 (released 06/07/2005)
Date values are now supported as
OUTparameters.
Changes in 0.4.1 (released 03/22/2005)
Added a note about the package init file to the installation documentation.
Changes in 0.4 (released 01/03/2005)
ll.orasqlnow requires ll-core.Procedures can now be called with string arguments longer that 32768 characters. In this case the argument will be converted to a variable before the call. The procedure argument must be a
CLOBin this case.Creating
Recordinstances from database data is now done by the class methodRecord.fromdata. This means it's now possible to use any other class as long as it provides this method.
Changes in 0.3 (released 12/09/2004)
ll.orasqlrequires cx_Oracle 4.1 now.
Changes in 0.2.1 (released 09/09/2004)
Fixed a regression bug in
Proc._calcrealargsas cursors will now always returnRecordobjects.
Changes in 0.2 (released 09/08/2004)
Now generating
Recordobject is done automatically in a subclass ofcx_Oracle.Cursor. So now it's possible to usell.orasqlas an extendedcx_Oracle.
Changes in 0.1 (released 07/15/2004)
Initial release.