]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
0.1.5 prep
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 27 Mar 2006 00:51:51 +0000 (00:51 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 27 Mar 2006 00:51:51 +0000 (00:51 +0000)
CHANGES
setup.py

diff --git a/CHANGES b/CHANGES
index 8995de9d335f39db82f40e307a9f0ef1f2e58b05..a996bd5647486ff6264f1b6e14acb0156ea92acd 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,15 +1,86 @@
 0.1.5
+- added SQLSession concept to SQLEngine. this object keeps track of retrieving a
+connection from the connection pool as well as an in-progress transaction.
+methods push_session() and pop_session() added to SQLEngine which push/pop a new
+SQLSession onto the engine, allowing operation upon a second connection "nested"
+within the previous one, allowing nested transactions. Other tricks are sure to
+come later regarding SQLSession.
+- added nest_on argument to objectstore.Session. This is a single SQLEngine or
+list of engines for which push_session()/pop_session() will be called each time
+this Session becomes the active session (via objectstore.push_session() or
+equivalent). This allows a unit of work Session to take advantage of the nested
+transaction feature without explicitly calling push_session/pop_session on the
+engine.
+- factored apart objectstore/unitofwork to separate "Session scoping" from
+"uow commit heavy lifting"
+- added populate_instance() method to MapperExtension. allows an extension to
+modify the population of object attributes. this method can call the
+populate_instance() method on another mapper to proxy the attribute population
+from one mapper to another; some row translation logic is also built in to help
+with this.
+- fixed Oracle8-compatibility "use_ansi" flag which converts JOINs to 
+comparisons with the = and (+) operators, passes basic unittests
+- tweaks to Oracle LIMIT/OFFSET support
+- Oracle reflection uses ALL_** views instead of USER_** to get larger
+list of stuff to reflect from
+- fixes to Oracle foreign key reflection [ticket:105]
+- objectstore.commit(obj1, obj2,...) adds an extra step to seek out private
+relations on properties and delete child objects, even though its not a global
+commit
+- lots and lots of fixes to mappers which use inheritance, strengthened the 
+concept of relations on a mapper being made towards the "local" table for that
+mapper, not the tables it inherits.  allows more complex compositional patterns
+to work with lazy/eager loading.
+- some minor speed improvements to the attributes system with regards to 
+instantiating and populating new objects. 
+- fixed MySQL binary unit test
+- INSERTs can receive clause elements as VALUES arguments, not just literal
+values
+- support for calling multi-tokened functions, i.e. schema.mypkg.func()
+- added J. Ellis' SQLSoup module to extensions package
+- added "polymorphic" examples illustrating methods to load multiple object types
+from one mapper, the second of which uses the new populate_instance() method.
+small improvements to mapper, UNION construct to help the examples along
+- improvements/fixes to session.refresh()/session.expire() (which may have
+been called "invalidate" earlier..)
+- added session.expunge() which totally removes an object from the current
+session
+- added *args, **kwargs pass-thru to engine.transaction(func) allowing easier
+creation of transactionalizing decorator functions
+- added iterator interface to ResultProxy:  "for row in result:..."
+- added assertion to tx = session.begin(); tx.rollback(); tx.begin(), i.e. cant
+use it after a rollback()
+- added date conversion on bind parameter fix to SQLite enabling dates to
+work with pysqlite1
+- improvements to subqueries to more intelligently construct their FROM
+clauses [ticket:116]
+
+- added PickleType to types.
+- fixed two bugs with column labels with regards to bind parameters: bind param
+keynames they are now generated from a column "label" in all relevant cases to
+take advantage of excess-name-length rules, and checks for a peculiar collision
+against a column named the same as "tablename_colname" added
+- major overhaul to unit of work documentation, other documentation sections.
 - fixed attributes bug where if an object is committed, its lazy-loaded list got 
 blown away if it hadnt been loaded
-- added unique_connection() method to engine, connection pool to return a connection
-that is not part of the thread-local context or any current transaction
-- added distinct() function to column elements so you can do func.count(mycol.distinct())
+- added unique_connection() method to engine, connection pool to return a
+connection that is not part of the thread-local context or any current
+transaction
+- added invalidate() function to pooled connection.  will remove the connection
+from the pool.  still need work for engines to auto-reconnect to a stale DB
+though.
+- added distinct() function to column elements so you can do
+func.count(mycol.distinct())
+- added "always_refresh" flag to Mapper, creates a mapper that will always
+refresh the attributes of objects it gets/selects from the DB, overwriting any
+changes made.
 
 0.1.4
-- create_engine() now uses genericized parameters; host/hostname, db/dbname/database, 
-password/passwd, etc. for all engine connections. makes engine URIs much more "universal"
-- added support for SELECT statements embedded into a column clause, using the flag
-"scalar=True"
+- create_engine() now uses genericized parameters; host/hostname,
+db/dbname/database, password/passwd, etc. for all engine connections. makes
+ engine URIs much more "universal"
+- added support for SELECT statements embedded into a column clause, using the
+flag "scalar=True"
 - another overhaul to EagerLoading when used in conjunction with mappers that
 inherit; improvements to eager loads figuring out their aliased queries
 correctly, also relations set up against a mapper with inherited mappers will
@@ -28,10 +99,11 @@ still some bugs to work out regarding composite primary keys/dictionary selectio
 compiled.get_params(), does late-typeprocessing of bind parameters so 
 that the original values are easier to access
 - more docs for indexes, column defaults, connection pooling, engine construction
-- overhaul to the construction of the types system.  uses a simpler inheritance pattern
-so that any of the generic types can be easily subclassed, with no need for TypeDecorator.
-- added "convert_unicode=False" parameter to SQLEngine, will cause all String types to 
-perform unicode encoding/decoding (makes Strings act like Unicodes)
+- overhaul to the construction of the types system. uses a simpler inheritance
+pattern so that any of the generic types can be easily subclassed, with no need
+for TypeDecorator.
+- added "convert_unicode=False" parameter to SQLEngine, will cause all String
+types to perform unicode encoding/decoding (makes Strings act like Unicodes)
 - added 'encoding="utf8"' parameter to engine.  the given encoding will be 
 used for all encode/decode calls within Unicode types as well as Strings 
 when convert_unicode=True.
index 8df1eb2fbe116d6d3e42729867acd2a748c2e72e..bbc27c13d69f0db2a102242d1b51235ca6095715 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -3,7 +3,7 @@ use_setuptools()
 from setuptools import setup, find_packages
 
 setup(name = "SQLAlchemy",
-    version = "0.1.4",
+    version = "0.1.5",
     description = "Database Abstraction Library",
     author = "Mike Bayer",
     author_email = "mike_mp@zzzcomputing.com",