summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
Commit message (Collapse)AuthorAgeFilesLines
* Fix doc typo 'conjunection'pr/130Gunnlaugur Þór Briem2014-08-211-1/+1
|
* Fix copy-paste error in Delete docGunnlaugur Þór Briem2014-08-211-2/+2
|
* - fix linkMike Bayer2014-08-211-1/+1
|
* - The INSERT...FROM SELECT construct now implies ``inline=True``Mike Bayer2014-08-202-14/+24
| | | | | | | | | | | | | | | | | | | | | | | on :class:`.Insert`. This helps to fix a bug where an INSERT...FROM SELECT construct would inadvertently be compiled as "implicit returning" on supporting backends, which would cause breakage in the case of an INSERT that inserts zero rows (as implicit returning expects a row), as well as arbitrary return data in the case of an INSERT that inserts multiple rows (e.g. only the first row of many). A similar change is also applied to an INSERT..VALUES with multiple parameter sets; implicit RETURNING will no longer emit for this statement either. As both of these constructs deal with varible numbers of rows, the :attr:`.ResultProxy.inserted_primary_key` accessor does not apply. Previously, there was a documentation note that one may prefer ``inline=True`` with INSERT..FROM SELECT as some databases don't support returning and therefore can't do "implicit" returning, but there's no reason an INSERT...FROM SELECT needs implicit returning in any case. Regular explicit :meth:`.Insert.returning` should be used to return variable numbers of result rows if inserted data is needed. fixes #3169
* - factor out determination of current version id out ofMike Bayer2014-08-201-55/+55
| | | | _collect_update_commands and _collect_delete_commands
* - Fixed bug in connection pool logging where the "connection checked out"Mike Bayer2014-08-201-10/+12
| | | | | | | | debug logging message would not emit if the logging were set up using ``logging.setLevel()``, rather than using the ``echo_pool`` flag. Tests to assert this logging have been added. This is a regression that was introduced in 0.9.0. fixes #3168
* - simplify PK logic in update for row switchMike Bayer2014-08-192-16/+9
|
* - 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
| |
* | - 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
|/ /
* | -Fixed bug where Postgresql JSON type was not able to persist orMike Bayer2014-08-071-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | otherwise render a SQL NULL column value, rather than a JSON-encoded ``'null'``. To support this case, changes are as follows: * The value :func:`.null` can now be specified, which will always result in a NULL value resulting in the statement. * A new parameter :paramref:`.JSON.none_as_null` is added, which when True indicates that the Python ``None`` value should be peristed as SQL NULL, rather than JSON-encoded ``'null'``. Retrival of NULL as None is also repaired for DBAPIs other than psycopg2, namely pg8000. fixes #3159
* | - add some docs to try to explain the behavior with MySQL / TIMESTAMP.Mike Bayer2014-08-041-0/+91
| | | | | | | | ref #3155