| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
A full rewrite of all imports and pep8 formatting using zimports, black,
commits are broken into sections.
Directories included in this commit:
test/dialect/
Change-Id: Iec0231a43eb00122fcaaec942f1528ac4a33e59d
(cherry picked from commit e88e29bb8e1aced6898d2aa7105c6e9eae528291)
|
| |
|
|
| |
Change-Id: I9fa269423619c1adfbaa6d63e0997153ea115d73
|
| |
|
|
|
|
|
|
|
|
|
|
| |
A full rewrite of all imports and pep8 formatting using zimports, black,
commits are broken into sections.
Directories included in this commit:
lib/sqlalchemy/dialects/ lib/sqlalchemy/databases/ lib/sqlalchemy/connectors/
Change-Id: I7070d589303a760e6ed5eefde39efc11da818281
(cherry picked from commit aa46e6a9e2e3cd04f835c53ed4600e6f8e9ee13f)
|
| |
|
|
|
|
|
| |
manually merged exaples.
Change-Id: I9532d3b13d13f2769e6ca48eea23dd7d4041f68f
(cherry picked from commit e3bdd80c6661c0e95fb67998c57540be667ce761)
|
| | |
|
| |
|
|
| |
includes adjustment to setup.py to recognize __version__ correctly
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Author: Lele Gaifax <lele@metapensiero.it>
Date: Tue Dec 25 12:35:41 2018 +0100
Consistently use "PostgreSQL", fixing also a few doc glitches
commit 0e382aaee4427193926f0dc10ad29056bc12c85e
Author: Lele Gaifax <lele@metapensiero.it>
Date: Tue Dec 25 12:08:49 2018 +0100
Remove duplicated words
Change-Id: Iaa586b9412f46a50fe6ff3bbb92e07d6cb1905c8
(cherry picked from commit c0f9708fde39175c8695fdd87873464f516fdf98)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed issue where a :class:`.postgresql.ENUM` or a custom domain present
in a remote schema would not be recognized within column reflection if
the name of the enum/domain or the name of the schema required quoting.
A new parsing scheme now fully parses out quoted or non-quoted tokens
including support for SQL-escaped quotes.
Fixed issue where multiple :class:`.postgresql.ENUM` objects referred to
by the same :class:`.MetaData` object would fail to be created if
multiple objects had the same name under different schema names. The
internal memoization the Postgresql dialect uses to track if it has
created a particular :class:`.postgresql.ENUM` in the database during
a DDL creation sequence now takes schema name into account.
Fixes: #4416
Change-Id: I8cf03069e10b12f409e9b6796e24fc5850979955
(cherry picked from commit 0b0a4c8ba2465fce5fa1954a0d31b44840f1b4b8)
|
| |
|
|
|
|
|
|
|
|
| |
Fixed issue where reflection of a PostgreSQL domain that is expressed as an
array would fail to be recognized. Pull request courtesy Jakub Synowiec.
Fixes: #4377
Change-Id: I252c79ca435b87d4d9172b1c84e0e74e789ef676
Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/4380
(cherry picked from commit 46f9c3c7d4d2c31f3f1627dcf777bd3215e13e3d)
|
| |
|
|
|
|
|
|
|
|
|
| |
As MySQLdb support read_timeout and write_timeout option, and
sqlalchemy just support read_timeout option. So sqlalchemy need to add
write_timeout option.
Fixes: #4381
Change-Id: I2bea80bdd6f20fafc72b48fa0e5d795626d9d9b9
Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/4385
(cherry picked from commit 6a8454ded311010927af04db30a57d683cf67dd4)
|
| |
|
|
|
|
|
|
| |
in preparation for #4369, however the documentation was
also inaccurate in that it did not mention connect_args.
Change-Id: I992e5f53ce16cc9c72d2c893a3ca798a9c2b4d07
(cherry picked from commit 996727ed89cd2403e75e3ab924f01754d408075d)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed regression caused by :ticket:`4344` released in 1.2.13, where the fix
for MySQL 8.0's case sensitivity problem with referenced column names when
reflecting foreign key referents is worked around using the
``information_schema.columns`` view. The workaround was failing on OSX /
``lower_case_table_names=2`` which produces non-matching casing for the
``information_schema.columns`` vs. that of ``SHOW CREATE TABLE``, so in
case-insensitive SQL modes case-insensitive matching is now used.
Fixes: #4361
Change-Id: I748549bc4c27fad6394593f8ec93fc22bfd01f6c
(cherry picked from commit af159c56957b26c523e7fe324edf7d17882f88be)
|
| |
|
|
| |
(cherry picked from commit e0dd82f26703f56e5fda7fb6deb579d1f96ecab9)
|
| |
|
|
|
|
|
|
|
|
| |
Added word ``function`` to the list of reserved words for MySQL, which is
now a keyword in MySQL 8.0
Fixes: #4348
Change-Id: Idd30acda7e99076810f65d0ee860055a18dc9193
Pull-request: https://github.com/zzzeek/sqlalchemy/pull/481
(cherry picked from commit 38c81328e91884f71af175a115dfdb423d8f4910)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Added a workaround for a MySQL bug #88718 introduced in the 8.0 series,
where the reflection of a foreign key constraint is not reporting the
correct case sensitivity for the referred column, leading to errors during
use of the reflected constraint such as when using the automap extension.
The workaround emits an additional query to the information_schema tables in
order to retrieve the correct case sensitive name.
Fixes: #4344
Change-Id: I08020d6eec43cbe8a56316660380d3739a0b45f7
(cherry picked from commit 56fb68ca8620a211ca29b3d47d649dfa332d354a)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed additional warnings generated by Python 3.7 due to changes in the
organization of the Python ``collections`` and ``collections.abc`` packages.
Previous ``collections`` warnings were fixed in version 1.2.11. Pull request
courtesy xtreak.
See I2d1c0ef97c8ecac7af152cc56263422a40faa6bb for the original collections.abc
fixes.
Fixes: #4339
Change-Id: Ia92d2461f20309fb33ea6c6f592f7d4e7e32ae7a
Pull-request: https://github.com/zzzeek/sqlalchemy/pull/475
(cherry picked from commit 2d2fa49130249f757f6f1100dad879e1071ad385)
|
| |
|
|
|
|
|
|
|
| |
Added support for the :class:`.aggregate_order_by` function to receive
multiple ORDER BY elements, previously only a single element was accepted.
Fixes: #4337
Change-Id: I411ac31697a0d65b568ad65ce5b5181717afbd65
(cherry picked from commit b7ba3f0d9395236cbf05f830d82f6494163d1dfb)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed issue for cx_Oracle 7.0 where the behavior of Oracle param.getvalue()
now returns a list, rather than a single scalar value, breaking
autoincrement logic throughout the Core and ORM. The dml_ret_array_val
compatibility flag is used for cx_Oracle 6.3 and 6.4 to establish compatible
behavior with 7.0 and forward, for cx_Oracle 6.2.1 and prior a version
number check falls back to the old logic.
Fixes: #4335
Change-Id: Ia60f5514803a505898c1ac9252355990c6203dda
(cherry picked from commit 67a2cd92295bef55d914a5c560b4cead5d456837)
|
| |
|
|
| |
(cherry picked from commit 35a458c7822a8071a61da84fce021fb42cd9b086)
|
| |
|
|
|
|
|
|
|
|
| |
Fixed bug in PostgreSQL dialect where compiler keyword arguments such as
``literal_binds=True`` were not being propagated to a DISTINCT ON
expression.
Fixes: #4325
Change-Id: I9949387dceb7fabe889799f42e92423572368b29
(cherry picked from commit 469931514a1517dde82ba56f780c3007c66d5943)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Fixed the :func:`.postgresql.array_agg` function, which is a slightly
altered version of the usual :func:`.functions.array_agg` function, to also
accept an incoming "type" argument without forcing an ARRAY around it,
essentially the same thing that was fixed for the generic function in 1.1
in :ticket:`4107`.
Fixes: #4324
Change-Id: I399a29f59c945a217cdd22c65ff0325edea8ea65
(cherry picked from commit 52a3f5b7635583ae6feb084b1db654b9c65caec2)
|
| |
|
|
|
|
|
|
|
|
|
| |
Fixed bug in PostgreSQL ENUM reflection where a case-sensitive, quoted name
would be reported by the query including quotes, which would not match a
target column during table reflection as the quotes needed to be stripped
off.
Fixes: #4323
Change-Id: I668f3acccc578e58f23b70c82d31d5c1ec194913
(cherry picked from commit 32ce703a98eba8a7685e609b4a7ca86b79dd0904)
|
| |
|
|
|
|
|
|
|
| |
Also, remove the section on "use_unicode=0", there is no reason
anyone should be using that now.
Fixes: #4216
Change-Id: I5b8b53e40903adf339af2934a4f2d8b068818ebf
(cherry picked from commit c3869f23836bd35d5ed565a4b84b4ab70293c0f7)
|
| |
|
|
|
|
|
|
|
|
| |
For cx_Oracle, Integer datatypes will now be bound to "int", per advice
from the cx_Oracle developers. Previously, using cx_Oracle.NUMBER caused a
loss in precision within the cx_Oracle 6.x series.
Change-Id: I4c6b2cca490aff5b98b7ceff3414715202881c89
Fixes: #4309
(cherry picked from commit 75d48e65eaac9e97283bb14fdec54a143d9997f1)
|
| |
|
|
|
|
|
|
|
|
| |
Fixed issue where the "schema" name used for a SQLite database within table
reflection would not quote the schema name correctly. Pull request
courtesy Phillip Cloud.
Change-Id: I2770788c1f094a7743209250ec26b5ef5fb2d9e8
Pull-request: https://github.com/zzzeek/sqlalchemy/pull/463
(cherry picked from commit 893eac06e511f3765c0c89bab76d7933d83ffccc)
|
| |
|
|
|
|
|
| |
references #4296
Change-Id: I5b663d3444d3732a83a32443c128faffe62f11d9
(cherry picked from commit c7d364b385e6c4605c50d0ee9264dfac0bc84dde)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Fixed bug in MSSQL reflection where when two same-named tables in different
schemas had same-named primary key constraints, foreign key constraints
referring to one of the tables would have their columns doubled, causing
errors. Pull request courtesy Sean Dunn.
Fixes: #4228
Change-Id: I7dabaaee0944e1030048826ba39fc574b0d63031
Pull-request: https://github.com/zzzeek/sqlalchemy/pull/457
(cherry picked from commit ca94ea8ab583f8ab366ee5971bfc1bdd96e54cc9)
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixed bug in index reflection where on MySQL 8.0 an index that includes
ASC or DESC in an indexed column specfication would not be correctly
reflected, as MySQL 8.0 introduces support for returning this information
in a table definition string.
Change-Id: I21f64984ade690aac8c87dbe3aad0c1ee8e9727f
Fixes: #4293
(cherry picked from commit 9d2dc7911b7767b97814479d228072b6f566a864)
|
| |/
|
|
| |
(cherry picked from commit b694a309e89e7c3e57e83dd10e9a75c66672c396)
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Added a new event currently used only by the cx_Oracle dialect,
:meth:`.DialectEvents.setiputsizes`. The event passes a dictionary of
:class:`.BindParameter` objects to DBAPI-specific type objects that will be
passed, after conversion to parameter names, to the cx_Oracle
``cursor.setinputsizes()`` method. This allows both visibility into the
setinputsizes process as well as the ability to alter the behavior of what
datatypes are passed to this method.
Change-Id: I43b97c8e3c840cad6f01edb274dc9cfed19cb5fc
Fixes: #4290
(cherry picked from commit c270efdfb38a266ac042be2a0d11b6ff7e5ee619)
|
| |/
|
|
|
|
|
|
|
|
| |
Add CI support for MySQL connector and try to fix some of the
more obvious issues. CI tests will run against MySQL 5.7
only for starters as there appear to be issues with
MySQL 8.0
Change-Id: Id8971143a8385a5c84f0646c21c4c21e793ce3a2
(cherry picked from commit 83750628d180b9b9e5a6ae9a2ecb3a001553cb81)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed issue within the SQL Server dialect under Python 3 where when running
against a non-standard SQL server database that does not contain either the
"sys.dm_exec_sessions" or "sys.dm_pdw_nodes_exec_sessions" views, leading
to a failure to fetch the isolation level, the error raise would fail due
to an UnboundLocalError.
Fixes: #4273
Co-authored-by: wikiped <wikiped@yandex.ru>
Change-Id: I39877c1f65f9cf8602fb1dceaf03072357759564
(cherry picked from commit e2913f65c4e5720394105584c69e7b9e8c2d373c)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed bug in MySQLdb dialect and variants such as PyMySQL where an
additional "unicode returns" check upon connection makes explicit use of
the "utf8" character set, which in MySQL 8.0 emits a warning that utf8mb4
should be used. This is now replaced with a utf8mb4 equivalent.
Documentation is also updated for the MySQL dialect to specify utf8mb4 in
all examples. Additional changes have been made to the test suite to use
utf8mb3 charsets and databases (there seem to be collation issues in some
edge cases with utf8mb4), and to support configuration default changes made
in MySQL 8.0 such as explicit_defaults_for_timestamp as well as new errors
raised for invalid MyISAM indexes.
Change-Id: Ib596ea7de4f69f976872a33bffa4c902d17dea25
Fixes: #4283
Fixes: #4192
(cherry picked from commit c99345ee9994c3ea2a5e6536cc3365f18d017cc1)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed INSERT FROM SELECT with CTEs for the Oracle and MySQL dialects, where
the CTE was being placed above the entire statement as is typical with
other databases, however Oracle and MariaDB 10.2 wants the CTE underneath
the "INSERT" segment. Note that the Oracle and MySQL dialects don't yet
work when a CTE is applied to a subquery inside of an UPDATE or DELETE
statement, as the CTE is still applied to the top rather than inside the
subquery.
Also adds test suite support CTEs against backends.
Change-Id: I8ac337104d5c546dd4f0cd305632ffb56ac8bf90
Fixes: #4275
Fixes: #4230
(cherry picked from commit 3619edcb8aa3ceef2a44925b85315fc0e90c5982)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Oracle BINARY_FLOAT and BINARY_DOUBLE datatypes now participate within
cx_Oracle.setinputsizes(), passing along NATIVE_FLOAT, so as to support the
NaN value. Additionally, :class:`.oracle.BINARY_FLOAT`,
:class:`.oracle.BINARY_DOUBLE` and :class:`.oracle.DOUBLE_PRECISION` now
subclass :class:`.Float`, since these are floating point datatypes, not
decimal. These datatypes were already defaulting the
:paramref:`.Float.asdecimal` flag to False in line with what
:class:`.Float` already does.
Added reflection capabilities for the :class:`.oracle.BINARY_FLOAT`,
:class:`.oracle.BINARY_DOUBLE` datatypes.
Change-Id: Id99b912e83052654a17d07dc92b4dcb958cb7600
Fixes: #4264
(cherry picked from commit 28c7450b61beeb0bfb3d082cfcd12493c182e0ee)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Altered the Oracle dialect such that when an :class:`.Integer` type is in
use, the cx_Oracle.NUMERIC type is set up for setinputsizes(). In
SQLAlchemy 1.1 and earlier, cx_Oracle.NUMERIC was passed for all numeric
types unconditionally, and in 1.2 this was removed to allow for better
numeric precision. However, for integers, some database/client setups
will fail to coerce boolean values True/False into integers which introduces
regressive behavior when using SQLAlchemy 1.2. Overall, the setinputsizes
logic seems like it will need a lot more flexibility going forward so this
is a start for that.
Change-Id: Ida80cc2c2c37ffc0e05da4b5df2dadfab55a01f2
Fixes: #4259
(cherry picked from commit c7ae04d1c5c4aa6c6099584ae386d6ab9ef7b290)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed a 1.2 regression caused by :ticket:`4061` where the SQL Server
"BIT" type would be considered to be "native boolean". The goal here
was to avoid creating a CHECK constraint on the column, however the bigger
issue is that the BIT value does not behave like a true/false constant
and cannot be interpreted as a standalone expression, e.g.
"WHERE <column>". The SQL Server dialect now goes back to being
non-native boolean, but with an extra flag that still avoids creating
the CHECK constraint.
Change-Id: I4765d2a2a00b0d14f50282603cc4d48d4739dac1
Fixes: #4250
(cherry picked from commit bd1d6012dcbe5fbc6d1097a79d85b972b0d4fd8a)
|
| |
|
|
|
|
|
| |
and will be easier to read if we know where it's going first.
Change-Id: I2766cf4655451ed514d4dc95ac60406b9f4a8ddb
(cherry picked from commit 513a6e5bcea5dccabaf86166906233542a4669e7)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Unfortunately, we need to bind Python unicode values as
NCHAR as in the case where non-ascii characters are present,
it's necessary. We can't know in all cases how this value is being
used, so in those cases where Oracle will not accept NCHAR the
user should explicitly cast a value down to String.
Change-Id: I1a70739033435a7bf5effe2fa810ab064cea9188
Fixes: #4242
(cherry picked from commit e6e1c02c96b077700187420019194989ea55a646)
|
| |
|
|
|
|
|
|
|
|
| |
The Oracle NUMBER datatype is reflected as INTEGER if the precision is NULL
and the scale is zero, as this is how INTEGER values come back when
reflected from Oracle's tables. Pull request courtesy Kent Bower.
Change-Id: I4627febd46cab7085299c0a5700ee0f0bdca513c
Pull-request: https://github.com/zzzeek/sqlalchemy/pull/437
(cherry picked from commit a3473c08d35e2cce32b014519df5f774c0166cf1)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed 1.2 regression caused by :ticket:`4060` where the query used to
reflect SQL Server cross-schema foreign keys was limiting the criteria
incorrectly.
Additionally, added some rework of the inter-schema reflection tests
so that MySQL, MSSQL can be included, breaking out some of the
Postgresql-specific behaviors into separate requirements.
Fixes: #4234
Change-Id: I20c8e70707075f1767b79127c2c27d4b313c6515
(cherry picked from commit 9d5e117f6fcc38d8773bc943c615888dc8a3a819)
|
| |
|
|
|
|
|
|
|
|
|
| |
Fixed issue where the compilation of an INSERT statement with the
"literal_binds" option that also uses an explicit sequence and "inline"
generation, as on Postgresql and Oracle, would fail to accommodate the
extra keyword argument within the sequence processing routine.
Change-Id: Ibdab7d340aea7429a210c9535ccf1a3e85f074fb
Fixes: #4231
(cherry picked from commit b4eb29253cb29a069973503f36d1103d4a18311c)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed bug where the special "not equals" operator for the Postgresql
"range" datatypes such as DATERANGE would fail to render "IS NOT NULL" when
compared to the Python ``None`` value.
Also break up range tests into backend round trip and straight
compilation suites.
Change-Id: Ibaee132b1ea7dac8b799495a27f98f82a7d9c028
Fixes: #4229
(cherry picked from commit e1ac5dc63cc13cfbabe0ec7fbb3521bfb1b7b750)
|
| |
|
|
|
|
|
| |
Fixes: #4160
Change-Id: Id0bdbad1be3a0950dc8f35895ee13d9264244722
Pull-request: https://github.com/zzzeek/sqlalchemy/pull/435
(cherry picked from commit 9f986ce10c6755af3f347a56f9ea03e0e2c5943e)
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Added support for "PARTITION BY" in Postgresql table definitions,
using "postgresql_partition_by". Pull request courtesy
Vsevolod Solovyov.
Change-Id: Id74d6882d7193fae1e5fd44b6e12d6852866fcc4
Pull-request: https://github.com/zzzeek/sqlalchemy/pull/430
(cherry picked from commit 0174d698a8ed155b51cc44c503b10bc67b16dfc9)
|
| |/
|
|
|
|
|
|
|
|
|
| |
Adjusted the SQL Server version detection for pyodbc to only allow for
numeric tokens, filtering out non-integers, since the dialect does tuple-
numeric comparisons with this value. This is normally true for all known
SQL Server / pyodbc drivers in any case.
Change-Id: I4ab18a07e19231091b5e877ba1fccd5eda72a992
Fixes: #4227
(cherry picked from commit f55c4f6bd2cb2f2b18e62159361ce7ecb5897396)
|
| |
|
|
|
|
|
|
|
|
| |
The minimum cx_Oracle version supported is 5.2 (June 2015). Previously,
the dialect asserted against version 5.0 but as of 1.2.2 we are using some
symbols that did not appear until 5.2.
Change-Id: I6fa4238f1722789924f4a6473fdce6f524333825
Fixes: #4211
(cherry picked from commit 4982a250a9b22795b47caf5fc42225689c1da919)
|