| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
Fixes: #5459
Closes: #5515
Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5515
Pull-request-sha: 760090b9067304cc65fece12fcf10b522afc4a2a
Change-Id: I30e8fbc02b7b5329ca228cd39f6fb7cfd0e43092
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The pg8000 dialect has been revised and modernized for the most recent
version of the pg8000 driver for PostgreSQL. Changes to the dialect
include:
* All data types are now sent as text rather than binary.
* Using adapters, custom types can be plugged in to pg8000.
* Previously, named prepared statements were used for all statements.
Now unnamed prepared statements are used by default, and named
prepared statements can be used explicitly by calling the
Connection.prepare() method, which returns a PreparedStatement
object.
Pull request courtesy Tony Locke.
Notes by Mike: to get this all working it was needed to break
up JSONIndexType into "str" and "int" subtypes; this will be
needed for any dialect that is dependent on setinputsizes().
also includes @caselit's idea to include query params
in the dbdriver parameter.
Co-authored-by: Mike Bayer <mike_mp@zzzcomputing.com>
Closes: #5451
Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5451
Pull-request-sha: 639751ca9c7544801b9ede02e6cbe15a16c59c82
Change-Id: I2869bc52c330916773a41d11d12c297aecc8fcd8
|
| |
|
|
|
|
|
|
|
|
|
| |
We want TOX_POSTGRESQL and similar to be the fixed variable
that is configured from CI environment. These variables should refer
to database servers but individual drivers like asyncpg mysqlconnector
etc. should come from local tox.ini. add a new system to generate
per-driver URLs from a simple list of hostname-based URLs delivered
from CI environment.
Change-Id: I4267b4a70742765388c7e7c4432c1da9d9adece2
|
| |
|
|
|
|
|
|
|
| |
since 1.3 doesn't have updated pg8000 support nor
asyncpg support it needs to stay on the previous
TOX_POSTGRESQL variable, so make a new one that will
have the newer drivers in it.
Change-Id: I19739f8da1231db975a046f12af5eefc9636cd4a
|
| |
|
|
| |
Change-Id: Ie47a9e9377858641f2f8e038133be27dc9aacd64
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using the approach introduced at
https://gist.github.com/zzzeek/6287e28054d3baddc07fa21a7227904e
We can now create asyncio endpoints that are then handled
in "implicit IO" form within the majority of the Core internals.
Then coroutines are re-exposed at the point at which we call
into asyncpg methods.
Patch includes:
* asyncpg dialect
* asyncio package
* engine, result, ORM session classes
* new test fixtures, tests
* some work with pep-484 and a short plugin for the
pyannotate package, which seems to have so-so results
Change-Id: Idbcc0eff72c4cad572914acdd6f40ddb1aef1a7d
Fixes: #3414
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ``importlib_metadata`` library is used to scan for setuptools
entrypoints rather than pkg_resources. as importlib_metadata is a small
library that is included as of Python 3.8, the compatibility library is
installed as a dependency for Python versions older than 3.8.
Unfortunately setuptools "attr:" is broken because it tries to import
the module; seems like this is fixed as part of
https://github.com/pypa/setuptools/pull/1753 however this is too recent
to rely upon for now.
Added a new dialect token "mariadb" that may be used in place of "mysql" in
the :func:`_sa.create_engine` URL. This will deliver a MariaDB dialect
subclass of the MySQLDialect in use that forces the "is_mariadb" flag to
True. The dialect will raise an error if a server version string that does
not indicate MariaDB in use is received. This is useful for
MariaDB-specific testing scenarios as well as to support applications that
are hardcoding to MariaDB-only concepts. As MariaDB and MySQL featuresets
and usage patterns continue to diverge, this pattern may become more
prominent.
Fixes: #5400
Fixes: #5496
Change-Id: I330815ebe572b6a9818377da56621397335fa702
|
| |
|
|
|
|
|
|
| |
Per https://gitlab.com/pycqa/flake8-docstrings/-/issues/36#note_199635329
flake8-docstrings has repaired the pydocstyle issue as of
1.3.1, so unpin pydocstyle.
Change-Id: I117a5df58ff6c5a4087c433ab817ad305df6a17b
|
| |
|
|
|
|
|
|
|
|
| |
the memory tests are solely responsible for the largest chunk of
time and CPU energy taken up in running the tests. Regressions
in this area are nonexistent unless major changes are being
taken up. Try to revert them to False and see if a single
gerrit job can perhaps run these.
Change-Id: Ibaead2d1c0a76f1339bee63652a8aead689e8b75
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We want to use Oracle version >=7 for all platforms,
but <8 for Python 2.
Similarly, we want to use mysqlclient >= 1.4.0 for all
platforms, but < 2 for Python 2.
Have tox.ini defer to setup.cfg for DBAPIs.
We're not testing mysql-connector-python right now so remove
this from tox.ini.
Change-Id: I02611937da71d2950545e42c34f0b9798478e2a8
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The psycopg2 dialect now defaults to using the very performant
``execute_values()`` psycopg2 extension for compiled INSERT statements,
and also impements RETURNING support when this extension is used. This
allows INSERT statements that even include an autoincremented SERIAL
or IDENTITY value to run very fast while still being able to return the
newly generated primary key values. The ORM will then integrate this
new feature in a separate change.
Implements RETURNING for insert with executemany
Adds support to return_defaults() mode and inserted_primary_key
to support mutiple INSERTed rows, via return_defauls_rows
and inserted_primary_key_rows accessors.
within default execution context, new cached compiler
getters are used to fetch primary keys from rows
inserted_primary_key now returns a plain tuple. this
is not yet a row-like object however this can be
added.
Adds distinct "values_only" and "batch" modes, as
"values" has a lot of benefits but "batch" breaks
cursor.rowcount
psycopg2 minimum version 2.7 so we can remove the
large number of checks for very old versions of
psycopg2
simplify tests to no longer distinguish between
native and non-native json
Fixes: #5401
Change-Id: Ic08fd3423d4c5d16ca50994460c0c234868bd61c
|
| |
|
|
|
|
| |
we want to be able to specify --output-file
Change-Id: Ib4e992d47587385a50c35ca915bc5adcb2ca49fa
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Trying the pr to check if it works right away
### Description
<!-- Describe your changes in detail -->
### Checklist
<!-- go over following points. check them with an `x` if they do apply, (they turn into clickable checkboxes once the PR is submitted, so no need to do everything at once)
-->
This pull request is:
- [ ] A documentation / typographical error fix
- Good to go, no issue or tests are needed
- [x] A short code fix
- please include the issue number, and create an issue if none exists, which
must include a complete example of the issue. one line code fixes without an
issue and demonstration will not be accepted.
- Please include: `Fixes: #<issue number>` in the commit message
- please include tests. one line code fixes without tests will not be accepted.
- [ ] A new feature implementation
- please include the issue number, and create an issue if none exists, which must
include a complete example of how the feature would look.
- Please include: `Fixes: #<issue number>` in the commit message
- please include tests.
**Have a nice day!**
Closes: #5222
Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5222
Pull-request-sha: afbb8567525f3841554d3ba599ef4d713c78e647
Change-Id: I4981b02f900e76e446cf42e6cc6495ffc0883951
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. ensure provision.py loads dialect implementations when running
reap_dbs.py. Reapers haven't been working since
598f2f7e557073f29563d4d567f43931fc03013f .
2. add some exclusion rules to allow the sqlite_file target to work;
add to tox.
3. add reap dbs target for SQLite, repair SQLite drop_db routine
which also wasn't doing the right thing for memory databases
etc.
4. Fix logging in provision files, as the main provision logger
is the one that's enabled by reap_dbs and maybe others, have all
the provision files use the provision logger.
Fixes: #5180
Fixes: #5168
Change-Id: Ibc1b0106394d20f5bcf847f37b09d185f26ac9b5
|
| |
|
|
|
|
|
| |
We need no tests to run for sqlite_file until we merge
a full fix for it. We'd like Jenkins to include this target.
Change-Id: I2737fa462572f08e2925b232a8f24d1ecd26b3ac
|
| |
|
|
|
|
|
| |
So that we can enable this in jenkins until
Ibc1b0106394d20f5bcf847f37b09d185f26ac9b5 is merged.
Change-Id: Ia704e75bf3767e02d448a6af02530dfc89c9920b
|
| |
|
|
| |
Change-Id: I3b86bb3b4263048646676972bb2a870c7e2a7393
|
| |
|
|
|
|
|
|
|
|
| |
cx_Oracle is dropping Python 2 in version 8.0
mysqlclient is dropping Python 2 in version 2.0
We are no longer testing cx_Oracle < 7 on CI so drop older
cx_Oracle versions from tox.
Change-Id: I18d8b47077d50ac02aedb6fdeb24f7c99b56aa7c
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The C extensions have been broken since cc718cccc0bf8a01abdf4068c
however CI did not find this, because the build degraded to
non-C extensions without failing. Ensure that if cext is set,
there is no fallback to non-cext build if the C extension build
fails.
Repair C related issues introduced in cc718cccc0bf8a01abdf4068c.
As C extensions have been silently failing on 2.7 for some commits,
the callcounts also needed to be adjusted for recent performance-related
changes. That in turn required a fix to the profiling decorator
to use signature rewriting in order to support py.test's
fixture mechanism under Python 2, usage introduced under profiling
in 89bf6d80a9.
Fixes: #5076
Change-Id: Id968f10c85d6bf489298b1c318a1f869ad3e7d80
|
| |
|
|
|
|
|
|
| |
This way py.test can be run on the outside without a
command line error.
Change-Id: Ia3689806bffbabe176a827cca2f099e89a60ebf5
Closes: #4989
|
| |
|
|
|
|
|
|
| |
general README.unittest.rst edits
Fixes: #4789
Fixes: #4900
Change-Id: Ifddd3bfd1e6a4d24d3b0a3e1702e04e66a42a4dd
|
| |
|
|
|
|
|
|
|
|
| |
- remove pymssql again, there are no py38 builds and the project
seems stalled again
- ideally we would have no pyenvs listed out for tox but for now
add py38
Change-Id: Iee2e3da96d2d0e4357aaf2ade735c4b8300c3c12
|
| |
|
|
|
|
|
| |
Mock is not needed over python 3.3, we need this tox
requirement only for Python 2.7 right now.
Change-Id: I06ae31f9fe6eaece0ec508e9431e4f8166a59684
|
| |
|
|
|
|
| |
PyCQA/pydocstyle#375
Change-Id: Ifc7ead440010e89474300407fea5770956ff1aaf
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"usecase" indicates the library now supports something a user
was trying to do. It's not quite a "feature" since it's something
that seems like it should have worked, it's not a "bug" because
no mistake was made, it's just something that wasn't considered before.
The advantage of "usecase" is that it inherently suggests a different
style of prioritization vs. something that is preventing the library
from working as designed.
This change also adds docs/build/conf.py under the pep8 formatting
test coverage.
Change-Id: I790ccb799864fec48e4695aedeed2814ab9d493e
|
| |
|
|
|
|
|
| |
this to prevent flake8 from running with python 2 as we have
py3k-specific checks
Change-Id: I456c4b64c5bc04a81cd43de7dac1e803346f1245
|
| |
|
|
|
| |
Fixes: #4455
Change-Id: I396230f649f6bb5e396798e63339fcecb3b85eaf
|
| |
|
|
|
|
|
|
| |
a few code changes ahead of time to handle some __all__
issues better. also include new flake8 rules, since the
existing flake8 doesn't pass in any case.
Change-Id: I1efdf75124ae7bcac719c22e505bb5b13db06c04
|
| |
|
|
| |
Change-Id: I35ecd78b92ea420ef7909de65f82e005b92bf986
|
| |
|
|
|
|
|
|
|
|
| |
Unfortunately they have released
3.9.2 before fixing issue 4181, which means we will have to
re-pin a third time after they eventually release with
a fix
Change-Id: I9b6fab1b535f883a035f002264c41ad0166790ab
Reference: https://github.com/pytest-dev/pytest/issues/4181
|
| |
|
|
|
|
|
|
| |
references:
https://github.com/pytest-dev/pytest/issues/4181
Change-Id: I216fde19dd0f5c4910d76c08400f2329b09ad584
|
| |
|
|
| |
Change-Id: I954d939ace775b5e6d94b8b1a909a9eddb7f352f
|
| |
|
|
|
|
|
| |
To allow a custom requirements file to be passed in,
add a generic passthrough to the tox install command.
Change-Id: Ic2e46a27914b76802dc26143e34ad507978af474
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
Prevents https://github.com/oracle/python-cx_Oracle/issues/199
Change-Id: I0f94bde38919a027f094ca016621c1364e845332
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
https://github.com/oracle/python-cx_Oracle/issues/176
Change-Id: If13288789f5f32eb3ffb18c774752bb68a9ffb2a
|
| |
|
|
| |
Change-Id: I4ed7bd6ffd1c8c9b5169cf21709ec19801580126
|
| |
|
|
|
|
| |
on both series for now
Change-Id: Ide8938334c248119c1d5c2e1bf07070f17c86242
|
| |
|
|
| |
Change-Id: Ida0d01ae9bcc0573b86e24fddea620a38c962822
|
| |
|
|
|
|
|
| |
either https://github.com/oracle/python-cx_Oracle/issues/75
to be fixed or we can merge a workaround
Change-Id: Ia3927337fb48824e0fdc764ed3a9d4930ca7a9c6
|
| |
|
|
| |
Change-Id: I1ac16bc77642f4f576195ac10443ed8e641e0d49
|
| |
|
|
|
|
|
| |
without them getting used unless we ask for them in the
build
Change-Id: Iec157ce9e70366af275acac959527461faebfdc1
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Swing the biggest hammer, run multiprocessing.Process() for
each memusage test individually so that they are fully isolated
from the parent process and any side effects of pytest-xdist
Also add --nomemory as a shortcut to exclude_tags=memory-intensive
and add this to the setup.py test runner as the memory tests
should not be running for quick runs
Change-Id: I3c16c781e21b33deb939a64e77a6e0e41fb86922
|
| |
|
|
|
|
| |
add a new tag nomemory so we can at least limit on the build
Change-Id: I3935cf15047d77fc09f8ee229914e37e064e5b8b
|
| |
|
|
|
|
|
|
| |
the issue
- unblock pytest-xdist now that the upstream issue is fixed,
maybe this old version is the issue
Change-Id: I28dd7ae0872948a188651d42e2f4af60bcbafe81
|
| |
|
|
|
|
|
|
|
|
| |
Improve screen output to illustrate which server version is
running for a particular database config, and additionally
allow full overriding for the backend-specific targets in
tox.ini via environment variables, so that CI can inject
multiple server urls for a particular database such as MySQL/MariaDB.
Change-Id: Ibf443bb9fb82e4563efd1bb66058fa9989aa2fda
|
| |
|
|
|
|
| |
Until https://github.com/pytest-dev/pytest-xdist/issues/196 is fixed
Change-Id: I7dfd268e6078373ccaa0b5c13f9b6ffa1b2fd4b2
|
| |
|
|
|
|
|
| |
lift cap on py.test.
references: https://github.com/pytest-dev/pytest/issues/2430
Change-Id: Ieb8a6258ba1d15efa570d9cda2b51cf021499a23
|
| |
|
|
| |
Change-Id: I587282da141aa6ea92f944eeb4c9e5782d0b5f29
|