[ https://issues.apache.org/jira/browse/CALCITE-5068?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
itxiangkui updated CALCITE-5068: -------------------------------- Description: when i use under sqlline !schema !tables !metadata getSchemas When I wait for the command, I find that the catalog seems to be a wrong meta information, and it is always empty, even after I call connection.setCatalog(). Looking at the source code, found org.apache.calcite.jdbc.CalciteMetaImpl's __________________________________________________________________ Enumerable<MetaSchema> schemas(final String catalog) { return Linq4j.asEnumerable( getConnection().rootSchema.getSubSchemaMap().values()) .select((Function1<CalciteSchema, MetaSchema>) calciteSchema -> new CalciteMetaSchema(calciteSchema, catalog, calciteSchema.getName())) .orderBy((Function1<MetaSchema, Comparable>) metaSchema -> (Comparable) FlatLists.of(Util.first(metaSchema.tableCatalog, ""), metaSchema.tableSchem)); __________________________________________________________________ Obviously, the parameters of the catalog are not used for filtering, and there is no context information of the catalog in the rootSchema. The catalog is directly passed to the CalciteMetaSchema object. was: when i use under sqlline ````shell !schema !tables !metadata getSchemas ```` When I wait for the command, I find that the catalog seems to be a wrong meta information, and it is always empty, even after I call connection.setCatalog(). Looking at the source code, found org.apache.calcite.jdbc.CalciteMetaImpl's ```java Enumerable<MetaSchema> schemas(final String catalog) { return Linq4j.asEnumerable( getConnection().rootSchema.getSubSchemaMap().values()) .select((Function1<CalciteSchema, MetaSchema>) calciteSchema -> new CalciteMetaSchema(calciteSchema, catalog, calciteSchema.getName())) .orderBy((Function1<MetaSchema, Comparable>) metaSchema -> (Comparable) FlatLists.of(Util.first(metaSchema.tableCatalog, ""), metaSchema.tableSchem)); } ``` Obviously, the parameters of the catalog are not used for filtering, and there is no context information of the catalog in the rootSchema. The catalog is directly passed to the CalciteMetaSchema object. > There are some problems with the use of catalog > ----------------------------------------------- > > Key: CALCITE-5068 > URL: https://issues.apache.org/jira/browse/CALCITE-5068 > Project: Calcite > Issue Type: Bug > Reporter: itxiangkui > Priority: Major > > when i use under sqlline > !schema > !tables > !metadata getSchemas > When I wait for the command, I find that the catalog seems to be a wrong meta > information, and it is always empty, even after I call > connection.setCatalog(). > Looking at the source code, found org.apache.calcite.jdbc.CalciteMetaImpl's > __________________________________________________________________ > Enumerable<MetaSchema> schemas(final String catalog) { > return Linq4j.asEnumerable( > getConnection().rootSchema.getSubSchemaMap().values()) > .select((Function1<CalciteSchema, MetaSchema>) calciteSchema -> > new CalciteMetaSchema(calciteSchema, catalog, > calciteSchema.getName())) > .orderBy((Function1<MetaSchema, Comparable>) metaSchema -> > (Comparable) FlatLists.of(Util.first(metaSchema.tableCatalog, ""), > metaSchema.tableSchem)); > __________________________________________________________________ > Obviously, the parameters of the catalog are not used for filtering, and > there is no context information of the catalog in the rootSchema. The catalog > is directly passed to the CalciteMetaSchema object. -- This message was sent by Atlassian Jira (v8.20.1#820001)