summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | - simplify PK logic in update for row switchMike Bayer2014-08-192-16/+9
| | | | | |
* | | | | | - refinementsMike Bayer2014-08-195-72/+86
| | | | | |
* | | | | | devMike Bayer2014-08-181-19/+18
| | | | | |
* | | | | | devMike Bayer2014-08-181-26/+21
| | | | | |
* | | | | | Merge branch 'master' into ticket_3100Mike Bayer2014-08-189-483/+520
|\ \ \ \ \ \ | |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: lib/sqlalchemy/orm/mapper.py lib/sqlalchemy/orm/persistence.py
| * | | | | - optimize collection of cols we insert as noneMike Bayer2014-08-182-17/+11
| | | | | |
| * | | | | - move out checks for table in mapper._pks_by_tableMike Bayer2014-08-181-16/+32
| | | | | |
| * | | | | - further reorganize collect_insert_commands to distinguish betweenMike Bayer2014-08-181-13/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | setting up given values vs. defaults. again trying to shoot for making this of more general use
| * | | | | - organize persistence methods in terms of generators,Mike Bayer2014-08-181-93/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | narrow down argument lists and generator items for each function down to just what each function needs. This will help for them to be of more multipurpose use for bulk operations
| * | | | | - major simplification of _collect_update_commands. in particular,Mike Bayer2014-08-182-83/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | we only call upon the history API fully for primary key columns. We also now skip the whole step of looking at PK columns and using any history at all if no net changes are detected on the object.
| * | | | | - Fixed bug where attribute "set" events or columns withMike Bayer2014-08-172-19/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ``@validates`` would have events triggered within the flush process, when those columns were the targets of a "fetch and populate" operation, such as an autoincremented primary key, a Python side default, or a server-side default "eagerly" fetched via RETURNING. fixes #3167
| * | | | | - oldest screwup in the book, forgot the fileMike Bayer2014-08-161-0/+167
| |/ / / /
| * | | | - rework profiling, zoomark tests into single tests so thatMike Bayer2014-08-162-250/+78
| | | | | | | | | | | | | | | | | | | | they can be used under xdist
| * | | | - changelog for pullreq github:125Mike Bayer2014-08-161-0/+10
| | | | | | | | | | | | | | | | | | | | - add pg8000 version detection for the "sane multi rowcount" feature
| * | | | Merge remote-tracking branch 'origin/pr/125' into pr125Mike Bayer2014-08-161-3/+1
| |\ \ \ \
| | * | | | pg8000 now supports sane_multi_rowcountpr/125Tony Locke2014-08-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From pg8000-1.9.14 sane_multi_rowcount is supported so this commit updates the dialect accordingly.
| | * | | | Remove spurious print statements in pg8000 dialectTony Locke2014-08-021-2/+0
| | | | | |
| * | | | | - support dialects w/o sane multi row count againMike Bayer2014-08-161-15/+33
| | | | | |
| * | | | | - need list() here for py3kMike Bayer2014-08-161-1/+4
| | | | | |
| * | | | | - max failures 25Mike Bayer2014-08-161-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | - guard against some potential pytest snarkiness
| * | | | | - mutablemapping adds compiler overhead, so screw itMike Bayer2014-08-151-5/+9
| | | | | |
| * | | | | - port the _collect_insert_commands optimizations from ticket_3100Mike Bayer2014-08-152-36/+70
| | | | | |
* | | | | | - refine this enough so that _collect_insert_commands() seemsMike Bayer2014-08-152-133/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to be more than twice as fast now (.039 vs. .091); bulk_insert() and bulk_update() do their own collection but now both call into _emit_insert_statements() / _emit_update_statements(); the approach seems to have no impact on insert speed, still .85 for the insert test
* | | | | | - change to be represented as two very fast bulk_insert() and bulk_update() ↵Mike Bayer2014-08-155-145/+213
| | | | | | | | | | | | | | | | | | | | | | | | methods
* | | | | | devMike Bayer2014-08-154-37/+70
| | | | | |
* | | | | | - proof of conceptMike Bayer2014-08-154-39/+113
|/ / / / /
* | | | | - The :class:`.IdentityMap` exposed from :class:`.Session.identity`Mike Bayer2014-08-151-26/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | now returns lists for ``items()`` and ``values()`` in Py3K. Early porting to Py3K here had these returning iterators, when they technically should be "iterable views"..for now, lists are OK.
* | | | | - TIL that dict.keys() in py3K is not an iterator, it is an iterableMike Bayer2014-08-152-43/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | view. So copy collections.OrderedDict and use MutableMapping to set up keys, items, values on our own OrderedDict. Conflicts: lib/sqlalchemy/engine/base.py
* | | | | - clean up provision and keep sqlite on memory DBs if thats what we start withMike Bayer2014-08-151-10/+7
| | | | |
* | | | | - don't add the parent attach event within _on_table_attachMike Bayer2014-08-151-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | if we already have a table; this prevents reentrant calls and we aren't supporting columns/etc being moved around between different parents
* | | | | - other test fixesMike Bayer2014-08-151-1/+1
| | | | |
* | | | | - modify how class state is tracked here as it seems like thingsMike Bayer2014-08-151-5/+6
| | | | | | | | | | | | | | | | | | | | are a little more crazy under xdist mode
* | | | | - UPDATE statements can now be batched within an ORM flushMike Bayer2014-08-141-41/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into more performant executemany() call, similarly to how INSERT statements can be batched; this will be invoked within flush to the degree that subsequent UPDATE statements for the same mapping and table involve the identical columns within the VALUES clause, as well as that no VALUES-level SQL expressions are embedded. - some other inlinings within persistence.py
* | | | | pep8Mike Bayer2014-08-141-9/+9
| | | | |
* | | | | - The string keys that are used to determine the columns impactedMike Bayer2014-08-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for an INSERT or UPDATE are now sorted when they contribute towards the "compiled cache" cache key. These keys were previously not deterministically ordered, meaning the same statement could be cached multiple times on equivalent keys, costing both in terms of memory as well as performance. fixes #3165
* | | | | - Removing (or adding) an event listener at the same time that the eventMike Bayer2014-08-143-8/+63
| |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | is being run itself, either from inside the listener or from a concurrent thread, now raises a RuntimeError, as the collection used is now an instance of ``colletions.deque()`` and does not support changes while being iterated. Previously, a plain Python list was used where removal from inside the event itself would produce silent failures. fixes #3163
* | | | - repair against use hereMike Bayer2014-08-141-2/+3
| | | |
* | | | - The ``info`` parameter has been added to the constructor forMike Bayer2014-08-133-10/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | :class:`.SynonymProperty` and :class:`.ComparableProperty`. - The ``info`` parameter has been added as a constructor argument to all schema constructs including :class:`.MetaData`, :class:`.Index`, :class:`.ForeignKey`, :class:`.ForeignKeyConstraint`, :class:`.UniqueConstraint`, :class:`.PrimaryKeyConstraint`, :class:`.CheckConstraint`. fixes #2963
* | | | - The :meth:`.InspectionAttr.info` collection is now moved down toMike Bayer2014-08-132-22/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | :class:`.InspectionAttr`, where in addition to being available on all :class:`.MapperProperty` objects, it is also now available on hybrid properties, association proxies, when accessed via :attr:`.Mapper.all_orm_descriptors`. fixes #2971
* | | | - rename _InspectionAttr to InspectionAttrMike Bayer2014-08-139-26/+26
| | | |
* | | | flake8 cleanupMike Bayer2014-08-132-24/+28
| | | |
* | | | Merge branch 'pr126'Mike Bayer2014-08-133-24/+82
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | Conflicts: doc/build/changelog/changelog_10.rst
| * | | - public method name is get_enums()Mike Bayer2014-08-132-27/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - return a list of dicts like other methods do - don't combine 'schema' with 'name', leave them separate - support '*' argument so that we can retrieve cross-schema if needed - remove "conn" argument - use bound parameters for 'schema' in SQL - order by schema, name, label - adapt _load_enums changes to column reflection - changelog - module docs for get_enums() - add drop of enums to --dropfirst
| * | | Public inspector method to load enum listpr/126Ilya Pekelny2014-08-081-2/+10
| | | | | | | | | | | | | | | | | | | | Provide opportunity to get enums list via an inspector instance public interface.
| * | | DropEnumType class available from postgres dialectIlya Pekelny2014-08-081-2/+3
| | | |
* | | | - rework documentation for reflection flags; also includeMike Bayer2014-08-091-42/+99
| | | | | | | | | | | | | | | | information regarding #3027.
* | | | Providing an autoload_with info automatically sets autoload to TrueMalik Diarra2014-08-091-2/+2
| | | |
* | | | - rewrite all the sqlite/pysqlite transaction isolation docsMike Bayer2014-08-094-50/+172
| | | |
* | | | - use configured test_schema hereMike Bayer2014-08-081-12/+14
| | | |
* | | | - have python setup.py test use xdist with -qMike Bayer2014-08-081-1/+1
|/ / /