alberttwong opened a new issue, #45937: URL: https://github.com/apache/superset/issues/45937
### Bug description Testing Superset **7.0.0rc2** against a generic Arrow Flight SQL endpoint exposed source-install packaging problems and incomplete metadata discovery with sqlalchemy-adbc. Reads **and writes** work once installation is resolved, but compatibility is partial. The metadata failures reproduce in SQLAlchemy Inspector before Superset, so this report does **not** attribute those adapter defects to Superset. The Superset-specific findings are the source/core dependency mismatch, a missing CLI dependency, and the resulting application behavior. ## Source-install reproduction From a fresh Python 3.12 virtual environment: ```sh git clone --depth 1 --branch 7.0.0rc2 https://github.com/apache/superset.git python -m pip install ./superset 'sqlalchemy-adbc[flightsql]==0.3.0' ``` Observed resolver conflict: ```text apache-superset 7.0.0 depends on sqlalchemy<2.1 and >=2.0.52 sqlalchemy-adbc 0.3.0 depends on sqlalchemy>=2.0 apache-superset-core 0.1.0 depends on sqlalchemy<2.0 and >=1.4.0 ERROR: ResolutionImpossible ``` Installing the matching core from the same source tree resolves it: ```sh python -m pip install ./superset ./superset/superset-core 'sqlalchemy-adbc[flightsql]==0.3.0' ``` This selected core 0.2.0 and SQLAlchemy 2.0.55. Related existing report: #42568 concerns stale-core selection in the extensions CLI; this reproduces it for the root 7.0.0rc2 application install. Next, invoking superset db upgrade with isolated SQLite metadata failed while importing CLI commands: ```text File ".../superset/cli/test_db.py", line 27, in <module> from rich.console import Console ModuleNotFoundError: No module named 'rich' ``` After installing rich, migrations and superset init succeeded. pip check reported no broken requirements. No --no-deps, constraint edits, or adapter patches were used. Expected: a fresh source installation resolves a compatible core and declares dependencies needed to invoke its CLI, or the release-candidate instructions explicitly cover these requirements. ## Flight SQL reproduction Backend: https://github.com/redis/redis-apache-arrow-flight at f8a2723b737626eec3dc1ec529f9ebf3d70ff21f, community build, backed by disposable Redis 8.6.2 with Search. Local plaintext endpoint: 127.0.0.1:18915. Versions: sqlalchemy-adbc 0.3.0, adbc-driver-flightsql/manager 1.13.0, PyArrow 25.0.1. Create a fixture: ```python import pyarrow as pa from adbc_driver_flightsql import dbapi with dbapi.connect('grpc://127.0.0.1:18915', autocommit=True) as conn: with conn.cursor() as cur: cur.adbc_ingest('superset7_orders', pa.table({ 'id': [1, 2, 3, 4], 'region': ['west', 'east', 'west', 'east'], 'amount': pa.array([10., 20., 30., None], type=pa.float64()), }), mode='replace') ``` Superset URI: ```text adbc+flightsql://127.0.0.1:18915?tls=false ``` Extra: ```json {"engine_params":{"connect_args":{"autocommit":true}}} ``` Enable DML for SQL Lab write testing. ## Observed through authenticated Superset API requests | Check | Result | | --- | --- | | Test Connection, database creation, schema discovery | Passed; public returned | | Table browsing | Empty list despite existing table | | Column discovery / explicit dataset creation | Names present, types NULL / UNKNOWN | | SQL Lab ordered SELECT, NULL, empty results, filtered SUM/GROUP BY | Passed with exact expected rows | | SQL Lab CREATE TABLE, INSERT, UPDATE, DELETE, DROP | Passed; write effects verified with reads through SQL Lab | | Chart data API: grouped SUM metric | Passed; east=20, west=40 | | SELECT after DROP | Correct missing-table message, returned as HTTP 500 / GENERIC_DB_ENGINE_ERROR | The write evidence is from SQL Lab itself, not just the fixture upload. Tests used the authenticated Flask test client against the real endpoint. Browser UI, rendered dashboards, time-series SQL, TLS/authentication, async workers, production load and the DataFusion-specific dialect were not tested. ## Metadata diagnosis / ownership Independent reproduction before Superset: ```python from sqlalchemy import create_engine, inspect engine = create_engine( 'adbc+flightsql://127.0.0.1:18915?tls=false', connect_args={'autocommit': True}, ) i = inspect(engine) print(i.get_table_names(schema='public')) # [] print(i.get_columns('superset7_orders', schema='public')) # id, region, amount returned as NullType() ``` Raw ADBC metadata reports table_type="TABLE"; adapter 0.3.0's reflection.table_names_from_tree() accepts only lowercase "table". Column xdbc_type_name is null, while xdbc_data_type has numeric codes -5, 12, 6. The adapter maps only the name and falls back to NullType. These reflection mismatches appear to need adapter-side handling rather than Superset changes. Generic Flight SQL queries and Superset writes are working in this test. Existing adapter tracking context: https://github.com/drls-io/sqlalchemy-adbc/issues/16. ### Screenshots/recordings _No response_ ### Superset version master / latest-dev ### Python version 3.12 ### Node version Not applicable ### Browser Not applicable ### Additional context Exact Superset version: 7.0.0rc2 source, commit e4aee71493bdac25bbfb7be11084c11b1e7d31a5; package reports 7.0.0. The version dropdown has no 7.x option. Python 3.12.16 on macOS arm64. Tested November 1, 2026. No Node build or browser rendering tested. Related core-package issue #42568 is acknowledged above; Slack was not searched. CLI traceback: superset/cli/test_db.py:27 imports rich.console.Console and raises ModuleNotFoundError: No module named rich until rich is installed. ### Checklist - [ ] I have searched Superset docs and Slack and didn't find a solution to my problem. - [ ] I have searched the GitHub issue tracker and didn't find a similar bug report. - [x] I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the "additional context" section. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
