Skip to content

docs(concepts): update per-backend terminology map - #12082

Open
deepyaman with Copilot wants to merge 3 commits into
mainfrom
copilot/update-backend-terminology-table
Open

docs(concepts): update per-backend terminology map#12082
deepyaman with Copilot wants to merge 3 commits into
mainfrom
copilot/update-backend-terminology-table

Conversation

Copilot AI commented Aug 14, 2026

Copy link
Copy Markdown

The backend hierarchy table was stale: it listed the removed pandas backend, omitted supported backends, and used inaccurate terminology for several systems.

  • Coverage

    • Added Athena, Databricks, Exasol, Materialize, and SingleStoreDB.
    • Removed pandas.
  • Terminology

    • Corrected verified native hierarchy names: BigQuery datasets, PySpark catalogs/databases, and Oracle's database/schema levels.
    • Replaced hierarchy levels a backend does not have with N/A.
    • Removed the Druid datasource terms, which do not represent catalog/database hierarchy; Druid's database level is its SQL schema.

Copilot AI and others added 2 commits August 14, 2026 03:40
Co-authored-by: deepyaman <14007150+deepyaman@users.noreply.github.com>
Co-authored-by: deepyaman <14007150+deepyaman@users.noreply.github.com>
@deepyaman deepyaman changed the title Refresh backend table hierarchy reference docs(concepts): update per-backend terminology map Aug 14, 2026
Oracle implements `current_catalog` (returning `global_name`), and
natively organizes schemas inside a database, so the catalog level is
`database` rather than `N/A`.

Druid's `current_database` returns the hardcoded `druid` schema, and
Druid SQL exposes that level as `INFORMATION_SCHEMA.SCHEMATA`, so the
native term is `schema` rather than `N/A`.

Also pad the `singlestoredb` row to match the rest of the table.

Assisted-by: Claude Opus 5 <noreply@anthropic.com>
@github-actions github-actions Bot added the docs Documentation related issues or PRs label Aug 14, 2026

@deepyaman deepyaman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I verified every row in this table against the backend implementations on main rather than taking the description's "verified" claim at face value. Summary: the diff looks alarming (−20/+24) but that's almost entirely because the column widths changed, forcing a rewrite of all 18 original rows. Substantively it's two real corrections, one wrong row replaced, one removal, and five additions.

Completeness ✅

pyproject.toml registers exactly 22 backend entry points, and the new table has exactly those 22 rows — nothing missing, nothing invented. pandas is genuinely gone (no ibis/backends/pandas, no entry point). The pre-existing sqlite/snowflake sort-order bug is also fixed.

Substantive changes, with evidence

Change Verdict Evidence
bigquery databasedataset correct bigquery/__init__.py:307-308database = self._session_dataset.dataset_id, catalog = ....project; do_connect takes dataset_id
pyspark database|schemacatalog|database correct pyspark/__init__.py:256-263SELECT CURRENT_DATABASE() / SELECT CURRENT_CATALOG()
druid dataSourceType|dataSource removed correct to remove — a dataSource is a table, and dataSourceType isn't a hierarchy level at all druid/__init__.py:69
athena data catalog | database correct athena/__init__.py:308 list_data_catalogs(), then list_databases(catalog_name=...)
databricks catalog | schema correct databricks/__init__.py:359-366cur.schemas(catalog_name=...)TABLE_SCHEM
exasol N/A | schema correct exasol/__init__.py:443 SELECT CURRENT_SCHEMA; :488 rejects catalog
materialize database | schema correct materialize/__init__.py:20class Backend(PostgresBackend)
singlestoredb N/A | database correct singlestoredb/__init__.py:190 SELECT DATABASE(); matches the "SingleStoreDB doesn't support catalogs" comment in test_client.py
blank → N/A for clickhouse/impala/mysql/polars/sqlite correct, cosmetic none of these define current_catalog

Two cells I've corrected in b05e574

oracle: N/Adatabase (Catalog). Oracle was the only backend this PR marked N/A that actually implements current_catalogoracle/__init__.py:239-242 returns global_name. Natively Oracle does have a database → schema hierarchy, and this table documents native terminology, so database is the accurate value. (The databaseschema fix in the Database column was right and I've kept it: oracle/__init__.py:245-250 returns the user, with the comment "databases correspond to users".)

The counterargument for N/A is that Ibis can't traverse it — list_databases rejects a catalog argument (oracle/__init__.py:328), and Oracle has no db.schema.table qualification without DB links. Happy to be overruled here, but I think the table's stated purpose ("the terminology used by each backend for the two levels of hierarchy") favors describing the backend rather than Ibis's support level.

druid: N/Aschema (Database). druid/__init__.py:64-66 returns the hardcoded "druid", citing the INFORMATION_SCHEMA.SCHEMATA docs — Druid SQL calls that level a schema. N/A isn't wrong in spirit (Druid has no list_databases, and test_client.py marks it notyet for "the common notion of a database"), but schema is more informative and consistent with how the rest of the column is filled in. This is the softer of my two changes — revert it if you'd rather the column reflect Ibis support.

I also padded the singlestoredb row, which was one character wider than the separator. For the record this would never have failed CI: identify tags .qmd as {'text', 'file', 'non-executable'}, not markdown, so the prettier pre-commit hook skips this file entirely.

🤖 Generated with Claude Code


Follow-up, not blocking this PR: once the chdb backend lands (#12059), this table will need a chdb | N/A | database row — chdb defines no current_catalog and mirrors ClickHouse's single-level hierarchy. Flagging it so the table doesn't immediately go stale again. Whichever of the two merges second should pick it up; I'm happy to add the row on that side.

@deepyaman
deepyaman marked this pull request as ready for review August 14, 2026 04:31
@deepyaman
deepyaman requested a review from NickCrews August 14, 2026 04:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation related issues or PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants