| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
prevent it from being useful. will have a much more comprehensive example in
0.6.
|
| | |
|
| |
|
|
|
|
| |
Comparing equivalence of columns in the ORM is best
accomplished using col1.shares_lineage(col2).
[ticket:1491]
|
| |
|
|
| |
Cleaned up some deprecation warnings in the examples.
|
| | |
|
| |
|
|
|
|
|
| |
Explicit imports make it easier for users to understand the examples.
Additionally a lot of the examples were fixed to work with the changes in the
0.5.x code base. One small correction to the Case expression. Thanks a bunch
to Adam Lowry! Fixes #717.
|
| |
|
|
|
| |
so that the "listen_for_events.py" example works again.
[ticket:1314]
|
| |
|
|
|
|
|
| |
class. It can be subclassed to provide user-defined
SQL functions in an imperative style, including
with pre-established behaviors. The postgis.py
example illustrates one usage of this.
|
| |
|
|
|
|
|
|
|
|
| |
column_property(), relation() etc. can define
new comparison methods on the Comparator, which will
become available via __getattr__() on the
InstrumentedAttribute. In the case of synonym()
or comparable_property(), attributes are resolved first
on the user-defined descriptor, then on the user-defined
comparator.
|
| |
|
|
| |
integration to the examples folder.
|
| |
|
|
|
|
|
|
|
|
|
| |
accurately adapt the expressions generated, which helps
particularly with self-referential comparisons. [ticket:1171]
- Fixed bug involving primaryjoin/secondaryjoin conditions
constructed from class-bound attributes (as often occurs
when using declarative), which later would be inappropriately
aliased by Query, particularly with the various EXISTS
based comparators.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
accept a single or list of AttributeExtensions using the
"extension" keyword argument.
- 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.
- removed validate_attributes example, the new methodology replaces it
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
A new example "validate_attributes.py" shows one such recipe
for doing this. AttributeListener helper functions are
also on the way.
|
| | |
|
| | |
|
| |
|
|
| |
to travel)
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
- Fixed query.join() when used in conjunction with a
columns-only clause and an SQL-expression
ON clause in the join.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in DELETE; not sure how to do this exact operation in MySQL
- added query_cls keyword argument to sessionmaker(); allows user-defined Query subclasses to be generated by query().
- added @attributes.on_reconstitute decorator, MapperExtension.on_reconstitute, both receieve 'on_load' attribute event allowing
non-__init__ dependent instance initialization routines.
- push memusage to the top to avoid pointless heisenbugs
- renamed '_foostate'/'_fooclass_manager' to '_sa_instance_state'/'_sa_class_manager'
- removed legacy instance ORM state accessors
- query._get() will use _remove_newly_deleted instead of expunge() on ObjectDeleted, so that transaction rollback
restores the previous state
- removed MapperExtension.get(); replaced by a user-defined Query subclass
- removed needless **kwargs from query.get()
- removed Session.get(cls, id); this is redundant against Session.query(cls).get(id)
- removed Query.load() and Session.load(); the use case for this method has never been clear, and the same functionality is available in more explicit ways
|
| | |
|
| | |
|
| |
|
|
| |
0.4 development continues at /sqlalchemy/branches/rel_0_4
|
| |
|
|
|
| |
a simple way to place dictionary behavior on top of
a dynamic_loader.
|
| |
|
|
|
|
|
| |
unmanaged Python properties
- Some aspects of MapperProperty initialization are streteched pretty thin now
and need a refactor; will proceed with these on the user_defined_state branch
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
- fixed vertical example to just use a scoped session
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
- user-defined shard_chooser() function must accept "clause=None"
argument; this is the ClauseElement passed to session.execute(statement)
and can be used to determine correct shard id (since execute() doesn't
take an instance)
|
| |
|
|
|
|
|
| |
- inline default execution occurs for *all* non-PK columns
unconditionally - preexecute only for non-executemany PK cols on
PG, Oracle, etc.
- new default docs
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
SQL expressions to be pickleable [ticket:735]
- small adjustment to mapper class.__init__ to allow for Py2.6 object.__init__()
behavior
|
| | |
|
| | |
|
| |
|
|
| |
- moved shard example/unittest over to sessionmaker
|
| |
|
|
| |
style queries
|
| |
|
|
|
|
| |
for EXT_CONTINUE.
Repointed docs and examples to EXT_CONTINUE
|
| |
|
|
| |
- disabled PG schema test for now (want to see the buildbot succeed)
|
| |
|
|
| |
maintenance branch in branches/rel_0_3.
|
| |
|
|
|
| |
- Deprecated BoundMetaData- use MetaData instead
- Removed DMD and BMD from documentation
|