Background
Doris has many SHOW statements and several metadata TVFs. Recent PRs such as #63860, #60209, #63635, and #63864 show that metadata output is still maintained through many independent SHOW paths. This makes filtering, sorting, joining, permission handling, and compatibility harder than necessary.
This tracking issue aims to expose most Doris metadata currently returned by SHOW statements, and selected Doris metadata TVFs, as queryable tables under information_schema. Users should be able to query these metadata tables with normal SQL, for example with arbitrary WHERE, ORDER BY, JOIN, projection, and aggregation.
The existing SHOW syntax can remain for compatibility, but should eventually be implemented by querying or sharing the same provider as the corresponding information_schema table.
Goals
- Add
information_schema tables for Doris metadata currently exposed only through SHOW.
- Add
information_schema tables for Doris metadata TVFs such as frontends(), backends(), and partitions().
- Keep column definitions, privileges, and filtering behavior consistent between
SHOW, TVF, and information_schema.
- Prefer one shared metadata provider per metadata object, instead of duplicating logic in each command.
- Add regression tests for both direct
information_schema queries and compatibility with existing SHOW statements.
Non-goals
- Do not replace external data TVFs such as
s3(), hdfs(), local(), file(), http(), or cdc_stream().
- Do not include file/lake-format metadata TVFs such as
parquet_meta() or hudi_meta() in this first pass unless we explicitly decide to track external metadata in information_schema.
- Do not remove existing
SHOW syntax in this tracking issue.
Acceptance criteria for each item
- A stable
information_schema table name and schema are defined.
- Authorization matches the existing
SHOW or TVF behavior.
- Existing
SHOW behavior remains compatible.
- Regression tests cover normal query, filtering, ordering where useful, and privilege behavior where applicable.
- Documentation is updated if the metadata table is user-visible.
SHOW statements to migrate or back with information_schema
Core metadata and schema objects
Cluster, node, storage, and resource metadata
Jobs, load, backup, restore, and transaction metadata
Query, process, variable, status, and statistics metadata
Privilege, user, role, policy, and security metadata
Feature-specific metadata
Doris metadata TVFs to replace or mirror under information_schema
These TVFs are currently exposed as table-valued functions and return Doris metadata rather than external file data.
TVFs intentionally excluded from this tracking issue
These are not Doris metadata tables in the same sense, so they should not be part of the first information_schema migration.
s3(), hdfs(), local(), file(), http(), http_stream(): external file/data access
group_commit(): load/write path helper
numbers(): data generator
query(): external catalog passthrough query
cdc_stream(): CDC stream source
binlog(): debug-only row binlog reader
hudi_meta(): external Hudi metadata
parquet_meta(), parquet_file_metadata(), parquet_kv_metadata(), parquet_bloom_probe(): external Parquet/file metadata
Suggested implementation order
- Start with metadata that already has an
information_schema equivalent or near-equivalent: databases, tables, views, columns, partitions, processlist, variables, status, routines/functions, privileges.
- Move cluster and node metadata next: frontends, backends, frontend disks, brokers, configs, resources, storage vaults, workload groups.
- Move operational metadata: load, routine load, export, backup, restore, copy, transactions, snapshots, repositories.
- Move tablet and replica metadata: tablets, tablet diagnosis, replica status, replica distribution, tablet storage format.
- Move statistics and optimizer metadata: analyze jobs, table stats, column stats, histograms, query stats.
- Move feature-specific metadata and compatibility-only SHOW commands last.
Open questions
- Should every migrated
SHOW command be rewritten as a query against information_schema, or should both paths share a lower-level provider?
- Should we put Doris-specific tables directly under
information_schema, or use a separate namespace for non-standard tables?
- How should we version or document columns whose names currently come from SHOW result titles?
- Should external metadata TVFs such as
parquet_meta() and hudi_meta() get a separate tracking issue?
Background
Doris has many
SHOWstatements and several metadata TVFs. Recent PRs such as #63860, #60209, #63635, and #63864 show that metadata output is still maintained through many independent SHOW paths. This makes filtering, sorting, joining, permission handling, and compatibility harder than necessary.This tracking issue aims to expose most Doris metadata currently returned by
SHOWstatements, and selected Doris metadata TVFs, as queryable tables underinformation_schema. Users should be able to query these metadata tables with normal SQL, for example with arbitraryWHERE,ORDER BY,JOIN, projection, and aggregation.The existing
SHOWsyntax can remain for compatibility, but should eventually be implemented by querying or sharing the same provider as the correspondinginformation_schematable.Goals
information_schematables for Doris metadata currently exposed only throughSHOW.information_schematables for Doris metadata TVFs such asfrontends(),backends(), andpartitions().SHOW, TVF, andinformation_schema.information_schemaqueries and compatibility with existingSHOWstatements.Non-goals
s3(),hdfs(),local(),file(),http(), orcdc_stream().parquet_meta()orhudi_meta()in this first pass unless we explicitly decide to track external metadata ininformation_schema.SHOWsyntax in this tracking issue.Acceptance criteria for each item
information_schematable name and schema are defined.SHOWor TVF behavior.SHOWbehavior remains compatible.SHOW statements to migrate or back with information_schema
Core metadata and schema objects
showConstraint:SHOW CONSTRAINTSshowDictionaries:SHOW DICTIONARIESshowDataTypes:SHOW DATA TYPESshowData:SHOW DATAshowDataSkew:SHOW DATA SKEWCluster, node, storage, and resource metadata
showFrontends:SHOW FRONTENDSshowBackends:SHOW BACKENDSshowConfig:SHOW FRONTEND/BACKEND CONFIGshowClusters:SHOW CLUSTERS/SHOW COMPUTE GROUPSshowStorageVault:SHOW STORAGE VAULT(S)showStoragePolicy:SHOW STORAGE POLICYshowStorageEngines:SHOW STORAGE ENGINESshowResources:SHOW RESOURCESshowTrash:SHOW TRASHshowTabletStorageFormat:SHOW TABLET STORAGE FORMATadminShowTabletStorageFormat:ADMIN SHOW TABLET STORAGE FORMATshowCatalogRecycleBin:SHOW CATALOG RECYCLE BINshowWhitelist:SHOW WHITELISTshowStages:SHOW STAGESJobs, load, backup, restore, and transaction metadata
showRoutineLoad:SHOW ROUTINE LOADshowRoutineLoadTask:SHOW ROUTINE LOAD TASKshowExport:SHOW EXPORTshowDelete:SHOW DELETEshowTransaction:SHOW TRANSACTIONshowWarmUpJob:SHOW WARM UP JOBQuery, process, variable, status, and statistics metadata
showVariables:SHOW VARIABLESshowQueryStats:SHOW QUERY STATSshowAnalyze:SHOW ANALYZEshowQueuedAnalyzeJobs:SHOW QUEUED ANALYZE JOBSshowAnalyzeTask:SHOW ANALYZE TASK STATUSshowTableStats:SHOW TABLE STATSby table name and by table idshowColumnStats:SHOW COLUMN STATSshowColumnHistogramStats:SHOW COLUMN HISTOGRAMshowIndexStats:SHOW INDEX STATSPrivilege, user, role, policy, and security metadata
showGrants:SHOW GRANTSshowGrantsForUser:SHOW GRANTS FOR <user>showRoles:SHOW ROLESshowPrivileges:SHOW PRIVILEGESshowUserProperties:SHOW PROPERTYshowAllProperties:SHOW ALL PROPERTIESshowRowPolicy:SHOW ROW POLICYshowSqlBlockRule:SHOW SQL_BLOCK_RULEshowEncryptKeys:SHOW ENCRYPTKEYSFeature-specific metadata
showWorkloadGroups:SHOW WORKLOAD GROUPSshowStreams:SHOW STREAMSDoris metadata TVFs to replace or mirror under information_schema
These TVFs are currently exposed as table-valued functions and return Doris metadata rather than external file data.
backends(): backend node metadatafrontends(): frontend node metadatafrontends_disks(): frontend disk metadatacatalogs(): catalog metadatamv_infos(): materialized view metadatapartitions(): table partition metadatapartition_values(): partition value metadatajobs(): job metadatatasks(): task metadataTVFs intentionally excluded from this tracking issue
These are not Doris metadata tables in the same sense, so they should not be part of the first
information_schemamigration.s3(),hdfs(),local(),file(),http(),http_stream(): external file/data accessgroup_commit(): load/write path helpernumbers(): data generatorquery(): external catalog passthrough querycdc_stream(): CDC stream sourcebinlog(): debug-only row binlog readerhudi_meta(): external Hudi metadataparquet_meta(),parquet_file_metadata(),parquet_kv_metadata(),parquet_bloom_probe(): external Parquet/file metadataSuggested implementation order
information_schemaequivalent or near-equivalent: databases, tables, views, columns, partitions, processlist, variables, status, routines/functions, privileges.Open questions
SHOWcommand be rewritten as a query againstinformation_schema, or should both paths share a lower-level provider?information_schema, or use a separate namespace for non-standard tables?parquet_meta()andhudi_meta()get a separate tracking issue?