summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | - adjust _revalidate_connection() again such that we pass a _wrap=FalseMike Bayer2014-12-052-21/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to it, so that we say we will do the wrapping just once right here in _execute_context() / _execute_default(). An adjustment is made to _handle_dbapi_error() to not assume self.__connection in case we are already in an invalidated state further adjustment to 0639c199a547343d62134d2f233225fd2862ec45, 41e7253dee168b8c26c49, #3266
| * | | | | - move inner calls to _revalidate_connection() outside of existingMike Bayer2014-12-051-8/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | _handle_dbapi_error(); these are now handled already and the reentrant call is not needed / breaks things. Adjustment to 41e7253dee168b8c26c49 /
| * | | | | - The SQLite dialect, when using the :class:`.sqlite.DATE`,Mike Bayer2014-12-051-1/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | :class:`.sqlite.TIME`, or :class:`.sqlite.DATETIME` types, and given a ``storage_format`` that only renders numbers, will render the types in DDL as ``DATE_CHAR``, ``TIME_CHAR``, and ``DATETIME_CHAR``, so that despite the lack of alpha characters in the values, the column will still deliver the "text affinity". Normally this is not needed, as the textual values within the default storage formats already imply text. fixes #3257
| * | | | | - document / work around that dialect_options isn't necessarily thereMike Bayer2014-12-052-1/+6
| | | | | |
| * | | | | - The engine-level error handling and wrapping routines will nowMike Bayer2014-12-055-18/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | take effect in all engine connection use cases, including when user-custom connect routines are used via the :paramref:`.create_engine.creator` parameter, as well as when the :class:`.Connection` encounters a connection error on revalidation. fixes #3266
| * | | | | - New Oracle DDL features for tables, indexes: COMPRESS, BITMAP.Mike Bayer2014-12-042-10/+165
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch courtesy Gabor Gombas. fixes #3127
| * | | | | - Added support for CTEs under Oracle. This includes some tweaksMike Bayer2014-12-044-61/+138
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to the aliasing syntax, as well as a new CTE feature :meth:`.CTE.suffix_with`, which is useful for adding in special Oracle-specific directives to the CTE. fixes #3220
| * | | | | - Updated the "supports_unicode_statements" flag to True for MySQLdbMike Bayer2014-12-042-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and Pymysql under Python 2. This refers to the SQL statements themselves, not the parameters, and affects issues such as table and column names using non-ASCII characters. These drivers both appear to support Python 2 Unicode objects without issue in modern versions. fixes #3121
| * | | | | - The :meth:`.Operators.match` operator is now handled such that theMike Bayer2014-12-048-9/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | return type is not strictly assumed to be boolean; it now returns a :class:`.Boolean` subclass called :class:`.MatchType`. The type will still produce boolean behavior when used in Python expressions, however the dialect can override its behavior at result time. In the case of MySQL, while the MATCH operator is typically used in a boolean context within an expression, if one actually queries for the value of a match expression, a floating point value is returned; this value is not compatible with SQLAlchemy's C-based boolean processor, so MySQL's result-set behavior now follows that of the :class:`.Float` type. A new operator object ``notmatch_op`` is also added to better allow dialects to define the negation of a match operation. fixes #3263
| * | | | | - The :meth:`.PGDialect.has_table` method will now query againstMike Bayer2014-12-042-1/+6
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ``pg_catalog.pg_table_is_visible(c.oid)``, rather than testing for an exact schema match, when the schema name is None; this so that the method will also illustrate that temporary tables are present. Note that this is a behavioral change, as Postgresql allows a non-temporary table to silently overwrite an existing temporary table of the same name, so this changes the behavior of ``checkfirst`` in that unusual scenario. fixes #3264
| * | | | Merge remote-tracking branch 'origin/pr/151' into pr151Mike Bayer2014-12-011-4/+4
| |\ \ \ \
| | * | | | It now calls raise_from_causepr/151Scott Dugas2014-11-031-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master was updated to call util.raise_from_cause which is better than what I had
| | * | | | Merge branch 'master' into fdbsql-testsScott Dugas2014-11-0358-1403/+3225
| | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: lib/sqlalchemy/testing/exclusions.py
| | * | | | | Removed accidental print statementsScott Dugas2014-10-301-2/+0
| | | | | | |
| | * | | | | Forgot to update usage of ex to exc_valueScott Dugas2014-10-231-1/+1
| | | | | | |
| | * | | | | Print useful traceback on errorScott Dugas2014-10-231-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | _expect_failure was rethrowing the exception without keeping the traceback, so it was really hard to find out what was actually wrong
| | * | | | | Support additional args/kwargs on cursor methodScott Dugas2014-10-221-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fdbsql has an optional nested kwarg, which is supported in the actual code, but not in the testing proxy
| * | | | | | - Fixed bug in :meth:`.Table.tometadata` method where theMike Bayer2014-11-292-11/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | :class:`.CheckConstraint` associated with a :class:`.Boolean` or :class:`.Enum` type object would be doubled in the target table. The copy process now tracks the production of this constraint object as local to a type object. fixes #3260
| * | | | | | - changelog, improve docstring/test for #3217. fixes #3217Mike Bayer2014-11-261-1/+7
| | | | | | |
| * | | | | | Merge branch 'issue_bb_3217' of ↵Mike Bayer2014-11-261-4/+7
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | https://bitbucket.org/jvanasco/sqlalchemy-alt into pr32
| | * | | | | | * adding 'isouter=False' to sqlalchemy.orm.query.Query ↵jonathan vanasco2014-10-031-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://bitbucket.org/zzzeek/sqlalchemy/issue/3217/make-join-more-standard-or-improve-error) $ python setup.py develop $ pip install nose $ pip install mock $ ./sqla_nose.py test.orm.test_joins ..................................................................................................... ---------------------------------------------------------------------- Ran 101 tests in 1.222s OK $ ./sqla_nose.py test.orm ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................S......................................................................................................................................................................................................................................................................................................................S.......................................................................................................................................................................................................................................................................................................................................................S.......S..S.SSS.SS...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................S................................S..S........................S...........................................................................................SSS.S.........SSSSSSSS......SSSSSSSSS........SS...SS...............S.............................S..............................................................SS..SS..............................................................................................................S. ---------------------------------------------------------------------- Ran 3103 tests in 82.607s OK (SKIP=46)
| * | | | | | | Merged in jvanasco/sqlalchemy-alt/issue_docs_event_statement (pull request #33) Mike Bayer2014-11-261-6/+11
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | added docs to clarify that sql statement is already in a dialect
| | * | | | | | | added docs to clarify that sql statement is already in a dialectjonathan vanasco2014-10-171-6/+11
| | |/ / / / / /
| * | | | | | | - use self.parent, not table here as there's an attributeerrorMike Bayer2014-11-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | trap for self.table that behaves differently in py3k
| * | | | | | | - add a new option --force-write-profiles to rewrite profiles even if theyMike Bayer2014-11-252-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | are passing
| * | | | | | | - The behavioral contract of the :attr:`.ForeignKeyConstraint.columns`Mike Bayer2014-11-253-45/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | collection has been made consistent; this attribute is now a :class:`.ColumnCollection` like that of all other constraints and is initialized at the point when the constraint is associated with a :class:`.Table`. fixes #3243
| * | | | | | | - The :meth:`.PropComparator.of_type` modifier has beenMike Bayer2014-11-243-7/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | improved in conjunction with loader directives such as :func:`.joinedload` and :func:`.contains_eager` such that if two :meth:`.PropComparator.of_type` modifiers of the same base type/path are encountered, they will be joined together into a single "polymorphic" entity, rather than replacing the entity of type A with the one of type B. E.g. a joinedload of ``A.b.of_type(BSub1)->BSub1.c`` combined with joinedload of ``A.b.of_type(BSub2)->BSub2.c`` will create a single joinedload of ``A.b.of_type((BSub1, BSub2)) -> BSub1.c, BSub2.c``, without the need for the ``with_polymorphic`` to be explicit in the query. fixes #3256
| * | | | | | | - add some logging to path_registry to help debug eager loadingMike Bayer2014-11-242-0/+13
| | |_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | issues
| * | | | | | - correct this to rewrite a multiple profile line correctlyMike Bayer2014-11-141-1/+5
| | | | | | |
| * | | | | | - Fixed a leak which would occur in the unsupported and highlyMike Bayer2014-11-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | non-recommended use case of replacing a relationship on a fixed mapped class many times, referring to an arbitrarily growing number of target mappers. A warning is emitted when the old relationship is replaced, however if the mapping were already used for querying, the old relationship would still be referenced within some registries. fixes #3251
| * | | | | | - don't do inline string interpolation when loggingJon Nelson2014-11-112-2/+2
| | | | | | |
| * | | | | | - Fixed issue where the columns from a SELECT embedded in anMike Bayer2014-11-111-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | INSERT, either through the values clause or as a "from select", would pollute the column types used in the result set produced by the RETURNING clause when columns from both statements shared the same name, leading to potential errors or mis-adaptation when retrieving the returning rows. fixes #3248
| * | | | | | - in lieu of adding a new system of translating bound parameter namesMike Bayer2014-11-102-0/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for psycopg2 and others, encourage users to take advantage of positional styles by documenting "paramstyle". A section is added to psycopg2 specifically as this is a pretty common spot for named parameters that may be unusually named. fixes #3246.
| * | | | | | - The :attr:`.Column.key` attribute is now used as the source ofMike Bayer2014-11-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | anonymous bound parameter names within expressions, to match the existing use of this value as the key when rendered in an INSERT or UPDATE statement. This allows :attr:`.Column.key` to be used as a "substitute" string to work around a difficult column name that doesn't translate well into a bound parameter name. Note that the paramstyle is configurable on :func:`.create_engine` in any case, and most DBAPIs today support a named and positional style. fixes #3245
* | | | | | | Merge branch 'master' into ticket_3100Mike Bayer2014-11-061-4/+4
|\ \ \ \ \ \ \ | |/ / / / / / | | | | | | | | | | | | | | | | | | | | | Conflicts: lib/sqlalchemy/orm/persistence.py
| * | | | | | Small improvement on FlushError can't update error messagepr/149Paulo Bu2014-11-061-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Output in the error message the table name and the column name.
* | | | | | | Merge branch 'master' into ticket_3100Mike Bayer2014-11-0651-1244/+2912
|\ \ \ \ \ \ \ | |/ / / / / /
| * | | | | | Small improvement on FlushError can't delete error messagepr/148Paulo Bu2014-11-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Output in the error message the table name and the column name.
| * | | | | | - Fixed bug regarding expression mutations which could expressMike Bayer2014-11-051-0/+7
| | |_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | itself as a "Could not locate column" error when using :class:`.Query` to select from multiple, anonymous column entities when querying against SQLite, as a side effect of the "join rewriting" feature used by the SQLite dialect. fixes #3241
| * | | | | - ensure kwargs are passed for limit clause on a compound select as well,Mike Bayer2014-10-311-1/+1
| | |_|_|/ | |/| | | | | | | | | | | | | further fixes for #3034
| * | | | - added new backend for pysqlcipher, as we will probably getMike Bayer2014-10-292-1/+117
| | | | | | | | | | | | | | | | | | | | requests for it soon.
| * | | | changed connnection to connectionpr/146jlgoldb22014-10-261-1/+1
| | |_|/ | |/| |
| * | | - Fixed bug in single table inheritance where a chain of joinsMike Bayer2014-10-231-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | that included the same single inh entity more than once (normally this should raise an error) could, in some cases depending on what was being joined "from", implicitly alias the second case of the single inh entity, producing a query that "worked". But as this implicit aliasing is not intended in the case of single table inheritance, it didn't really "work" fully and was very misleading, since it wouldn't always appear. fixes #3233
| * | | - Fixed bug where the ON clause for :meth:`.Query.join`,Mike Bayer2014-10-231-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | and :meth:`.Query.outerjoin` to a single-inheritance subclass using ``of_type()`` would not render the "single table criteria" in the ON clause if the ``from_joinpoint=True`` flag were set. fixes #3232
| * | | - changelog for pullreq github:139Mike Bayer2014-10-211-4/+22
| | | | | | | | | | | | | | | | | | | | - add support for self-referential foreign keys to move over as well when the table name is changed.
| * | | Merge remote-tracking branch 'origin/pr/139' into pr139Mike Bayer2014-10-211-4/+7
| |\ \ \
| | * | | allow Table.tometadata changing the table namendparker2014-09-231-4/+7
| | | | |
| * | | | Merge remote-tracking branch 'origin/pr/137' into pr137Mike Bayer2014-10-211-7/+12
| |\ \ \ \
| | * | | | change functionspr/137jona2014-09-161-7/+12
| | | | | |
| * | | | | - Reversing a change that was made in 0.9, the "singleton" natureMike Bayer2014-10-192-17/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of the "constants" :func:`.null`, :func:`.true`, and :func:`.false` has been reverted. These functions returning a "singleton" object had the effect that different instances would be treated as the same regardless of lexical use, which in particular would impact the rendering of the columns clause of a SELECT statement. fixes #3170