summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/ext
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #60 from wichert/mutable-doc-importmike bayer2014-01-231-1/+0
|\ | | | | Remove uneeded import from code example
| * Remove uneeded import from code examplepr/60Wichert Akkerman2014-01-201-1/+0
| | | | | | | | | | This had me reread the code twice to see if I missed why the import was present.
* | - Support is improved for supplying a :func:`.join` construct as theMike Bayer2014-01-221-0/+4
|/ | | | | | | | | | target of :paramref:`.relationship.secondary` for the purposes of creating very complex :func:`.relationship` join conditions. The change includes adjustments to query joining, joined eager loading to not render a SELECT subquery, changes to lazy loading such that the "secondary" target is properly included in the SELECT, and changes to declarative to better support specification of a join() object with classes as targets.
* - happy new yearMike Bayer2014-01-0513-13/+13
|
* - many-to-many supportMike Bayer2014-01-051-66/+786
| | | | | - tests - full documentation, changelog, new in 0.9 announcement
* - basic functionality.Mike Bayer2014-01-041-23/+30
|
* - hypothetical "automap" feature, would extend DeferredReflection to create ↵Mike Bayer2014-01-031-0/+113
| | | | | | classes against the remaining tables within the given metadata.
* - Fixed an extremely unlikely memory issue where when usingMike Bayer2014-01-032-19/+63
| | | | | | | | | | :class:`.DeferredReflection` to define classes pending for reflection, if some subset of those classes were discarded before the :meth:`.DeferredReflection.prepare` method were called to reflect and map the class, a strong reference to the class would remain held within the declarative internals. This internal collection of "classes to map" now uses weak references against the classes themselves.
* - A quasi-regression where apparently in 0.8 you can set a class-levelMike Bayer2014-01-021-1/+20
| | | | | | | | | | | attribute on declarative to simply refer directly to an :class:`.InstrumentedAttribute` on a superclass or on the class itself, and it acts more or less like a synonym; in 0.9, this fails to set up enough bookkeeping to keep up with the more liberalized backref logic from :ticket:`2789`. Even though this use case was never directly considered, it is now detected by declarative at the "setattr()" level as well as when setting up a subclass, and the mirrored/renamed attribute is now set up as a :func:`.synonym` instead. [ticket:2900]
* - Declarative does an extra check to detect if the sameMike Bayer2013-12-271-1/+14
| | | | | | | :class:`.Column` is mapped multiple times under different properties (which typically should be a :func:`.synonym` instead) or if two or more :class:`.Column` objects are given the same name, raising a warning if this condition is detected. [ticket:2828]
* - The :class:`.DeferredReflection` class has been enhanced to provideMike Bayer2013-12-032-38/+75
| | | | | | | | | | | | | | | | automatic reflection support for the "secondary" table referred to by a :func:`.relationship`. "secondary", when specified either as a string table name, or as a :class:`.Table` object with only a name and :class:`.MetaData` object will also be included in the reflection process when :meth:`.DeferredReflection.prepare` is called. [ticket:2865] - clsregistry._resolver() now uses a stateful _class_resolver() class in order to handle the work of mapping strings to objects. This is to provide for simpler extensibility, namely a ._resolvers collection of ad-hoc name resolution functions; the DeferredReflection class adds its own resolver here in order to handle relationship(secondary) names which generate new Table objects.
* Fixed bug where in Py2K a unicode literal would not be acceptedMike Bayer2013-11-291-1/+1
| | | | | as the string name of a class or other argument within declarative using :func:`.relationship`.
* - reduce verbiage in mutation.py regarding legacy style, place under ↵Mike Bayer2013-11-291-7/+3
| | | | versionadded
* Fixed a syntax error in example code.Hyunjun Kim2013-11-291-1/+1
|
* Merge pull request #46 from vrajmohan/mastermike bayer2013-11-294-14/+14
|\ | | | | More fixes for cross references and reducing warnings (3rd wave)
| * Fix cross referencesVraj Mohan2013-11-173-12/+12
| |
| * Add API generation to resolve cross referencesVraj Mohan2013-11-171-1/+1
| |
| * Remove reference to defunct classVraj Mohan2013-11-171-1/+1
| | | | | | | | | | | | We should probably reword this entirely as, IMHO, this should be in the changelog and not in the doc proper (which should only describe the current state of affairs).
* | - add more explicit docs for relationship mixin, [ticket:2876]Mike Bayer2013-11-271-4/+50
| |
* | - Fixed bug which prevented the ``serializer`` extension from workingMike Bayer2013-11-211-4/+4
|/ | | | | correctly with table or column names that contain non-ASCII characters. [ticket:2869]
* Fix cross referencesVraj Mohan2013-11-121-1/+1
|
* - catch the metadata on ScalarTest.test_scalar_proxy, this has been leaving ↵Mike Bayer2013-10-251-1/+5
| | | | | | | | itself around for a long time - association proxy now returns None for proxied scalar that is also None, rather than raising AttributeError. [ticket:2810]
* - apply an import refactoring to the ORM as wellMike Bayer2013-08-143-6/+7
| | | | | | | | | - rework the event system so that event modules load after their targets, dependencies are reversed - create an improved strategy lookup system for the ORM - rework the ORM to have very few import cycles - move out "importlater" to just util.dependency - other tricks to cross-populate modules in as clear a way as possible
* - add event.contains() function to the event package, returns TrueMike Bayer2013-07-261-1/+1
| | | | | if the given target/event/fn is set up to listen. - repair mutable package which is doing some conditional event listening
* tpoMike Bayer2013-07-201-9/+9
|
* - Improved the examples in ``examples/generic_associations``, includingMike Bayer2013-07-192-1/+41
| | | | | | | | | | | | | | | that ``discriminator_on_association.py`` makes use of single table inheritance do the work with the "discriminator". Also added a true "generic foreign key" example, which works similarly to other popular frameworks in that it uses an open-ended integer to point to any other table, foregoing traditional referential integrity. While we don't recommend this pattern, information wants to be free. Also in 0.8.3. - Added a convenience class decorator :func:`.as_declarative`, is a wrapper for :func:`.declarative_base` which allows an existing base class to be applied using a nifty class-decorated approach. Also in 0.8.3.
* Minor hybrid extension documentation updatepr/18David Beitey2013-07-191-2/+2
|
* - Added new method to the :func:`.insert` constructMike Bayer2013-07-051-0/+6
| | | | | | | | | | :meth:`.Insert.from_select`. Given a list of columns and a selectable, renders ``INSERT INTO (table) (columns) SELECT ..``. While this feature is highlighted as part of 0.9 it is also backported to 0.8.3. [ticket:722] - The :func:`.update`, :func:`.insert`, and :func:`.delete` constructs will now interpret ORM entities as FROM clauses to be operated upon, in the same way that select() already does. Also in 0.8.3.
* ORM descriptors such as hybrid properties can now be referencedMike Bayer2013-07-021-10/+12
| | | | | | by name in a string argument used with ``order_by``, ``primaryjoin``, or similar in :func:`.relationship`, in addition to column-bound attributes. [ticket:2761]
* - add a test for pullreq 8Mike Bayer2013-06-231-3/+3
| | | | - simplify
* make tests passpr/8Devi2013-06-201-1/+1
|
* check if compostite_class is of class typeDevi2013-06-191-1/+2
| | | | before checking if it is a subclass of `MutableComposite`
* - rework PropComparator.adapted() to be PropComparator.adapt_to_entity(),Mike Bayer2013-06-171-1/+1
| | | | | | | passes in AliasedInsp and allows more flexibility. - rework the AliasedClass/AliasedInsp relationship so that AliasedInsp has all state and functionality. AliasedClass is just a facade. [ticket:2756]
* Added additional criterion to the ==, != comparators, used withMike Bayer2013-06-081-4/+26
| | | | | | | | | | | | | | | | | | | scalar values, for comparisons to None to also take into account the association record itself being non-present, in addition to the existing test for the scalar endpoint on the association record being NULL. Previously, comparing ``Cls.scalar == None`` would return records for which ``Cls.associated`` were present and ``Cls.associated.scalar`` is None, but not rows for which ``Cls.associated`` is non-present. More significantly, the inverse operation ``Cls.scalar != None`` *would* return ``Cls`` rows for which ``Cls.associated`` was non-present. Additionally, added a special use case where you can call ``Cls.scalar.has()`` with no arguments, when ``Cls.scalar`` is a column-based value - this returns whether or not ``Cls.associated`` has any rows present, regardless of whether or not ``Cls.associated.scalar`` is NULL or not. [ticket:2751]
* Fixed bug where :class:`.MutableDict` didn't report a change eventMike Bayer2013-06-031-0/+4
| | | | | when ``clear()`` was called. [ticket:2730]
* - fix a dict while iterate mutationMike Bayer2013-05-271-1/+1
| | | | | - illustrate how OrderedDict can catch these, but commented out to save function overhead
* clean up some of this collection stuffMike Bayer2013-05-261-18/+12
|
* a pass where we try to squash down as many list()/keys() combinationsMike Bayer2013-05-264-6/+6
| | | | as possible
* do a sweep of some obvious 3kismsMike Bayer2013-05-261-16/+27
|
* Merge branch 'rel_0_9' of bitbucket.org:zzzeek/sqlalchemy into rel_0_9Mike Bayer2013-05-261-1/+1
|\
| * - fixing AbstractConcreteBase import in docstring, 0.9diana2013-05-261-1/+1
| | | | | | branch, [ticket:2717]
* | extension testsMike Bayer2013-05-261-9/+7
| |
* | fix serializer tests. something is wrong with non-C pickle but for some ↵Mike Bayer2013-05-261-19/+2
|/ | | | | | reason py3k's pickle seems to be OK? not sure why that is, as this is all related to http://bugs.python.org/issue998998
* most of ORM passing...Mike Bayer2013-05-041-0/+2
|
* - the raw 2to3 runMike Bayer2013-04-277-50/+52
| | | | - went through examples/ and cleaned out excess list() calls
* fix here, was only failing in the py3k versionMike Bayer2013-04-261-1/+1
|
* Fixes to the ``sqlalchemy.ext.serializer`` extension, includingMike Bayer2013-04-261-2/+3
| | | | | | | that the "id" passed from the pickler is turned into a string to prevent against bytes being parsed on Py3K, as well as that ``relationship()`` and ``orm.join()`` constructs are now properly serialized. [ticket:2698] and some other observed issues.
* Fixed indirect regression regarding :func:`.has_inherited_table`,Mike Bayer2013-04-091-1/+1
| | | | | | | | | | | where since it considers the current class' ``__table__``, was sensitive to when it was called. This is 0.7's behavior also, but in 0.7 things tended to "work out" within events like ``__mapper_args__()``. :func:`.has_inherited_table` now only considers superclasses, so should return the same answer regarding the current class no matter when it's called (obviously assuming the state of the superclass). [ticket:2656]
* this step is not neededMike Bayer2013-02-251-3/+0
|
* formattingMike Bayer2013-02-021-3/+7
|