apache / apache/arrow-java

Consume COLUMN_DEF in JDBC Flight Driver

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

説明

### Describe the enhancement requested

`ArrowDatabaseMetadata`'s schema currently defines a vector for `COLUMN_DEF`, yet never writes any value to it. `FlightSQLColumnMetadata` also does not have a constant/getter/setter for this value.

Due to this, database connections through java's arrow-flight cannot and will not show underlying default value metadata per column. DESCRIBE TABLE or similar calls (engine depending) can still be used to get a column's default value, but it can be at odds with what the client shows.

I confirmed this behavior using Dremio as the query engine, dBeaver as the client, and iceberg as the table containing a column with a default value.

DBeaver and other DB clients should accurately show column default values when calling DatabaseMetaData.getColumns() public method. Clients will need to send this information, and the arrow driver needs to consume this information.

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

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

調査の方向性

ArrowDatabaseMetadata の COLUMN_DEF ベクターと FlightSQLColumnMetadata から始め、次に列メタデータが DatabaseMetaData.getColumns() に到達するまでを追跡します。列のデフォルト値が引き継がれ、DBeaver などのクライアントから確認できることを確実にして、完了を確認します。

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

評価

技術スタック
java
領域
api, database
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
52/100

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

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