Hi.

I just wanted to mention that we've been using 0.5 since the first
beta in our Pylons-based web-mapping framework (www.mapfish.org) and
it has given up entire satisfaction. We caricatuy use: regular CRUD
operations, type definition (for PostGIS' geometry column), and
concrete table inheritance.

We're about to release a new version of MapFish so we'd be very happy
to see SA 0.5 out :)

Eric

2008/9/11, Michael Bayer <[EMAIL PROTECTED]>:
>
> Hey list -
>
> I've just put out 0.5rc1.   This release is *great*, as I am using it
> heavily every day for a project here - it's got my personal seal of
> approval.  0.5 truly rocks in general.    In my particular
> application, I'm making very heavy usage of declarative, single table
> inheritance, SessionExtension, synonyms, and pretty involved column-
> oriented ORM queries.    I've used it to rewrite a CMS driven
> application that was formerly written with Hibernate and it runs about
> five times faster.   So if its good enough for me, it should be good
> enough for anyone :).
>
> In this case "release candidate 1" means, API is complete and ready to
> be used, and we'd like to get user feedback to ensure things work as
> well for them as they are working for us.
>
> The migration guide has been updated and cleaned up, a good read of it
> at http://www.sqlalchemy.org/trac/wiki/05Migration should make the
> upgrade path from 0.4 pretty clear.
>
> Download SQLA 0.5.0rc1 at:  http://www.sqlalchemy.org/download.html
>
> 0.5.0rc1
> ========
>
> - orm
>      - Query now has delete() and update(values) methods. This allows
>        to perform bulk deletes/updates with the Query object.
>
>      - The RowTuple object returned by Query(*cols) now features
>        keynames which prefer mapped attribute names over column keys,
>        column keys over column names, i.e.  Query(Class.foo,
>        Class.bar) will have names "foo" and "bar" even if those are
>        not the names of the underlying Column objects.  Direct Column
>        objects such as Query(table.c.col) will return the "key"
>        attribute of the Column.
>
>      - Added scalar() and value() methods to Query, each return a
>        single scalar value.  scalar() takes no arguments and is
>        roughly equivalent to first()[0], value()
>        takes a single column expression and is roughly equivalent to
>        values(expr).next()[0].
>
>      - Improved the determination of the FROM clause when placing SQL
>        expressions in the query() list of entities.  In particular
>        scalar subqueries should not "leak" their inner FROM objects
>        out into the enclosing query.
>
>      - Joins along a relation() from a mapped class to a mapped
>        subclass, where the mapped subclass is configured with single
>        table inheritance, will include an IN clause which limits the
>        subtypes of the joined class to those requsted, within the ON
>        clause of the join.  This takes effect for eager load joins as
>        well as query.join().  Note that in some scenarios the IN
>        clause will appear in the WHERE clause of the query as well
>        since this discrimination has multiple trigger points.
>
>      - AttributeExtension has been refined such that the event
>        is fired before the mutation actually occurs.  Addtionally,
>        the append() and set() methods must now return the given value,
>        which is used as the value to be used in the mutation operation.
>        This allows creation of validating AttributeListeners which
>        raise before the action actually occurs, and which can change
>        the given value into something else before its used.
>
>      - column_property(), composite_property(), and relation() now
>        accept a single or list of AttributeExtensions using the
>        "extension" keyword argument.
>
>      - query.order_by().get() silently drops the "ORDER BY" from
>        the query issued by GET but does not raise an exception.
>
>      - Added a Validator AttributeExtension, as well as a
>        @validates decorator which is used in a similar fashion
>        as @reconstructor, and marks a method as validating
>        one or more mapped attributes.
>
>      - class.someprop.in_() raises NotImplementedError pending the
>        implementation of "in_" for relation [ticket:1140]
>
>      - Fixed primary key update for many-to-many collections where
>        the collection had not been loaded yet [ticket:1127]
>
>      - Fixed bug whereby deferred() columns with a group in conjunction
>        with an otherwise unrelated synonym() would produce
>        an AttributeError during deferred load.
>
>      - The before_flush() hook on SessionExtension takes place before
>        the list of new/dirty/deleted is calculated for the final
>        time, allowing routines within before_flush() to further
>        change the state of the Session before the flush proceeds.
>        [ticket:1128]
>
>      - The "extension" argument to Session and others can now
>        optionally be a list, supporting events sent to multiple
>        SessionExtension instances.  Session places SessionExtensions
>        in Session.extensions.
>
>      - Reentrant calls to flush() raise an error.  This also serves
>        as a rudimentary, but not foolproof, check against concurrent
>        calls to Session.flush().
>
>      - Improved the behavior of query.join() when joining to
>        joined-table inheritance subclasses, using explicit join
>        criteria (i.e. not on a relation).
>
>      - @orm.attributes.on_reconsitute and
>        MapperExtension.on_reconstitute have been renamed to
>        @orm.reconstructor and MapperExtension.reconstruct_instance
>
>      - Fixed @reconstructor hook for subclasses which inherit from a
>        base class.  [ticket:1129]
>
>      - The composite() property type now supports a
>        __set_composite_values__() method on the composite class which
>        is required if the class represents state using attribute
>        names other than the column's keynames; default-generated
>        values now get populated properly upon flush.  Also,
>        composites with attributes set to None compare correctly.
>        [ticket:1132]
>
>      - The 3-tuple of iterables returned by attributes.get_history()
>        may now be a mix of lists and tuples.  (Previously members
>        were always lists.)
>
>      - Fixed bug whereby changing a primary key attribute on an
>        entity where the attribute's previous value had been expired
>        would produce an error upon flush(). [ticket:1151]
>
>      - Fixed custom instrumentation bug whereby get_instance_dict()
>        was not called for newly constructed instances not loaded
>        by the ORM.
>
>      - Session.delete() adds the given object to the session if
>        not already present.  This was a regression bug from 0.4.
>        [ticket:1150]
>
>      - The `echo_uow` flag on `Session` is deprecated, and unit-of-work
>        logging is now application-level only, not per-session level.
>
>      - Removed conflicting `contains()` operator from
>        `InstrumentedAttribute` which didn't accept `escape` kwaarg
>        [ticket:1153].
>
> - declarative
>      - Fixed bug whereby mapper couldn't initialize if a composite
>        primary key referenced another table that was not defined
>        yet. [ticket:1161]
>
>      - Fixed exception throw which would occur when string-based
>        primaryjoin condition was used in conjunction with backref.
>
> - schema
>      - Added "sorted_tables" accessor to MetaData, which returns
>        Table objects sorted in order of dependency as a list.
>        This deprecates the MetaData.table_iterator() method.
>        The "reverse=False" keyword argument has also been
>        removed from util.sort_tables(); use the Python
>        'reversed' function to reverse the results.
>        [ticket:1033]
>
>      - The 'length' argument to all Numeric types has been renamed
>        to 'scale'.  'length' is deprecated and is still accepted
>        with a warning.
>
>      - Dropped 0.3-compatibility for user defined types
>        (convert_result_value, convert_bind_param).
>
> - sql
>      - Temporarily rolled back the "ORDER BY" enhancement from
>        [ticket:1068].  This feature is on hold pending further
>        development.
>
>      - The exists() construct won't "export" its contained list
>        of elements as FROM clauses, allowing them to be used more
>        effectively in the columns clause of a SELECT.
>
>      - and_() and or_() now generate a ColumnElement, allowing
>        boolean expressions as result columns, i.e.
>        select([and_(1, 0)]).  [ticket:798]
>
>      - Bind params now subclass ColumnElement which allows them to be
>        selectable by orm.query (they already had most ColumnElement
>        semantics).
>
>      - Added select_from() method to exists() construct, which becomes
>        more and more compatible with a regular select().
>
>      - Added func.min(), func.max(), func.sum() as "generic functions",
>        which basically allows for their return type to be determined
>        automatically.  Helps with dates on SQLite, decimal types,
>        others. [ticket:1160]
>
>      - added decimal.Decimal as an "auto-detect" type; bind parameters
>        and generic functions will set their type to Numeric when a
>        Decimal is used.
>
> - mysql
>      - The 'length' argument to MSInteger, MSBigInteger, MSTinyInteger,
>        MSSmallInteger and MSYear has been renamed to 'display_width'.
>
>      - Added MSMediumInteger type [ticket:1146].
>
>      - the function func.utc_timestamp() compiles to UTC_TIMESTAMP,
> without
>        the parenthesis, which seem to get in the way when using in
>        conjunction with executemany().
>
> - oracle
>      - limit/offset no longer uses ROW NUMBER OVER to limit rows,
>        and instead uses subqueries in conjunction with a special
>        Oracle optimization comment.  Allows LIMIT/OFFSET to work
>        in conjunction with DISTINCT. [ticket:536]
>      - has_sequence() now takes the current "schema" argument into
>        account [ticket:1155]
>      - added BFILE to reflected type names [ticket:1121]
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
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