| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This was causing issues with Alembic (https://bitbucket.org/zzzeek/alembic/issue/127/auto-generate-seems-to-miss-unsigned)
|
| |
|
|
|
|
|
| |
Conflicts:
lib/sqlalchemy/orm/mapper.py
|
|
|
|
|
|
|
|
|
|
|
|
| |
of dbapi.Error (such as ``TypeError``, ``NotImplementedError``, etc.)
will propagate the exception unchanged. Previously,
the error handling specific to the ``connect()`` routine would both
inappropriately run the exception through the dialect's
:meth:`.Dialect.is_disconnect` routine as well as wrap it in
a :class:`sqlalchemy.exc.DBAPIError`. It is now propagated unchanged
in the same way as occurs within the execute process. [ticket:2881]
- add tests for this in test_parseconnect, but also add tests in test_execute
to ensure the execute() behavior as well
|
| |
|
|
|
|
|
|
|
|
| |
attempts when an existing connection attempt is blocking. Previously,
the production of new connections was serialized within the block
that monitored overflow; the overflow counter is now altered within
it's own critical section outside of the connection process itself.
[ticket:2880]
|
|
|
|
|
|
|
|
|
|
|
| |
connection to be available, such that for a connection pool
with no timeout specified, it will every half a second break out of
the wait to check for the so-called "abort" flag, which allows the
waiter to break out in case the whole connection pool was dumped;
normally the waiter should break out due to a notify_all() but it's
possible this notify_all() is missed in very slim cases.
This is an extension of logic first introduced in 0.8.0, and the
issue has only been observed occasionally in stress tests.
|
| |
|
| |
|
|
|
|
| |
requirements etc., just like 0.9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
assisting with alembic installations that have upgraded and are dealing with
PG index/unique constraint reflection.
Inspection API already supports reflection of table
indexes information and those also include unique
constraints (at least for PostgreSQL and MySQL).
But it could be actually useful to distinguish between
indexes and plain unique constraints (though both are
implemented in the same way internally in RDBMS).
This change adds a new method to Inspection API - get_unique_constraints()
and implements it for SQLite, PostgreSQL and MySQL dialects.
|
|
|
|
| |
"is disconnect" codes with cx_oracle. [ticket:2864]
|
|
|
|
|
|
|
| |
versionadded
Conflicts:
lib/sqlalchemy/ext/mutable.py
|
|\
| |
| | |
Fixed a syntax error in example code.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
when a pre-DBAPI :class:`.StatementError` were raised within
:meth:`.Connection.execute`, causing encoding errors for
non-ASCII statements. The stringification now remains within
Python unicode thus avoiding encoding errors. [ticket:2871]
Conflicts:
test/engine/test_execute.py
|
| |
| |
| |
| |
| | |
(e.g. for a ``CAST`` or similar) would incorrectly render ``None CHAR``
or similar. [ticket:2870]
|
| | |
|
|/
|
|
|
|
|
|
|
|
| |
correctly with table or column names that contain non-ASCII
characters. [ticket:2869]
Conflicts:
lib/sqlalchemy/ext/serializer.py
lib/sqlalchemy/sql/selectable.py
lib/sqlalchemy/testing/assertions.py
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
query being generated would produce a "columns being replaced"
warning for a statement with two same-named columns,
as the internal SELECT wouldn't have use_labels set.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
when using the pypostgresql adapter, which returns these values
as lists vs. psycopg2's return type of string.
[ticket:2855]
Conflicts:
doc/build/changelog/changelog_09.rst
lib/sqlalchemy/__init__.py
|
|
|
|
|
| |
if the synonym and the table were in different remote schemas.
Patch to fix courtesy Kyle Derr. [ticket:2853]
|
|
|
|
| |
ipv6 addresses, e.g. surrounded by brackets. [ticket:2851]
|
|
|
|
|
|
|
|
| |
elements with a ``__clause_element__()`` method properly.
[ticket:2849]
Conflicts:
lib/sqlalchemy/sql/elements.py
|
|
|
|
|
|
|
|
|
|
|
|
| |
so that the custom type isn't exposed to an operation that is against the
"impl" type's constraint, [ticket:2842]
- this change showed up as some recursion overflow in pickling with labels,
add a __reduce__() there....pickling of expressions is less and less something
that's very viable...
Conflicts:
lib/sqlalchemy/sql/elements.py
lib/sqlalchemy/sql/sqltypes.py
|
| |
|
|
|
|
|
|
| |
server default for a column; this code was original from
PG system views which truncated the string for readability.
[ticket:2844]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of :class:`.ForeignKeyConstraint` is silently ignored on the MySQL
backend, will be reverted as of 0.9; this keyword will now render again, raising
errors on MySQL as it is not understood - the same behavior will also
apply to the ``initially`` keyword. In 0.8, the keywords will remain
ignored but a warning is emitted. Additionally, the ``match`` keyword
now raises a :class:`.CompileError` on 0.9 and emits a warning on 0.8;
this keyword is not only silently ignored by MySQL but also breaks
the ON UPDATE/ON DELETE options.
To use a :class:`.ForeignKeyConstraint`
that does not render or renders differently on MySQL, use a custom
compilation option. An example of this usage has been added to the
documentation, see :ref:`mysql_foreign_keys`.
[ticket:2721] [ticket:2839]
|
|
|
|
|
|
|
|
|
| |
if it was generated from a :class:`.Column` that didn't specify ``unique``
(where it defaults to ``None``). The flag will now always be ``True`` or
``False``. [ticket:2825]
Conflicts:
lib/sqlalchemy/sql/schema.py
|
|
|
|
| |
suddenly hitting this.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This enables the subquery eager loader strategy to apply a DISTINCT
to the innermost SELECT subquery, to assist in the case where
duplicate rows are generated by the innermost query which corresponds
to this relationship (there's not yet a general solution to the issue
of dupe rows within subquery eager loading, however, when joins outside
of the innermost subquery produce dupes). When the flag
is set to ``True``, the DISTINCT is rendered unconditionally, and when
it is set to ``None``, DISTINCT is rendered if the innermost relationship
targets columns that do not comprise a full primary key.
The option defaults to False in 0.8 (e.g. off by default in all cases),
None in 0.9 (e.g. automatic by default). Thanks to Alexander Koval
for help with this. [ticket:2836]
Conflicts:
lib/sqlalchemy/orm/relationships.py
|
|
|
|
|
|
| |
query string to override those defaults set up in the connect,
including "buffered" and "raise_on_warnings".
[ticket:2515]
|
|
|
|
|
| |
rendered in the column list of a CREATE INDEX statement.
[ticket:2742]
|
|
|
|
|
|
|
|
|
|
|
| |
mssql to ensure that any literal SQL expression values are
rendered directly as literals, instead of as bound parameters,
within a CREATE INDEX statement. [ticket:2742]
- don't need expression_as_ddl(); literal_binds and include_table
take care of this functionality.
Conflicts:
lib/sqlalchemy/sql/util.py
|
|
|
|
|
|
|
|
|
| |
typically via in-place mutation, will raise an informative error
message rather than causing a recursion overflow.
[ticket:2815]
Conflicts:
lib/sqlalchemy/sql/selectable.py
|
|
|
|
|
|
|
|
|
|
| |
:func:`.foreign` on a :class:`.Column` before association with a parent
:class:`.Table` could produce issues related to the parent table not
rendering within joins, due to the inherent copy operation performed
by an annotation. [ticket:2813]
Conflicts:
lib/sqlalchemy/sql/elements.py
|
|
|
|
| |
raises a warning. Removed in 0.9. [ticket:2831]
|
| |
|
|
|
|
| |
- use match with a .* preceding instead of search
|
|
|
|
| |
re.match to re.search
|
|
|
|
|
|
| |
Hide password in URL and Engine __repr__
Conflicts:
lib/sqlalchemy/engine/url.py
|
|
|
|
|
|
|
| |
filters applied.
Conflicts:
doc/build/changelog/changelog_09.rst
|
|
|
|
| |
in-python only cols
|
|
|
|
|
|
|
|
|
| |
of the incoming :class:`.Column` would prevent primary key constraints,
indexes, and foreign key constraints from being correctly reflected.
Also in 0.8.3. [ticket:2811]
Conflicts:
doc/build/changelog/changelog_09.rst
|