Skip to content

jdbc-v2: Issue with parameter data type #2674

@jnd77

Description

@jnd77

Description

When running a prepared statement with COALESCE and a date, the execution fails due to type.

Am not entirely sure whether it's an issue with the JDBC driver (which serializes the date as a String in PreparedStatementImpl#encodeObject - nothing wrong with that) or the server (which should deserialize it with the proper type, or COALESCE which should handle types better - see ClickHouse/ClickHouse#57292 , although most other databases handle this use case).

Steps to reproduce

See the code below.

Error Log or Exception StackTrace

Caused by: com.clickhouse.client.api.ServerException: Code: 386. DB::Exception: There is no supertype for types Date32, String because some of them are String/FixedString/Enum and some of them are not: In scope SELECT COALESCE(date, '2025-12-31') FROM test_local_date. (NO_COMMON_TYPE) (version 25.8.7.3 (official build)) 
	at com.clickhouse.client.api.internal.HttpAPIClientHelper.readError(HttpAPIClientHelper.java:403)

Expected Behaviour

The query should return without error.

Code Example

  @Test
  void required_testJdbcWithLocalDate() throws Exception {
    final String url = "jdbc:ch://localhost:" + SERVER.getFirstMappedPort();

    final Properties info = new Properties();
    info.put("user", SERVER.getClickhouseUser());
    info.put("password", SERVER.getClickhousePassword());

    try (final Connection conn = DriverManager.getConnection(url, info)) {
      conn.prepareStatement("CREATE TABLE test_local_date"
          + " (id Int64, date Nullable(Date32)) ENGINE = MergeTree() ORDER BY id").execute();
      conn.prepareStatement("INSERT INTO test_local_date VALUES (1, null)").execute();
      try (final PreparedStatement preparedStatement = conn.prepareStatement("SELECT COALESCE(date, ?) FROM test_local_date")) {
        preparedStatement.setObject(1, LocalDate.of(2025, 12, 31));
        preparedStatement.executeQuery();
      }
    }
  }

Configuration

Client Configuration

Environment

  • Cloud
  • Client version: clickhouse-jdbc 0.9.4
  • Language version:
  • OS:

ClickHouse Server

  • ClickHouse Server version: 25.8.7.3

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions