| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
See README.unittests for information on how to run
the tests. [ticket:970]
|
| |
|
|
|
|
|
|
| |
State which represents the linkage between a parent and
child object does not support "flushed" status on
one side of the link and not the other, so supporting
this operation leads to misleading results.
[ticket:1315]
|
| | |
|
| |
|
|
|
| |
pending objects which remain pending after the operation won't
inadvertently be added as persistent. [ticket:1306]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
placed on a many-to-many relation. First, the bad news:
the warning will apply to both many-to-many as well as
many-to-one relations. This is necessary since in both
cases, SQLA does not scan the full set of potential parents
when determining "orphan" status - for a persistent object
it only detects an in-python de-association event to establish
the object as an "orphan". Next, the good news: to support
one-to-one via a foreign key or assocation table, or to
support one-to-many via an association table, a new flag
single_parent=True may be set which indicates objects
linked to the relation are only meant to have a single parent.
The relation will raise an error if multiple parent-association
events occur within Python.
- Fixed bug in delete-orphan cascade whereby two one-to-one
relations from two different parent classes to the same target
class would prematurely expunge the instance. This is
an extension of the non-ticketed fix in r4247.
- the order of "sethasparent" flagging in relation to
AttributeExtensions has been refined such that false setparents
are issued before the event, true setparents issued afterwards.
event handlers "know" that a remove event originates
from a non-orphan but need to know if its become an orphan,
and that append events will become non-orphans but need to know
if the event originates from a non-orphan.
|
| |
|
|
|
|
| |
Session methods have been deprecated, replaced by
"expunge_all()" and "add()". "expunge_all()" has also
been added to ScopedSession.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This produces misleading or erroneous results since SQLA does
not retrieve the full list of "parents" for m2m. To get delete-orphan
behavior with an m2m table, use an explcit association class
so that the individual association row is treated as a parent.
[ticket:1281]
- delete-orphan cascade always requires delete cascade. Specifying
delete-orphan without delete now raises a deprecation warning.
[ticket:1281]
|
| |
|
|
|
| |
This should assist with helping to document the reasons for testing failures.
Currently unspecified failures are defaulted to 'FIXME: unknown'.
|
| |
|
|
|
|
|
|
| |
that cascade and flush operations will not initialize
unloaded attributes and collections, leaving them intact for
a lazy-load later on. Backref events still initialize
attrbutes and collections for pending instances.
[ticket:1202]
|
| |
|
|
|
| |
has been removed. For rationale, see
http://groups.google.com/group/sqlalchemy/browse_thread/thread/9e23a0641a88b96d?hl=en
|
| |
|
|
|
|
|
| |
is the one where the "cascade" option should take effect.
- can use None as a value for cascade.
- documented cascade options in docstring, [ticket:1064]
|
| |
|
|
|
|
| |
now considers the cascade rules of the event initiator only, not the local
attribute. This way the cascade of the initiator controls the behavior
regardless of backref events.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
- @unsupported now only accepts a single target and demands a reason
for not running the test.
- @exclude also demands an exclusion reason
- Greatly expanded @testing.requires.<feature>, eliminating many
decorators in the suite and signficantly easing integration of
multi-driver support.
- New ORM test base class, and a featureful base for mapped tests
- Usage of 'global' for shared setup going away, * imports as well
|
| |
|
|
| |
0.4 development continues at /sqlalchemy/branches/rel_0_4
|
| |
|
|
|
| |
- added coverage for some extra cases in dynamic relations
- removed some unused methods from unitofwork
|
| |
|
|
| |
- move flush error for orphans from Mapper to UnitOfWork
|
| |
|
|
|
|
|
|
|
| |
- your cries have been heard: removing a pending item
from an attribute or collection with delete-orphan
expunges the item from the session; no FlushError is raised.
Note that if you session.save()'ed the pending item
explicitly, the attribute/collection removal still knocks
it out.
|
| |
|
|
|
| |
tests extend from either TestBase or ORMTest, using additional mixins for
special assertion methods as needed
|
| |
|
|
|
|
| |
- Importing testenv has no side effects- explicit functions provide similar behavior to the old immediate behavior of testbase
- testing.db has the configured db
- Fixed up the perf/* scripts
|
| |
|
|
| |
No surprises.
|
| |
|
|
|
|
|
|
|
|
|
| |
to a collection-based attribute which already had pending changes
would generate incorrect history [ticket:922]
- fixed delete-orphan cascade bug whereby setting the same
object twice to a scalar attribute could log it as an orphan
[ticket:925]
- generative select.order_by(None) / group_by(None) was not managing to
reset order by/group by criterion, fixed [ticket:924]
|
| | |
|
| |
|
|
|
|
|
|
|
| |
another session";
e.g. if you pickle a series of objects and unpickle (i.e. as in a Pylons HTTP session
or similar), they can go into a new session without any conflict
- added stricter checks around session.delete() similar to update()
- shored up some old "validate" stuff in session/uow
|
| |
|
|
| |
(obj.relation = obj.relation[1:]) [ticket:834]
|
| | |
|
| |
|
|
| |
omitting modules from sqlalchemy.__all__...
|
| |
|
|
| |
maintenance branch in branches/rel_0_3.
|
| |
|
|
|
| |
- Deprecated BoundMetaData- use MetaData instead
- Removed DMD and BMD from documentation
|
| | |
|
| |
|
|
|
|
| |
and trying to remove unneeded parts of dependency.py cascades.
also de-emphasizing the whole session.flush([oneobject]) thing since i dont really
agree it should be supported
|
| |
|
|
| |
items in the cascade [ticket:445]
|
| |
|
|
|
|
| |
relationships [ticket:427],
backref presence generally hid the symptom
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
"echo" keyword parameters are still functional but set/unset
log levels for their respective classes/instances. all logging
can be controlled directly through the Python API by setting
INFO and DEBUG levels for loggers in the "sqlalchemy" namespace.
class-level logging is under "sqlalchemy.<module>.<classname>",
instance-level logging under "sqlalchemy.<module>.<classname>.<hexid>".
Test suite includes "--log-info" and "--log-debug" arguments
which work independently of --verbose/--quiet. Logging added
to orm to allow tracking of mapper configurations, row iteration
fixes [ticket:229] [ticket:79]
|
| |
|