Repository navigation
Conversation
sha174n
requested review from
geido,
michael-s-molina,
msyavuz,
rusackas,
sadpandajoe and
villebro
as code owners
November 10, 2026 23:10
Contributor
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #46148 +/- ##
==========================================
- Coverage 65.35% 65.24% -0.11%
==========================================
Files 3083 3083
Lines 211333 211335 +2
Branches 49823 49823
==========================================
- Hits 138110 137884 -226
- Misses 70041 70259 +218
- Partials 3182 3192 +10
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
… to MariaDB Fill gaps in the default per-engine SQL function/table denylists and make MySQL-derived engine specs pick up the MySQL defaults. - PostgreSQL: add the sequence functions (setval, nextval, currval, lastval) to DISALLOWED_SQL_FUNCTIONS, next to the other SELECT-callable state-changing entries. - ClickHouse: add the table functions that read from outside the configured database (remote, remoteSecure, s3, s3Cluster, file, fileCluster, hdfs, mysql, postgresql, mongodb, jdbc, odbc), matching the external-data functions already covered for other engines. url was already listed. - The denylists are keyed by db_engine_spec.engine. MariaDBEngineSpec derives from MySQLEngineSpec but reports engine="mariadb", so it did not pick up the "mysql" entries. Mirror the MySQL function and table defaults onto "mariadb" (copied, not aliased, so overriding one engine does not mutate the other). - Add unit tests for the new defaults and the MariaDB lookup resolution. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
sha174n
force-pushed
the
fix/default-sql-denylist-coverage
branch
from
November 11, 2026 11:39
d54cbb8 to
e5f1088
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
SUMMARY
Fills gaps in the default per-engine SQL function/table denylists and makes MySQL-derived engine specs pick up the MySQL defaults. These are defaults-completeness and cross-engine-consistency changes to
superset/config.py; the lists remain fully operator-overridable.DISALLOWED_SQL_FUNCTIONS: add the sequence functionssetval,nextval,currval,lastval, next to the existingSELECT-callable state-changing entries.DISALLOWED_SQL_FUNCTIONS: add the table functions that read from locations outside the configured database —remote,remoteSecure,s3,s3Cluster,file,fileCluster,hdfs,mysql,postgresql,mongodb,jdbc,odbc— matching the external-data functions already covered for other engines.urlwas already listed.db_engine_spec.engine.MariaDBEngineSpecderives fromMySQLEngineSpecbut reportsengine="mariadb", so it did not pick up the"mysql"entries. The MySQL function and table defaults are now mirrored onto"mariadb"— copied, not aliased, so overriding one engine's list in a deployment's config does not mutate the other's.TESTING INSTRUCTIONS
Added unit tests:
tests/unit_tests/config_test.py— the new PostgreSQL/ClickHouse defaults are present, and"mariadb"mirrors"mysql"for both dicts (equal but distinct objects).tests/unit_tests/db_engine_specs/test_mariadb.py— thedb_engine_spec.enginelookup resolves the MySQL defaults for MariaDB.ADDITIONAL INFORMATION