summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* - sort of working, not saving on much, eager loading of courserow_proc_integration_2Mike Bayer2015-02-284-121/+105
| | | | totally broken.
* - this adds polymorphicMike Bayer2015-02-283-24/+26
|
* - OK this version not working for polymorphic or bundles yet,Mike Bayer2015-02-284-45/+97
| | | | | | but for large loads it ties master, for many short loads it is slightly faster. if the code can be made clearer then it's a win
* - wrong! I didn't have the cprocs on the master test. we are barelyMike Bayer2015-02-281-0/+5
| | | | | | | slower. we do save on single queries, however. - but...wrong! we still can't do this approach for eager loads. we don't have context.outer_adapter available when we set up "quick" here, so this can't work.
* - BANG! saves 100K calls on orm2010!! woopMike Bayer2015-02-284-38/+19
|
* - moving things around stillMike Bayer2015-02-284-54/+52
|
* - another approach. put row_processor back, don't do the thingMike Bayer2015-02-286-208/+145
| | | | | with ad-hoc callables anymore, but at least make the path to row_processor being called more local to loading.py
* - polymorphic loading, working very rudimentallyrow_proc_integrationMike Bayer2015-02-265-79/+173
| | | | | | | | | | | running orm2010, the whole approach adds callcounts. code is more complex, less reliable, pretty much a total bust. will try to see if create_row_processor can remain but be called against either "result" or a context namespace ahead of time, and if this somehow can be used to simplify the need to call upon strategy lookup twice.
* - the start of the polymorphic loading approach.Mike Bayer2015-02-262-31/+114
|
* - turn PK getting into idxloader.Mike Bayer2015-02-254-21/+29
| | | | - idxloader gets simpler
* - basic idea for deferred. behavioral change: if a string SQLMike Bayer2015-02-251-31/+11
| | | | | is sent, we aren't undeferring based on column presence alone; has to be explicitly undeferred.
* - add our basic tests into the suiteMike Bayer2015-02-251-1/+89
|
* - textual approachMike Bayer2015-02-253-10/+32
|
* - implement column entities, bundlesMike Bayer2015-02-251-57/+30
|
* - the "hello world" of the new approach. this is strictlyMike Bayer2015-02-254-95/+101
| | | | load a plain entity with plain columns.
* - Fixed bugs in ORM object comparisons where comparison ofMike Bayer2015-02-204-13/+171
| | | | | | | | | | many-to-one ``!= None`` would fail if the source were an aliased class, or if the query needed to apply special aliasing to the expression due to aliased joins or polymorphic querying; also fixed bug in the case where comparing a many-to-one to an object state would fail if the query needed to apply special aliasing due to aliased joins or polymorphic querying. fixes #3310
* - remove the need for a recursive call hereMike Bayer2015-02-201-5/+12
|
* - Fixed bug where internal assertion would fail in the case whereMike Bayer2015-02-203-2/+44
| | | | | | | | an ``after_rollback()`` handler for a :class:`.Session` incorrectly adds state to that :class:`.Session` within the handler, and the task to warn and remove this state (established by :ticket:`2389`) attempts to proceed. fixes #3309
* - expect_warnings was not expecting and neither was assert_warningsMike Bayer2015-02-193-33/+55
| | | | asserting.
* - repair merge failureMike Bayer2015-02-191-22/+6
|
* - autopep8Mike Bayer2015-02-191-39/+43
|
* - Mapped state internals have been reworked to allow for a 50% reductionMike Bayer2015-02-1812-144/+300
| | | | | | | | in callcounts specific to the "expiration" of objects, as in the "auto expire" feature of :meth:`.Session.commit` and for :meth:`.Session.expire_all`, as well as in the "cleanup" step which occurs when object states are garbage collected. fixes #3307
* - add the test_expire_lots test for comparisonMike Bayer2015-02-182-0/+71
|
* - add a new section regarding multiprocessingMike Bayer2015-02-171-0/+60
|
* - additional mysql cast-related test fixesMike Bayer2015-02-092-0/+9
|
* - The MySQL dialect now supports CAST on types that are constructedMike Bayer2015-02-093-4/+23
| | | | as :class:`.TypeDecorator` objects.
* - add a fix to MySQL re: #3074 tests, make sure we check table is presentMike Bayer2015-02-091-1/+2
|
* - test skips for MySQL w new cast warningMike Bayer2015-02-091-0/+16
|
* - A warning is emitted when :func:`.cast` is used with the MySQLMike Bayer2015-02-093-29/+66
| | | | | | | | | | | dialect on a type where MySQL does not support CAST; MySQL only supports CAST on a subset of datatypes. SQLAlchemy has for a long time just omitted the CAST for unsupported types in the case of MySQL. While we don't want to change this now, we emit a warning to show that it's taken place. A warning is also emitted when a CAST is used with an older MySQL version (< 4) that doesn't support CAST at all, it's skipped in this case as well. fixes #3237
* - flake8Mike Bayer2015-02-091-74/+99
|
* - Literal values within a :class:`.DefaultClause`, which is invokedMike Bayer2015-02-094-6/+122
| | | | | | | when using the :paramref:`.Column.server_default` parameter, will now be rendered using the "inline" compiler, so that they are rendered as-is, rather than as bound parameters. fixes #3087
* - remove meaningless assignmentMike Bayer2015-02-081-1/+0
|
* - test + changelogMike Bayer2015-02-083-2/+24
|
* Merge remote-tracking branch 'origin/pr/147' into pr147Mike Bayer2015-02-081-1/+1
|\ | | | | | | | | Conflicts: lib/sqlalchemy/orm/query.py
| * It's the 'kwargs' which are iterable, not 'keys'pr/147Malthe Borch2014-10-301-2/+1
| |
* | - add versionadded for service_nameMike Bayer2015-02-081-0/+2
| |
* | - cx_Oracle.makedsn can now be passed service_name; squashSławek Ehlert2014-04-023-2/+48
| | | | | | | | commit of pr152
* | - make even more tablesMike Bayer2015-02-071-27/+30
| |
* | - break up the tables here to avoid the error we're gettingMike Bayer2015-02-061-15/+24
| | | | | | | | on jenkins
* | - The MySQL dialect now renders TIMESTAMP with NULL / NOT NULL inMike Bayer2015-02-055-77/+215
| | | | | | | | | | | | | | | | | | all cases, so that MySQL 5.6.6 with the ``explicit_defaults_for_timestamp`` flag enabled will will allow TIMESTAMP to continue to work as expected when ``nullable=False``. Existing applications are unaffected as SQLAlchemy has always emitted NULL for a TIMESTAMP column that is ``nullable=True``. fixes #3155
* | - Fixed bug in :class:`.Connection` and pool where theMike Bayer2015-02-045-0/+41
| | | | | | | | | | | | | | | | | | :meth:`.Connection.invalidate` method, or an invalidation due to a database disconnect, would fail if the ``isolation_level`` parameter had been used with :meth:`.Connection.execution_options`; the "finalizer" that resets the isolation level would be called on the no longer opened connection. fixes #3302
* | - A warning is emitted if the ``isolation_level`` parameter is usedMike Bayer2015-02-049-15/+279
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | with :meth:`.Connection.execution_options` when a :class:`.Transaction` is in play; DBAPIs and/or SQLAlchemy dialects such as psycopg2, MySQLdb may implicitly rollback or commit the transaction, or not change the setting til next transaction, so this is never safe. - Added new parameter :paramref:`.Session.connection.execution_options` which may be used to set up execution options on a :class:`.Connection` when it is first checked out, before the transaction has begun. This is used to set up options such as isolation level on the connection before the transaction starts. - added new documentation section detailing best practices for setting transaction isolation with sessions. fixes #3296
* | - Fixed bug in lazy loading SQL construction whereby a complexMike Bayer2015-02-024-17/+101
| | | | | | | | | | | | | | | | primaryjoin that referred to the same "local" column multiple times in the "column that points to itself" style of self-referential join would not be substituted in all cases. The logic to determine substitutions here has been reworked to be more open-ended. fixes #3300
* | - don't overwrite an existing _strategy_keys collection;Mike Bayer2015-02-021-1/+2
| | | | | | | | this would cause LazyLoader to be initialized twice per property.
* | - Repaired support for Postgresql UUID types in conjunction withMike Bayer2015-02-013-9/+75
| | | | | | | | | | | | | | | | | | | | the ARRAY type when using psycopg2. The psycopg2 dialect now employs use of the psycopg2.extras.register_uuid() hook so that UUID values are always passed to/from the DBAPI as UUID() objects. The :paramref:`.UUID.as_uuid` flag is still honored, except with psycopg2 we need to convert returned UUID objects back into strings when this is disabled. fixes #2940
* | Merge remote-tracking branch 'origin/pr/68' into pr68Mike Bayer2015-02-011-0/+13
|\ \
| * | Add unit test for UUID arrays in PostgreSQL.pr/68Kevin Deldycke2014-02-061-0/+13
| | |
* | | - Added support for the :class:`postgresql.JSONB` datatype whenMike Bayer2015-01-315-17/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | using psycopg2 2.5.4 or greater, which features native conversion of JSONB data so that SQLAlchemy's converters must be disabled; additionally, the newly added psycopg2 extension ``extras.register_default_jsonb`` is used to establish a JSON deserializer passed to the dialect via the ``json_deserializer`` argument. Also repaired the Postgresql integration tests which weren't actually round-tripping the JSONB type as opposed to the JSON type. Pull request courtesy Mateusz Susik. - Repaired the use of the "array_oid" flag when registering the HSTORE type with older psycopg2 versions < 2.4.3, which does not support this flag, as well as use of the native json serializer hook "register_default_json" with user-defined ``json_deserializer`` on psycopg2 versions < 2.5, which does not include native json.
* | | Merge remote-tracking branch 'origin/pr/145' into pr145Mike Bayer2015-01-311-2/+14
|\ \ \
| * | | Psycopg2 JSONB support.pr/145Mateusz Susik2014-10-241-2/+14
| | | |