summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/topological.py
Commit message (Collapse)AuthorAgeFilesLines
* - annual unitofwork cleanupMike Bayer2008-09-151-4/+1
| | | | | | | - moved conversion of cyclical sort to UOWTask structure to be non-recursive - reduced some verbosity - rationale for the "tree" sort clarified - would love to flatten all of uow topological sorting, sorting within mapper._save_obj() into a single sort someday
* - Dropped `reversed` emulationJason Kirtland2008-07-151-2/+1
|
* - Removed 2.3 set emulations/enhancements.Jason Kirtland2008-07-151-11/+11
| | | | (sets.Set-based collections & DB-API returns still work.)
* And thus ends support for Python 2.3.Jason Kirtland2008-07-151-3/+3
|
* r4695 merged to trunk; trunk now becomes 0.5.Mike Bayer2008-05-091-5/+5
| | | | 0.4 development continues at /sqlalchemy/branches/rel_0_4
* happy new yearMike Bayer2008-01-011-1/+1
|
* [ticket:888] continued, synonym add_propMike Bayer2007-12-081-0/+1
|
* ok found itMike Bayer2007-12-081-2/+2
|
* - flush() refactor merged from uow_nontree branch r3871-r3885Mike Bayer2007-12-081-168/+178
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - topological.py cleaned up, presents three public facing functions which return list/tuple based structures, without exposing any internals. only the third function returns the "hierarchical" structure. when results include "cycles" or "child" items, 2- or 3- tuples are used to represent results. - unitofwork uses InstanceState almost exclusively now. new and deleted lists are now dicts which ref the actual object to provide a strong ref for the duration that they're in those lists. IdentitySet is only used for the public facing versions of "new" and "deleted". - unitofwork topological sort no longer uses the "hierarchical" version of the sort for the base sort, only for the "per-object" secondary sort where it still helps to group non-dependent operations together and provides expected insert order. the default sort deals with UOWTasks in a straight list and is greatly simplified. Tests all pass but need to see if svilen's stuff still works, one block of code in _sort_cyclical_dependencies() seems to not be needed anywhere but i definitely put it there for a reason at some point; if not hopefully we can derive more test coverage from that. - the UOWEventHandler is only applied to object-storing attributes, not scalar (i.e. column-based) ones. cuts out a ton of overhead when setting non-object based attributes. - InstanceState also used throughout the flush process, i.e. dependency.py, mapper.save_obj()/delete_obj(), sync.execute() all expect InstanceState objects in most cases now. - mapper/property cascade_iterator() takes InstanceState as its argument, but still returns lists of object instances so that they are not dereferenced. - a few tricks needed when dealing with InstanceState, i.e. when loading a list of items that are possibly fresh from the DB, you *have* to get the actual objects into a strong-referencing datastructure else they fall out of scope immediately. dependency.py caches lists of dependent objects which it loads now (i.e. history collections). - AttributeHistory is gone, replaced by a function that returns a 3-tuple of added, unchanged, deleted. these collections still reference the object instances directly for the strong-referencing reasons mentiontioned, but it uses less IdentitySet logic to generate.
* a little refinement to topological options, more to comeMike Bayer2007-12-071-5/+7
|
* - decruftify old visitors used by orm, convert to functions thatMike Bayer2007-11-241-3/+6
| | | | | | use a common traversal function. - TranslatingDict is finally gone, thanks to column.proxy_set simpleness...hooray ! - shoved "slice" use case on RowProxy into an exception case. knocks noticeable time off of large result set operations.
* - Removed equality, truth and hash() testing of mapped instances. MappedJason Kirtland2007-11-031-6/+6
| | | | classes can now implement arbitrary __eq__ and friends. [ticket:676]
* - mapper compilation has been reorganized such that most compilationMike Bayer2007-09-021-26/+3
| | | | | | | | | | occurs upon mapper construction. this allows us to have fewer calls to mapper.compile() and also to allow class-based properties to force a compilation (i.e. User.addresses == 7 will compile all mappers; this is [ticket:758]). The only caveat here is that an inheriting mapper now looks for its inherited mapper upon construction; so mappers within inheritance relationships need to be constructed in inheritance order (which should be the normal case anyway).
* use threading.local if availableJason Kirtland2007-08-151-1/+1
| | | | | speed up ThreadLocal for python 2.3 [ticket:743] clean in topo (in patch from [ticket:743])
* mass has_key->__contains__ migration, [ticket:738]Mike Bayer2007-08-151-6/+6
|
* switch "if not len(x)" to "if not x"Jonathan Ellis2007-08-031-2/+2
|
* only one instance of while len(...)Jonathan Ellis2007-08-031-2/+2
|
* add comment, intermediate var for readabilityJonathan Ellis2007-08-031-5/+5
|
* merging 0.4 branch to trunk. see CHANGES for details. 0.3 moves to ↵Mike Bayer2007-07-271-2/+1
| | | | maintenance branch in branches/rel_0_3.
* - fixed usage of 2.4-only "reversed" in topological.py [ticket:506]Mike Bayer2007-03-081-1/+1
|
* - fixed use_alter flag on ForeignKeyConstraint [ticket:503]Mike Bayer2007-03-071-3/+3
|
* migrated (most) docstrings to pep-257 format, docstring generator using ↵Mike Bayer2007-02-251-51/+95
| | | | | | straight <pre> + trim() func for now. applies most of [ticket:214], compliemnts of Lele Gaifax
* - fix for very large topological sorts, courtesy ants.aasma at gmail ↵Mike Bayer2007-02-131-39/+42
| | | | [ticket:423]
* removed extra _find_cycles callMike Bayer2007-02-021-1/+0
|
* copyright updateMike Bayer2007-01-051-1/+1
|
* - added "remote_side" argument to relation(), used only with self-referentialMike Bayer2006-12-021-1/+2
| | | | | | | | mappers to force the direction of the parent/child relationship. replaces the usage of the "foreignkey" parameter for "switching" the direction; while "foreignkey" can still be used to "switch" the direction of a parent/ child relationship, this usage is deprecated; "foreignkey" should always indicate the actual foreign key columns from now on.
* one of those non-2.3 generators got in there...Mike Bayer2006-11-121-1/+1
|
* further refactoring of topological sort for clarityMike Bayer2006-11-111-87/+102
|
* more fixes to topological sort with regards to cycles, fixes [ticket:365]Mike Bayer2006-11-111-44/+59
|
* - fix to subtle condition in topological sort where a node could appear twice,Mike Bayer2006-11-041-2/+3
| | | | for [ticket:362]
* converted imports to absoluteMike Bayer2006-10-261-1/+1
|
* progress on [ticket:329]Mike Bayer2006-10-191-0/+238
|
* rearranging mapper/objectstore into a subdirectory, breaking up files since ↵Mike Bayer2005-12-031-207/+0
| | | | they are huge
* (no commit message)Mike Bayer2005-11-171-8/+20
|
* brand new topological sort library. woop.Mike Bayer2005-11-171-0/+195