summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/util/_collections.py
Commit message (Collapse)AuthorAgeFilesLines
* A major fix to the way in which a select() object producesMike Bayer2013-04-111-1/+0
| | | | | | | | | | | | | | | | | | | labeled columns when apply_labels() is used; this mode produces a SELECT where each column is labeled as in <tablename>_<columnname>, to remove column name collisions for a multiple table select. The fix is that if two labels collide when combined with the table name, i.e. "foo.bar_id" and "foo_bar.id", anonymous aliasing will be applied to one of the dupes. This allows the ORM to handle both columns independently; previously, 0.7 would in some cases silently emit a second SELECT for the column that was "duped", and in 0.8 an ambiguous column error would be emitted. The "keys" applied to the .c. collection of the select() will also be deduped, so that the "column being replaced" warning will no longer emit for any select() that specifies use_labels, though the dupe key will be given an anonymous label which isn't generally user-friendly. [ticket:2702]
* - remove all compat items that are pre-2.5 (hooray)Mike Bayer2013-03-091-26/+13
| | | | | | - other cleanup - don't need compat.decimal, that approach never panned out. hopefully outside libs aren't pulling it in, they shouldn't be
* happy new year (see #2645)Diana Clarke2013-01-011-1/+1
|
* - documentation and changelog for [ticket:2601]Mike Bayer2012-12-091-9/+57
|
* just a pep8 pass of this fileDiana Clarke2012-11-181-13/+32
|
* initializing _labels to an empty list so that the other methods don't throw ↵Diana Clarke2012-11-171-0/+1
| | | | exceptions in the None labels case, but rather return (), [], or {}. this is not backwards compatible, but doubt anyone is relying on those exceptions #2601
* adding _fields, _asdict() to KeyedTuple #2601Diana Clarke2012-11-171-0/+7
|
* __sub__ was declared twice, just increasing test coverage before I change ↵Diana Clarke2012-11-131-3/+0
| | | | anything
* Add items(), values() methods to Properties.Michael Elsdörfer2012-08-291-0/+6
|
* more import cleanupsMike Bayer2012-08-071-2/+1
|
* - justify NamedTuple, now called KeyedTupleMike Bayer2012-07-161-2/+11
| | | | - fix this test
* - [feature] *Very limited* support forMike Bayer2012-07-141-10/+24
| | | | | | | | | | | | | | inheriting mappers to be GC'ed when the class itself is deferenced. The mapper must not have its own table (i.e. single table inh only) without polymorphic attributes in place. This allows for the use case of creating a temporary subclass of a declarative mapped class, with no table or mapping directives of its own, to be garbage collected when dereferenced by a unit test. [ticket:2526]
* - [moved] The InstrumentationManager interfaceMike Bayer2012-06-241-85/+0
| | | | | | | | | | | | | and the entire related system of alternate class implementation is now moved out to sqlalchemy.ext.instrumentation. This is a seldom used system that adds significant complexity and overhead to the mechanics of class instrumentation. The new architecture allows it to remain unused until InstrumentationManager is actually imported, at which point it is bootstrapped into the core.
* - [bug] Changed LRUCache, used by the mapperMike Bayer2012-01-271-4/+9
| | | | | | | | | to cache INSERT/UPDATE/DELETE statements, to use an incrementing counter instead of a timestamp to track entries, for greater reliability versus using time.time(), which can cause test failures on some platforms. [ticket:2379]
* happy new yearMike Bayer2012-01-041-1/+1
|
* - [feature] IdentitySet supports the - operatorMike Bayer2011-12-061-0/+3
| | | | | as the same as difference(), handy when dealing with Session.dirty etc. [ticket:2301]
* rename 'frozendict' to 'immutabledict', since 'frozen' implies hashabilityMike Bayer2011-01-201-5/+5
| | | | | like frozenset which isn't really the purpose of 'immutabledict' (could be someday, in which case, we'd change the name back :) )
* - whitespace removal bonanzaMike Bayer2011-01-021-31/+31
|
* - clean up copyright, update for 2011, stamp every file withMike Bayer2011-01-021-0/+6
| | | | | a consistent tag - AUTHORS file
* - another heap of inlinings and now I really have to be done with thisMike Bayer2010-12-211-7/+14
|
* callcount reductionMike Bayer2010-12-201-3/+4
|
* merge tipMike Bayer2010-12-171-2/+1
|\
| * - inliningsMike Bayer2010-12-161-2/+1
| | | | | | | | - in particular, mapper.primary_key is a tuple now
* | - system to cache the bind/result processors in a dialect-wide registry.Mike Bayer2010-12-131-1/+0
|/ | | | its an idea with pointy edges.
* - why type.dialect_impl(dialect).bind_processor(dialect), caching just the impl?Mike Bayer2010-12-131-1/+1
| | | | | | just call type._cached_bind_processor(dialect), cache the impl *and* the processor function. same for result sets. - use plain dict + update for defaultexecutioncontext.execution_options
* - another easy win, cache the calc of bind processors in the compiled objectMike Bayer2010-12-121-3/+3
|
* - replace util.py with util/ package, [ticket:1986]Mike Bayer2010-11-281-0/+885