镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

IllegalArgumentException caused by local default datetime when using nullAsDefault property #999

Closed

Description

@clinmanc

jdbc:ch:http://host:port?nullAsDefault=2

// ClickHouseDateTimeValue.class
static {
    DEFAULT = ClickHouseDateValue.DEFAULT.atStartOfDay();
    dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
}

// BinaryStreamUtils.class
public static void writeDateTime32(OutputStream output, LocalDateTime value, TimeZone tz) throws IOException {
        long time = tz != null && !tz.equals(ClickHouseValues.UTC_TIMEZONE) ? value.atZone(tz.toZoneId()).toEpochSecond() : value.toEpochSecond(ZoneOffset.UTC);
        writeUnsignedInt32(output, ClickHouseChecker.between(time, "DateTime", 0L, 4294967295000L));
 }
Caused by: java.lang.IllegalArgumentException: DateTime(-28800) should between 0 and 4294967295000 inclusive of both values
	at com.clickhouse.client.ClickHouseChecker.newException(ClickHouseChecker.java:19) ~[clickhouse-jdbc-0.3.2-patch10-http.jar:clickhouse-jdbc 0.3.2-patch10 (revision: aebad16)]
	at com.clickhouse.client.ClickHouseChecker.between(ClickHouseChecker.java:111) ~[clickhouse-jdbc-0.3.2-patch10-http.jar:clickhouse-jdbc 0.3.2-patch10 (revision: aebad16)]
	at com.clickhouse.client.data.BinaryStreamUtils.writeDateTime32(BinaryStreamUtils.java:1468) ~[clickhouse-jdbc-0.3.2-patch10-http.jar:clickhouse-jdbc 0.3.2-patch10 (revision: aebad16)]
	at com.clickhouse.client.data.BinaryStreamUtils.writeDateTime(BinaryStreamUtils.java:1433) ~[clickhouse-jdbc-0.3.2-patch10-http.jar:clickhouse-jdbc 0.3.2-patch10 (revision: aebad16)]
	at com.clickhouse.client.data.ClickHouseRowBinaryProcessor$MappedFunctions.lambda$buildMappingsForDataTypes$53(ClickHouseRowBinaryProcessor.java:299) ~[clickhouse-jdbc-0.3.2-patch10-http.jar:clickhouse-jdbc 0.3.2-patch10 (revision: aebad16)]
	at com.clickhouse.client.data.ClickHouseRowBinaryProcessor$MappedFunctions.serialize(ClickHouseRowBinaryProcessor.java:486) ~[clickhouse-jdbc-0.3.2-patch10-http.jar:clickhouse-jdbc 0.3.2-patch10 (revision: aebad16)]
	at com.clickhouse.jdbc.internal.InputBasedPreparedStatement.addBatch(InputBasedPreparedStatement.java:326) ~[clickhouse-jdbc-0.3.2-patch10-http.jar:clickhouse-jdbc 0.3.2-patch10 (revision: aebad16)]
	at com.clickhouse.jdbc.internal.InputBasedPreparedStatement.executeAny(InputBasedPreparedStatement.java:104) ~[clickhouse-jdbc-0.3.2-patch10-http.jar:clickhouse-jdbc 0.3.2-patch10 (revision: aebad16)]
	at com.clickhouse.jdbc.internal.InputBasedPreparedStatement.execute(InputBasedPreparedStatement.java:294) ~[clickhouse-jdbc-0.3.2-patch10-http.jar:clickhouse-jdbc 0.3.2-patch10 (revision: aebad16)]

Activity

  1. added this to the 0.3.2-patch11 milestone on Jul 15, 2022
  2. cod-soap commented on Feb 27, 2023

    @cod-soap

    Still got this problem in version:0.3.2-patch11, When I set 0 or null timestamp to ClickHouse DataTime column,I got this err:
    DateTime(-28800) should between 0 and 4294967295000 inclusive of both values

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions