ClickHouse / ClickHouse/clickhouse-java
[jdbc-v2] JDBC Escaping
- Langage dominant
- Java
- Étoiles
- 1.6k
- Forks
- 636
- Merge moyen
- 2 j 23 h
- PR mergées (30 j)
- 29
Description
### 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/.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par com.clickhouse.jdbc.StatementImpl#setEscapeProcessing et suivez la façon dont l’échappement est appliqué par rapport à l’analyse des prepared statements. Consultez l’explication de l’échappement JDBC et la documentation sur l’intégration JDBC, puis ajoutez une couverture pour Statement et PreparedStatement. Le travail est terminé lorsque l’échappement est configurable, activé pour les deux types de statement et documenté.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- database
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 48/100