| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
using an already instrumented column from a
superclass as "polymorphic_on" failed to resolve
the underlying Column. [ticket:2345]
|
| |
|
|
|
|
| |
"can't delete attribute" AttributeError when
setattr/delattr used on a hybrid that doesn't
define fset or fdel. [ticket:2353]
|
| |
|
|
|
| |
declarative_base(). Allows two or more declarative
bases to share the same registry of class names.
|
| |
|
|
| |
work as a kw arg in any(), has().
|
| |
|
|
|
|
| |
informative error message when no "default"
compilation handler is present, rather
than KeyError.
|
| |
|
|
|
|
| |
an empty tuple as well as an empty dict.
[ticket:2339]. Thanks to Fayaz Yusuf Khan
for the patch.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
against ORM-level column could be treated as
a distinct entity when producing certain
kinds of joined-inh joins. [ticket:2316]
- [bug] related to [ticket:2316], made some
adjustments to the change from [ticket:2261]
regarding the "from" list on a select(). The
_froms collection is no longer memoized, as this
simplifies various use cases and removes the
need for a "warning" if a column is attached
to a table after it was already used in an
expression - the select() construct will now
always produce the correct expression.
There's probably no real-world
performance hit here; select() objects are
almost always made ad-hoc, and systems that
wish to optimize the re-use of a select()
would be using the "compiled_cache" feature.
A hit which would occur when calling select.bind
has been reduced, but the vast majority
of users shouldn't be using "bound metadata"
anyway :).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
using concrete inheritance in conjunction with
the new ConcreteBase or AbstractConcreteBase
would fail to apply the subclasses deeper than
one level to the "polymorphic loader" of each
base [ticket:2312]
- [bug] Fixed bug whereby a subclass of a subclass
using the new AbstractConcreteBase would fail
to acquire the correct "base_mapper" attribute
when the "base" mapper was generated, thereby
causing failures later on. [ticket:2312]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
expired after an insert or update operation, instead
of regenerated in place. This ensures that a
column value which is expired within a flush
will be loaded first, before the composite
is regenerated using that value. [ticket:2309]
- [bug] The fix in [ticket:2309] also emits the
"refresh" event when the composite value is
loaded on access, even if all column
values were already present, as is appropriate.
This fixes the "mutable" extension which relies
upon the "load" event to ensure the _parents
dictionary is up to date, fixes [ticket:2308].
Thanks to Scott Torborg for the test case here.
|
| | |
|
| |
|
|
| |
does not propagate to subclasses. [ticket:2283]
|
| |
|
|
|
|
|
|
| |
dictionary to use a duck typing approach, i.e.
checks for "keys", to discern between update({})
and update((a, b)). Previously, passing a
dictionary that had tuples as keys would be misinterpreted
as a sequence. [ticket:2275]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Called after a configure() step has completed and
mappers were in fact affected. Theoretically this
event is called once per application, unless new mappings
are constructed after existing ones have been used
already.
- New declarative features:
- __declare_last__() method, establishes an event
listener for the class method that will be called
when mappers are completed with the final "configure"
step.
- __abstract__ flag. The class will not be mapped
at all when this flag is present on the class.
- New helper classes ConcreteBase, AbstractConcreteBase.
Allow concrete mappings using declarative which automatically
set up the "polymorphic_union" when the "configure"
mapper step is invoked.
- The mapper itself has semi-private methods that allow
the "with_polymorphic" selectable to be assigned
to the mapper after it has already been configured.
[ticket:2239]
|
| |
|
|
|
|
| |
redefined, a relationship many-to-one lazyload
would hit the __eq__() and fail. [ticket:2260]
Does not apply to 0.6.9.
|
| |
|
|
|
|
|
|
| |
examples, querying,
etc., part of [ticket:2246]
- add some accessors to AssociationProxy for attributes, test in join(), [ticket:2236]
- update relationship docs to talk about callables, part of [ticket:2246]
|
| |
|
|
|
|
|
|
|
| |
ForeignKeyConstraint refers to a column name in
the parent that is not found. Also in 0.6.9.
- add tests for [ticket:2226], as if we hit each @declared_attr
directly with obj.__get__(obj, name) instead of using
getattr(cls, name). Basic inheritance mechanics are improperly
used in this case, so 2226 is invalid.
|
| |
|
|
|
|
|
| |
if None or a non-corresponding type were set,
an error would be raised. None is now accepted
which assigns None to all attributes,
illegal values raise ValueError.
|
| |
|
|
|
|
| |
if the same type were used twice in one
mapping, the attributes beyond the first
would not get instrumented.
|
| |
|
|
|
|
| |
from a superclass of the same name would fail
due to an unnecessary lookup of the name
in the _decl_class_registry. [ticket:2194]
|
| |
|
|
|
|
| |
events to subclasses correctly; don't
create multiple event listeners for
subclasses either. [ticket:2180]
|
| | |
|
| |
|
|
|
|
| |
`None` was not appropriately handled, replacement
events were not appropriately handled.
[ticket:2143]
|
| |
|
|
|
|
|
|
|
| |
every test, close on every context.
this uses pool events but bypasses the pool's fairy/record/dispose services. pypy still seems to expose
some holes in that at least as far as what some (or maybe just one, cant find it yet) of the tests does.
haven't tested this too deeply, just on sqlite + postgres, cypthon 2.7 + pypy. will see what the buildbot
says
|
| | |
|
| |
|
|
|
|
| |
- have "packagenames" be present on FunctionElement by default
so that compiler.visit_function() can be called
- add a test for that
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
classes to a new test.lib.fixtures module
- move testing.TestBase to test.lib.fixtures
- massive search and replace
|
| |
|
|
|
| |
local cls.Basic, cls.Comparable base class so that there is no ambiguity
or hash identity behaviors getting in the way of class registration.
|
| |
|
|
|
|
|
| |
access to the cls/self.tables/classes registries
- express orm/_base.py ORMTest in terms of engine/_base.py TablesTest,
factor out common steps into TablesTest, remove AltEngineTest as a
separate class. will further consolidate these base classes
|
| |
|
|
| |
connection is lcosed
|
| |
|
|
| |
See #2088.
|
| | |
|
| |
|
|
|
| |
aren't mistaken for always-hashable, possibly-column
arguments. [ticket:2091]
|
| |
|
|
| |
tuple is now optional. [ticket:1468]
|
| | |
|
| |
|
|
|
|
|
|
| |
Column objects placed inline would fail
to initialize. The Column objects can now
be inline with the composite() or external
and pulled in via name or object ref.
[ticket:2058]
|
| |
|
|
|
|
|
| |
any(), has(), and contains() when proxying
a many-to-one scalar attribute to a one-to-many
collection (i.e. the reverse of the 'typical'
association proxy use case) [ticket:2054]
|
| |
|
|
|
| |
'metadata' is used for a column attribute on a
declarative class. [ticket:2050]
|
| | |
|
| |
|
|
|
|
|
| |
compilation of expression._BindParamClause including that
the auto-generated binds within the VALUES/SET clause
of an insert()/update() statement will also use the new
compilation rules. [ticket:2042]
|
| |
|
|
|
|
|
| |
would have no 'polymorphic_on' column if it didn't also
specify a 'polymorphic_identity', leading to strange
errors upon refresh, wrong class loaded when querying
from that target. [ticket:2038]
|
| |
|
|
|
| |
context.attributes where it's accessible by the
"load()" event. [ticket:2031]
|
| |
|
|
|
| |
- documentation for hybrid
- rewrite descriptor, synonym, comparable_property documentation
|
| | |
|
| |
|
|
|
|
|
| |
- add pickle/unpickle events to ORM events. these are needed
for the mutable extension.
- finish mutable extension documentation, consolidate examples,
add full descriptions
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
so that non-events are just _name.
|