Here you can see the full list of changes between each SQLAlchemy-Utils release.
- Fix aggregate value handling for cascade deleted objects
- Fix ambiguous column sorting with join table inheritance in sort_query
- Fix sort_query support for queries using mappers (not declarative classes) with calculated column properties
- Added count method to QueryChain class
- Added template parameter to create_database function
- Added quote utility function
- Fixed dependent_objects support for single table inheritance
- Fixed dependent_objects support for multiple dependencies
- Fixed PasswordType with Oracle dialect
- Added support for sort_query and attributes on mappers using with_polymorphic
- Fixed order by column property handling in sort_query when using polymorphic inheritance
- Added support for synonym properties in sort_query
- Made sort_query support hybrid properties where function name != property name
- Made get_hybrid_properties return a dictionary of property keys and hybrid properties
- Added documentation for get_hybrid_properties
- Added exclude parameter to has_changes
- Made has_changes accept multiple attributes as second parameter
- Added get_column_key
- Added Timestamp model mixin
- Added auto_delete_orphans
- Added has_any_changes
- Added various fixes for bugs found in use of psycopg2
- Added has_index
- Added get_bind
- Added group_foreign_keys
- Added get_mapper
- Added merge_references
- Added get_referencing_foreign_keys
- Added get_tables
- Added QueryChain
- Added dependent_objects
- Added ExpressionParser
- Added support for primary key aliases in get_primary_keys function
- Added get_columns utility function
- Fixed sort_query handling of regular properties (no longer throws exceptions)
- Added more import json as a fallback if anyjson package is not installed for JSONType
- Fixed query_entities labeled select handling
- Added single table inheritance support for generic_relationship
- Added support for comparing class super types with generic relationships
- BC break: In order to support different inheritance strategies generic_relationship now uses class names as discriminators instead of table names.
- Added hybrid_property support for generic_relationship
- Added string argument support for generic_relationship
- Added composite primary key support for generic_relationship
- Remove toolz from dependencies
- Add step argument support for all range types
- Optional intervals dependency updated to 0.2.4
- Made identity return a tuple in all cases
- Added support for declarative model classes as identity function's first argument
- Added getdotattr
- Added Path and AttrPath classes
- SQLAlchemy dependency updated to 0.9.3
- Optional intervals dependency updated to 0.2.2
- Fixed ArrowType timezone handling
- Added force_instant_defaults function
- Added force_auto_coercion function
- Added source paramater for generates function
- Fixed backref handling for aggregates
- Added support for many-to-many aggregates
- Fixed issues with ColorType and ChoiceType string bound parameter processing
- Fixed inheritance handling with aggregates
- Fixed generic relationship nullifying
- Added support for membership operators 'in' and 'not in' in range types
- Added support for contains and contained_by operators in range types
- Added range types to main module import
- Deprecated NumberRangeType, NumberRange
- Added IntRangeType, NumericRangeType, DateRangeType, DateTimeRangeType
- Moved NumberRange functionality to intervals package
- Fixed in issue where NumberRange would not always raise RangeBoundsException with object initialization
- Added SQLAlchemy 0.9 support
- Made JSONType use sqlalchemy.dialects.postgresql.JSON if available
- Updated psycopg requirement to 2.5.1
- Deprecated NumberRange classmethod constructors
- Added support for cached aggregates
- Added JSONType
- NumberRangeType now supports coercing of integer values
- Added ChoiceType
- Added LocaleType
- Removed compat module, added total_ordering package to Python 2.6 requirements
- Enhanced render_statement function
- Added URLType
- Added __ne__ operator implementation for Country object
- New utility function: naturally_equivalent
- Renamed match operator of TSVectorType to match_tsquery in order to avoid confusion with existing match operator
- Added catalog parameter support for match_tsquery operator
- Added match operator for TSVectorType
- Added optional columns and options parameter for TSVectorType
- Fixed an issue with sort_query where sort by relationship property would cause an exception.
- Fixed an issue with sort_query where sort by main entity's attribute would fail if joins where applied.
- Added configuration for silent mode in sort_query
- Added support for aliased entity hybrid properties in sort_query
- Fixed sort_query hybrid property handling (again)
- Added support for relation hybrid property sorting in sort_query
- Fixed fatal bug in batch fetch join table inheritance handling (not handling one-to-many relations properly)
- Fixed sort_query hybrid property handling (now supports both ascending and descending sorting)
- More pythonic __init__ for Country allowing Country(Country('fi')) == Country('fi')
- Better equality operator for Country
- Added i18n module for configuration of locale dependant types
- Fixed remaining Python 3 issues with WeekDaysType
- Better bound method handling for WeekDay get_locale
- Python 3 support for WeekDaysType
- Fixed a bug in batch fetch for situations where joined paths contain zero entitites
- Added WeekDaysType
- Support for many-to-one directed relationship properties batch fetching
- PasswordType support for PostgreSQL
- Hybrid property for sort_query
- Added better handling of local column names in batch_fetch
- PasswordType gets default length even if no crypt context schemes provided
- Rewritten batch_fetch schematics, new syntax for backref population
- Initial backref population forcing support for batch_fetch
- Initial many-to-many relations support for batch_fetch
- Added batch_fetch function
- Added to_tsquery and plainto_tsquery sql function expressions
- Added tsvector_concat and tsvector_match sql function expressions
- Added ArrowType
- Added utility functions declarative_base, identity and is_auto_assigned_date_column
- Added PasswordType
- Lazy import for ipaddress package
- Fixed UUID import issues
- Added UUID type
- Added TSVector type
- Added non_indexed_foreign_keys utility function
- Fixed py3 bug introduced in 0.14.1
- Made sort_query support column_property selects with labels
- Python 3 support, dropped python 2.5 support
- Initial support for psycopg 2.5 NumericRange objects
- QuerySorter now threadsafe.
- Made sort_query function support multicolumn sorting.
- Added table_name utility function.
- ProxyDict now contains None values in cache - more efficient contains method.
- Fixed ProxyDict contains method
- Proxy dict expiration listener from function scope to global scope
- Added automatic expiration of proxy dicts
- Added utility functions remove_property and primary_keys
- Added ProxyDict
- Added coercion_listener
- Added ColorType
- Renamed Email to EmailType and ScalarList to ScalarListType (unified type class naming convention)
- Added CaseInsensitiveComparator
- Added Email type
- Added sort by aliased and joined entity
- sort_query now supports labeled and subqueried scalars
- Fixed empty ScalarList handling
- Removed unnecessary print statement form ScalarList
- Documentation for ScalarList and NumberRange
- Added ScalarList type
- Fixed NumberRange bind param and result value processing
- Changed PhoneNumber string representation to the national phone number format
- NumberRange now wraps ValueErrors as NumberRangeExceptions
- Fixed defer_except
- Better string representations for NumberRange
- Fixed NumberRange upper bound parsing
- Enabled PhoneNumberType None value storing
- Enhanced string parsing for NumberRange
- Fixed requirements (now supports SQLAlchemy 0.8)
- Added NumberRange type
- Extended PhoneNumber class from python-phonenumbers library
- Added PhoneNumberType type decorator
- Renamed SmartList to InstrumentedList
- Added instrumented_list decorator
- Added new collection class SmartList
- Added new function defer_except()
- Initial public release