]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
- [feature] The Core oeprator system now includes
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 20 Aug 2012 21:04:25 +0000 (17:04 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 20 Aug 2012 21:04:25 +0000 (17:04 -0400)
commitaef0c7a903464f4e05496c69ff4e78d41239c220
tree716afd20faf81a90ca734b946be619549f8d4384
parentce1b80ad08f58ea18914a93805754a5e19a85abb
- [feature] The Core oeprator system now includes
the `getitem` operator, i.e. the bracket
operator in Python.  This is used at first
to provide index and slice behavior to the
Postgresql ARRAY type, and also provides a hook
for end-user definition of custom __getitem__
schemes which can be applied at the type
level as well as within ORM-level custom
operator schemes.

Note that this change has the effect that
descriptor-based __getitem__ schemes used by
the ORM in conjunction with synonym() or other
"descriptor-wrapped" schemes will need
to start using a custom comparator in order
to maintain this behavior.

- [feature] postgresql.ARRAY now supports
indexing and slicing.  The Python [] operator
is available on all SQL expressions that are
of type ARRAY; integer or simple slices can be
passed.  The slices can also be used on the
assignment side in the SET clause of an UPDATE
statement by passing them into Update.values();
see the docs for examples.

- [feature] Added new "array literal" construct
postgresql.array().  Basically a "tuple" that
renders as ARRAY[1,2,3].
15 files changed:
CHANGES
doc/build/dialects/postgresql.rst
lib/sqlalchemy/dialects/postgresql/__init__.py
lib/sqlalchemy/dialects/postgresql/base.py
lib/sqlalchemy/sql/compiler.py
lib/sqlalchemy/sql/expression.py
lib/sqlalchemy/sql/operators.py
lib/sqlalchemy/types.py
lib/sqlalchemy/util/langhelpers.py
test/dialect/test_postgresql.py
test/lib/profiles.txt
test/orm/test_descriptor.py
test/orm/test_mapper.py
test/sql/test_compiler.py
test/sql/test_operators.py