SQLAlchemy 0.6.7 is now available for download.

While the focus has been on 0.7 for several months now and 0.7 is very close to 
production release, 0.6 has also been accumulating plenty of bugfixes.  

SQLAlchemy 0.6.7 can be downloaded at:

http://www.sqlalchemy.org/download.html

Note the sourceforge link is misbehaving at the moment, will try to see if 
their service catches up with itself later on.  Stick with Pypi for now.

0.6.7
=====
- orm
  - Tightened the iterate vs. remove mutex around the 
    identity map iteration, attempting to reduce the 
    chance of an (extremely rare) reentrant gc operation 
    causing a deadlock.  Might remove the mutex in
    0.7.  [ticket:2087]

  - Added a `name` argument to `Query.subquery()`, to allow
    a fixed name to be assigned to the alias object.
    [ticket:2030]

  - A warning is emitted when a joined-table inheriting mapper
    has no primary keys on the locally mapped table
    (but has pks on the superclass table).  [ticket:2019]

  - Fixed bug where "middle" class in a polymorphic hierarchy
    would have no 'polymorphic_on' column if it didn't also
    specify a 'polymorphic_identity', leading to strange
    errors upon refresh, wrong class loaded when querying
    from that target. Also emits the correct WHERE criterion
    when using single table inheritance. [ticket:2038]

 - Fixed bug where a column with a SQL or server side default
   that was excluded from a mapping with include_properties
   or exclude_properties would result in UnmappedColumnError.
   [ticket:1995]

  - A warning is emitted in the unusual case that an 
    append or similar event on a collection occurs after
    the parent object has been dereferenced, which 
    prevents the parent from being marked as "dirty" 
    in the session.  This will be an exception in 0.7.
    [ticket:2046]

  - Fixed bug in query.options() whereby a path 
    applied to a lazyload using string keys could 
    overlap a same named attribute on the wrong 
    entity.  Note 0.7 has an updated version of this
    fix.  [ticket:2098]

  - Reworded the exception raised when a flush
    is attempted of a subclass that is not polymorphic
    against the supertype.  [ticket:2063]

  - Some fixes to the state handling regarding 
    backrefs, typically when autoflush=False, where
    the back-referenced collection wouldn't 
    properly handle add/removes with no net 
    change.  Thanks to Richard Murri for the 
    test case + patch.  [ticket:2123]

  - a "having" clause would be copied from the
    inside to the outside query if from_self()
    were used. [ticket:2130].

- sql
  - Column.copy(), as used in table.tometadata(), copies the 
    'doc' attribute.  [ticket:2028]

  - Added some defs to the resultproxy.c extension so that
    the extension compiles and runs on Python 2.4.
    [ticket:2023]

  - The compiler extension now supports overriding the default
    compilation of expression._BindParamClause including that
    the auto-generated binds within the VALUES/SET clause
    of an insert()/update() statement will also use the new
    compilation rules. [ticket:2042]

  - Added accessors to ResultProxy "returns_rows", "is_insert"
    [ticket:2089]

  - The limit/offset keywords to select() as well
    as the value passed to select.limit()/offset()
    will be coerced to integer.  [ticket:2116]

- engine
  - Fixed bug in QueuePool, SingletonThreadPool whereby
    connections that were discarded via overflow or periodic
    cleanup() were not explicitly closed, leaving garbage 
    collection to the task instead.   This generally only
    affects non-reference-counting backends like Jython
    and Pypy.  Thanks to Jaimy Azle for spotting
    this.  [ticket:2102]

- sqlite
  - Fixed bug where reflection of foreign key
    created as "REFERENCES <tablename>" without
    col name would fail.  [ticket:2115]

- postgresql
  - When explicit sequence execution derives the name 
    of the auto-generated sequence of a SERIAL column, 
    which currently only occurs if implicit_returning=False, 
    now accommodates if the table + column name is greater 
    than 63 characters using the same logic Postgresql uses.  
    [ticket:1083]

  - Added an additional libpq message to the list of "disconnect"
    exceptions, "could not receive data from server"
    [ticket:2044]

  - Added RESERVED_WORDS for postgresql dialect. [ticket:2092]

  - Fixed the BIT type to allow a "length" parameter, "varying"
    parameter.  Reflection also fixed.  [ticket:2073]

- informix

  - Added RESERVED_WORDS informix dialect. [ticket:2092]

- mssql
  - Rewrote the query used to get the definition of a view,
    typically when using the Inspector interface, to
    use sys.sql_modules instead of the information schema,
    thereby allowing views definitions longer than 4000 
    characters to be fully returned.  [ticket:2071]

- mysql
  - oursql dialect accepts the same "ssl" arguments in 
    create_engine() as that of MySQLdb.  [ticket:2047]

- firebird
  - The "implicit_returning" flag on create_engine() is
    honored if set to False.  [ticket:2083]

- oracle
  - Using column names that would require quotes
    for the column itself or for a name-generated
    bind parameter, such as names with special
    characters, underscores, non-ascii characters,
    now properly translate bind parameter keys when
    talking to cx_oracle.  [ticket:2100]

  - Oracle dialect adds use_binds_for_limits=False
    create_engine() flag, will render the LIMIT/OFFSET
    values inline instead of as binds, reported to
    modify the execution plan used by Oracle.
    [ticket:2116]

- ext
  - The horizontal_shard ShardedSession class accepts the common
    Session argument "query_cls" as a constructor argument,
    to enable further subclassing of ShardedQuery.
    [ticket:2090]

- declarative
  - Added an explicit check for the case that the name
    'metadata' is used for a column attribute on a 
    declarative class. [ticket:2050]

  - Fix error message referencing old @classproperty
    name to reference @declared_attr [ticket:2061]

  - Arguments in __mapper_args__ that aren't "hashable"
    aren't mistaken for always-hashable, possibly-column
    arguments.  [ticket:2091]

- documentation
  - Documented SQLite DATE/TIME/DATETIME types.
    [ticket:2029]

- examples
  - The Beaker caching example allows a "query_cls" argument
    to the query_callable() function.  [ticket:2090]

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to