apache / apache/arrow-java

[Java] Some questions about the metadata api of jdbc

オープン
#180 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
94
フォーク
152
平均マージ
3日 16時間
マージ済み PR(30日)
11

説明

### 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

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

ArrowDatabaseMetadata.getTables、getSchemas、getCatalogs から開始し、続いて ArrowFlightJdbcFlightStreamResultSet.executeForCurrentFlightStream におけるスキーマ変換を追跡します。返された列を JDBC メタデータの契約と比較し、getTables の結果を変換できない理由を特定します。期待されるスキーマを文書化し、解決方法を確認できれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
api, databases
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。