pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/databases/py-sqlalchemy



Module Name:    pkgsrc
Committed By:   tonnerre
Date:           Mon Oct 14 17:57:30 UTC 2013

Modified Files:
        pkgsrc/databases/py-sqlalchemy: Makefile PLIST distinfo

Log Message:
Update py-sqlalchemy to version 0.8.2.

Changes since 0.7.10:
 - Compatibility for Python 2.4 is being dropped.
 - The primaryjoin argument is no longer needed when constructing a
   relationship() against a class that has multiple foreign key paths to the
   target.
 - Relationships against self-referential, composite foreign keys where a
   column points to itself are now supported.
 - Previously difficult custom join conditions, like those involving
   functions and/or CASTing of types, will now function as expected in most
   cases.
 - New Class/Object Inspection System.
 - A new enhancement to the aliased() construct has been added called
   with_polymorphic() which allows any entity to be “aliased” into a
   “polymorphic” version of itself, freely usable anywhere.
 - The PropComparator.of_type() method can now be used to target any number
   of target subtypes, by combining it with the new with_polymorphic()
   function.
 - Mapper and instance events can now be associated with an unmapped
   superclass, where those events will be propagated to subclasses as those
   subclasses are mapped. The propagate=True flag should be used.
 - The registry of class names is now sensitive to the owning module and
   package of a given class. The classes can be referred to via dotted name
   in expressions.
 - The “deferred reflection” feature allows the construction of declarative
   mapped classes with only placeholder Table metadata, until a prepare()
   step is called, given an Engine with which to reflect fully all tables
   and establish actual mappings. The system supports overriding of columns,
   single and joined inheritance, as well as distinct bases-per-engine.
 - A new SQL registration system allows a mapped class to be accepted as a
   FROM clause within the core.
 - The new UPDATE..FROM mechanics work in query.update().
 - Upon rollback(), only those objects that were made dirty since the last
   flush will be expired, the rest of the Session remains intact.
 - Caching Example now uses dogpile.cache.
 - The new operator system in Core associates new and overridden operators
   with types.
 - SQL expressions can now be associated with types.
 - The inspect() function introduced in New Class/Object Inspection System
   also applies to the core.
 - select() now has a method Select.correlate_except() which specifies
   “correlate on all FROM clauses except those specified”.
 - Support for Postgresql’s HSTORE type is now available as
   postgresql.HSTORE. This type makes great usage of the new operator system
   to provide a full range of operators for HSTORE types, including index
   access, concatenation, and containment methods such as has_key(),
   has_any(), and matrix().
 - The postgresql.ARRAY type will accept an optional “dimension” argument,
   pinning it to a fixed number of dimensions and greatly improving
   efficiency when retrieving results.
 - SQLite has no built-in DATE, TIME, or DATETIME types, and instead
   provides some support for storage of date and time values either as
   strings or integers.
 - The “collate” keyword, long accepted by the MySQL dialect, is now
   established on all String types and will render on any backend, including
   when features such as MetaData.create_all() and cast() is used.
 - Geared towards MySQL, a “prefix” can be rendered within any of these
   constructs.
 - The consideration of a “pending” object as an “orphan” has been made more
   aggressive.
 - The after_attach event fires after the item is associated with the
   Session instead of before; before_attach added.
 - Query now auto-correlates like a select() does.
 - Correlation is now always context-specific.
 - create_all() and drop_all() will now honor an empty list as such.
 - Repaired the Event Targeting of InstrumentationEvents.
 - No more magic coercion of “=” to IN when comparing to subquery in
   MS-SQL.
 - The Session.is_modified() method accepts an argument passive which
   basically should not be necessary, the argument in all cases should be
   the value True - when left at its default of False it would have the
   effect of hitting the database, and often triggering autoflush which
   would itself change the results. In 0.8 the passive argument will have no
   effect, and unloaded attributes will never be checked for history since
   by definition there can be no pending state change on an unloaded
   attribute.
 - Column.key is honored in the Select.c attribute of select() with
   Select.apply_labels().
 - A relationship() that is many-to-one or many-to-many and specifies
   “cascade=’all, delete-orphan’”, which is an awkward but nonetheless
   supported use case (with restrictions) will now raise an error if the
   relationship does not specify the single_parent=True option.
 - Adding the inspector argument to the column_reflect event.
 - The MySQL dialect does two calls, one very expensive, to load all
   possible collations from the database as well as information on casing,
   the first time an Engine connects. Neither of these collections are used
   for any SQLAlchemy functions, so these calls will be changed to no longer
   be emitted automatically. Applications that might have relied on these
   collections being present on engine.dialect will need to call upon
   _detect_collations() and _detect_casing() directly.
 - Inspector.get_primary_keys() is deprecated, use
   Inspector.get_pk_constraint.
 - Case-insensitive result row names will be disabled in most cases. It will
   be available only optionally, by passing the flag `case_sensitive=False`
   to `create_engine()`, but otherwise column names requested from the row
   must match as far as casing.
 - The sqlalchemy.orm.interfaces.InstrumentationManager class is moved to
   sqlalchemy.ext.instrumentation.InstrumentationManager.
 - SQLSoup is now moved into its own project and documented/released
   separately; see https://bitbucket.org/zzzeek/sqlsoup.
 - The older “mutable” system within the SQLAlchemy ORM has been removed.
 - We had left in an alias sqlalchemy.exceptions to attempt to make it
   slightly easier for some very old libraries that hadn’t yet been upgraded
   to use sqlalchemy.exc. Some users are still being confused by it however
   so in 0.8 we’re taking it out entirely to eliminate any of that confusion.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 pkgsrc/databases/py-sqlalchemy/Makefile \
    pkgsrc/databases/py-sqlalchemy/PLIST
cvs rdiff -u -r1.5 -r1.6 pkgsrc/databases/py-sqlalchemy/distinfo

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



Home | Main Index | Thread Index | Old Index