ClickHouse / ClickHouse/clickhouse-java

[jdbc-v2] JDBC Escaping

オープン
#2,352 コメント 1 件 リアクション 1 件 担当者 0 名 GitHub で見る
area:jdbc-insert bug jdbc-v2
主要言語
Java
スター
1.6k
フォーク
636
平均マージ
2日 23時間
マージ済み PR(30日)
29

説明

### Description
JDBC escaping allows to write portable (really not) SQL statements that can be run with different JDBC drivers to get same affect. For example, `{ts 2025-02-20}` should be interpreted by driver as native function like `toTimestamp()` and other drivers should do similar way.

Current JDBC implementation
- does escaping always but should be controlled by `com.clickhouse.jdbc.StatementImpl#setEscapeProcessing`
- should be true for both Statement and PreparedStatement with according tests
- lacks of documentation https://clickhouse.com/docs/integrations/language-clients/java/jdbc
- done after prepared statement is parsed but should before (to not confuse parser :-))

There is a good explanation of how JDBC escaping works https://jdbc.postgresql.org/documentation/escapes/.

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

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

調査の方向性

com.clickhouse.jdbc.StatementImpl#setEscapeProcessing から始め、prepared-statement の解析に対してエスケープ処理がどのように適用されるかを追跡します。JDBC エスケープの説明と JDBC 統合ドキュメントを確認し、その後、Statement と PreparedStatement の両方に対するカバレッジを追加します。エスケープ処理が設定可能で、両方の statement タイプで有効になり、ドキュメント化されていれば完了です。

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

評価

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

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

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