summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
Commit message (Collapse)AuthorAgeFilesLines
* - polymorphic loading, working very rudimentallyrow_proc_integrationMike Bayer2015-02-264-73/+143
| | | | | | | | | | | 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-261-31/+90
|
* - 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.
* - 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-201-3/+4
| | | | | | | | | | 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-201-2/+5
| | | | | | | | 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-192-29/+51
| | | | asserting.
* - Mapped state internals have been reworked to allow for a 50% reductionMike Bayer2015-02-187-77/+149
| | | | | | | | 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
* - The MySQL dialect now supports CAST on types that are constructedMike Bayer2015-02-091-3/+6
| | | | as :class:`.TypeDecorator` objects.
* - add a fix to MySQL re: #3074 tests, make sure we check table is presentMike Bayer2015-02-091-1/+2
|
* - A warning is emitted when :func:`.cast` is used with the MySQLMike Bayer2015-02-091-0/+7
| | | | | | | | | | | 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
* - Literal values within a :class:`.DefaultClause`, which is invokedMike Bayer2015-02-091-1/+2
| | | | | | | 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-081-2/+2
|
* 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-021-2/+20
| | | | | | | | commit of pr152
* | - The MySQL dialect now renders TIMESTAMP with NULL / NOT NULL inMike Bayer2015-02-051-48/+40
| | | | | | | | | | | | | | | | | | 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-042-0/+8
| | | | | | | | | | | | | | | | | | :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-044-8/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-021-14/+18
| | | | | | | | | | | | | | | | 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-011-3/+35
| | | | | | | | | | | | | | | | | | | | 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
* | - Added support for the :class:`postgresql.JSONB` datatype whenMike Bayer2015-01-311-10/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | |
* | | - The :class:`.CheckConstraint` construct now supports namingMike Bayer2015-01-302-28/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | conventions that include the token ``%(column_0_name)s``; the constraint expression is scanned for columns. Additionally, naming conventions for check constraints that don't include the ``%(constraint_name)s`` token will now work for :class:`.SchemaType`- generated constraints, such as those of :class:`.Boolean` and :class:`.Enum`; this stopped working in 0.9.7 due to :ticket:`3067`. fixes #3299
* | | - Fixed bug in 0.9's foreign key setup system, such thatMike Bayer2015-01-281-9/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the logic used to link a :class:`.ForeignKey` to its parent could fail when the foreign key used "link_to_name=True" in conjunction with a target :class:`.Table` that would not receive its parent column until later, such as within a reflection + "useexisting" scenario, if the target column in fact had a key value different from its name, as would occur in reflection if column reflect events were used to alter the .key of reflected :class:`.Column` objects so that the link_to_name becomes significant. Also repaired support for column type via FK transmission in a similar way when target columns had a different key and were referenced using link_to_name. fixes #3298
* | | - additional test adjustments for pypy / psycopg2cffi. ThisMike Bayer2015-01-262-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | consists mainly of adjusting fixtures to ensure connections are closed explicitly. psycopg2cffi also handles unicode bind parameter names differently than psycopg2, and seems to possibly have a little less control over floating point values at least in one test which is marked as a "fail", though will see if it runs differently on linux than osx.. - changelog for psycopg2cffi, fixes #3052
* | | Added psycopg2cffi dialectShaun Stanworth2015-01-263-4/+61
| | |
* | | Merge branch 'bb_issue_3262' of https://bitbucket.org/xflr6/sqlalchemyMike Bayer2015-01-261-0/+9
|\ \ \
| * | | warn on duplicate polymorphic_identitySebastian Bank2014-12-041-0/+9
| | | |
* | | | Merge remote-tracking branch 'origin/pr/150'Mike Bayer2015-01-261-1/+2
|\ \ \ \
| * | | | Report the type of unexpected expression objectspr/150Ryan P. Kelly2014-11-201-1/+2
| | | | |
* | | | | - remove the clever approach w/ dialect events, and remove the needMike Bayer2015-01-251-17/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for a for-loop through an empty tuple. we add one more local flag to handle the logic without repetition of dialect.do_execute() calls.
* | | | | - remove context-specific post-crud logic from Connection and inline post-crudMike Bayer2015-01-253-77/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | logic to some degree in DefaultExecutionContext. In particular we are removing post_insert() which doesn't appear to be used based on a survey of prominent third party dialects. Callcounts aren't added to existing execute profiling tests and inserts might be a little better. - simplify the execution_options join in DEC. Callcounts don't appear affected.
* | | | | - Added new user-space accessors for viewing transaction isolationMike Bayer2015-01-206-17/+190
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | levels; :meth:`.Connection.get_isolation_level`, :attr:`.Connection.default_isolation_level`. - enhance documentation inter-linkage between new accessors, existing isolation_level parameters, as well as in the dialect-level methods which should be fully covered by Engine/Connection level APIs now.
* | | | | - restore r611883ffb35ca6664649f6328ae8 with additional fixes and an ↵Mike Bayer2015-01-192-17/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | additional test that is much more specific to #1326
* | | | | - reverse the last commit temporarily as it breaks all the polymorphic casesMike Bayer2015-01-192-42/+24
| | | | |
* | | | | - The primary :class:`.Mapper` of a :class:`.Query` is now passed to theMike Bayer2015-01-192-24/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | :meth:`.Session.get_bind` method when calling upon :meth:`.Query.count`, :meth:`.Query.update`, :meth:`.Query.delete`, as well as queries against mapped columns, :obj:`.column_property` objects, and SQL functions and expressions derived from mapped columns. This allows sessions that rely upon either customized :meth:`.Session.get_bind` schemes or "bound" metadata to work in all relevant cases. fixes #3227 fixes #3242 fixes #1326
* | | | | - further fixes and even better tests for this blockMike Bayer2015-01-191-3/+8
| | | | |
* | | | | - another adjustmentMike Bayer2015-01-191-2/+3
| | | | |
* | | | | - fix another issue from rf49c367ef, add another testMike Bayer2015-01-181-1/+1
| | | | |
* | | | | - rework assertsql system, fixes #3293Mike Bayer2015-01-183-294/+242
| | | | |
* | | | | - fix a regression from ref #3178, where dialects that don't actually supportMike Bayer2015-01-171-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | sane multi rowcount (e.g. pyodbc) would fail on multirow update. add a test that mocks this breakage into plain dialects