]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
stop using MyISAM; more oracle struggles
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 26 Nov 2025 06:36:57 +0000 (01:36 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 27 Nov 2025 03:24:28 +0000 (22:24 -0500)
commit88028954576a8d7e772160d74b14da62c0b4fd43
tree685bc19272e2e27ea975f0a7b95cd37c19dce9fd
parentcf6200563953df3ba6061676214d25dc7ac066a9
stop using MyISAM; more oracle struggles

getting some fails on mariadb12 and likely 11 which appear to
be related to calling in MyISAM, which is not used in
modern mysql/mariadb.   see if we can just remove this whole
thing and rely on default engines for mariadb/mysql.

this change also removes the "ignore errors" part of the
run deletes for the TablesTest fixture, which was resulting
in compound failures, and apparently a lot of tests were relying
on it skipping nonexistent tables.   rather than check for that
we should just improve the tests and probably increase use of
pytest style fixtures overall.

this change also identifies and fixes that memusage_w_backend
tests were running for all backends with a tag like
py314_mysql_backendonly; the memusage tests should basically
never be run as part of the whole suite since they are entirely
unreliable within a full scale test run.

dialect suite tests are also further broken out into those where
every driver should be exercised (i.e. __backend__, for tests that
test datatypes going out and coming back from the database as well
as identity/autoincrement kinds of tests) vs. those where only
one driver per backend is needed (i.e. __sparse_driver_backend__,
for tests like reflection, DDL, CTEs, etc.).

we are also trying to get a --low-connections option that actually
works.  changed this so that the testing reaper aggressively disposes
the "global" engines (one per backend / driver) after test classes
are done and before any testing_engine() call.   This definitely
works, however some monitoring with PG shows the number of connections
still has brief bursts for some reason.   it should be much more
effective than before though as oracle 23/26 really does not handle
more than a few connections.

this change reverts oracle to oracle18c for now in setup.cfg;
further work will be needed to determine if oracle23c can be
run with this test suite

Change-Id: Id87d0ea15155c452615a7edeb9d434c8e55151e7
20 files changed:
lib/sqlalchemy/dialects/mysql/provision.py
lib/sqlalchemy/dialects/oracle/provision.py
lib/sqlalchemy/testing/engines.py
lib/sqlalchemy/testing/fixtures/sql.py
lib/sqlalchemy/testing/plugin/plugin_base.py
lib/sqlalchemy/testing/provision.py
lib/sqlalchemy/testing/requirements.py
lib/sqlalchemy/testing/schema.py
lib/sqlalchemy/testing/suite/test_cte.py
lib/sqlalchemy/testing/suite/test_ddl.py
lib/sqlalchemy/testing/suite/test_reflection.py
lib/sqlalchemy/testing/suite/test_select.py
lib/sqlalchemy/testing/suite/test_sequence.py
lib/sqlalchemy/testing/suite/test_table_via_select.py
lib/sqlalchemy/testing/suite/test_update_delete.py
noxfile.py
setup.cfg
test/orm/inheritance/test_basic.py
test/orm/inheritance/test_relationship.py
test/orm/test_versioning.py