apache / apache/arrow-java

[Java] Some questions about the metadata api of jdbc

Offen
#180 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Java
Sterne
94
Forks
152
Ø Merge
3 T. 16 Std.
Gemergte PRs (30 T.)
11

Beschreibung

### Describe the usage question you have. Please include as many useful details as possible.

When I call the `getTables` interface, I get an error
```
java.sql.SQLException: Failed to transform VectorSchemaRoot.

at org.apache.arrow.driver.jdbc.ArrowFlightJdbcFlightStreamResultSet.executeForCurrentFlightStream(ArrowFlightJdbcFlightStreamResultSet.java:150)
at org.apache.arrow.driver.jdbc.ArrowFlightJdbcFlightStreamResultSet.execute(ArrowFlightJdbcFlightStreamResultSet.java:139)
at org.apache.arrow.driver.jdbc.ArrowFlightJdbcFlightStreamResultSet.fromFlightInfo(ArrowFlightJdbcFlightStreamResultSet.java:105)
at org.apache.arrow.driver.jdbc.ArrowDatabaseMetadata.getTables(ArrowDatabaseMetadata.java:902)
```

My server returns the result as follows
```
SELECT
TABLE_TENANT as TABLE_CAT,
TABLE_DATABASE as TABLE_SCHEM,
TABLE_NAME,
TABLE_TYPE
FROM
INFORMATION_SCHEMA.TABLES
WHERE TABLE_TENANT = 'cnosdb' AND TABLE_DATABASE LIKE 'public' AND TABLE_NAME LIKE '%' AND TABLE_TYPE IN ('TABLE')
ORDER BY
TABLE_TYPE, TABLE_CAT, TABLE_SCHEM, TABLE_NAME
```

By the code, I found that

- Convert `catalog_name` to `TABLE_CAT` in the `ArrowDatabaseMetadata.getCatalogs` api.
- Convert `db_schema_name` to `TABLE_SCHEM` in the `ArrowDatabaseMetadata.getSchemas` api.
- ......

For the above, can I think that the ResultSet Schema of my `getSchemas` implementation must be `db_schema_name`, `catalog_name` instead of `TABLE_SCHEM`, `TABLE_CATALOG`. The same goes for other API?

### Component(s)

Java

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginnen Sie in ArrowDatabaseMetadata.getTables, getSchemas und getCatalogs und verfolgen Sie anschließend die Schema-Transformation in ArrowFlightJdbcFlightStreamResultSet.executeForCurrentFlightStream. Vergleichen Sie die zurückgegebenen Spalten mit dem JDBC-Metadatenvertrag und ermitteln Sie, warum das Ergebnis von getTables nicht transformiert werden kann. Als erledigt gilt die Aufgabe, wenn das erwartete Schema dokumentiert und ein bestätigter Lösungsweg gefunden wurde.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
api, databases
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.