Skip to content

Commit dff5e2e

Browse files
authored
Merge pull request #2540 from ClickHouse/jdbc_fix_metadata_resultset
[JDBC-V2] Fix some metadata resultsets return inconsistent data on `getObject()`
2 parents 036d128 + 1912235 commit dff5e2e

File tree

11 files changed

+1795
-249
lines changed

11 files changed

+1795
-249
lines changed

client-v2/src/main/java/com/clickhouse/client/api/data_formats/ClickHouseBinaryFormatReader.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@
1111
import java.math.BigInteger;
1212
import java.net.Inet4Address;
1313
import java.net.Inet6Address;
14-
import java.time.*;
14+
import java.time.Duration;
15+
import java.time.Instant;
16+
import java.time.LocalDate;
17+
import java.time.LocalDateTime;
18+
import java.time.OffsetDateTime;
19+
import java.time.ZonedDateTime;
1520
import java.time.temporal.TemporalAmount;
1621
import java.util.List;
1722
import java.util.Map;

client-v2/src/main/java/com/clickhouse/client/api/data_formats/internal/AbstractBinaryFormatReader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ public boolean readToPOJO(Map<String, POJOFieldDeserializer> deserializers, Obje
135135
* It is still internal method and should be used with care.
136136
* Usually this method is called to read next record into internal object and affects hasNext() method.
137137
* So after calling this one:
138-
* - hasNext(), next() should not be called
138+
* - hasNext(), next() and get methods cannot be called
139139
* - stream should be read with readRecord() method fully
140140
*
141141
* @param record

client-v2/src/test/java/com/clickhouse/client/query/QueryTests.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import com.clickhouse.client.api.ClientException;
1111
import com.clickhouse.client.api.DataTypeUtils;
1212
import com.clickhouse.client.api.ServerException;
13-
import com.clickhouse.client.api.command.CommandResponse;
1413
import com.clickhouse.client.api.command.CommandSettings;
1514
import com.clickhouse.client.api.data_formats.ClickHouseBinaryFormatReader;
1615
import com.clickhouse.client.api.data_formats.internal.BinaryStreamReader;
@@ -43,7 +42,6 @@
4342
import org.testng.annotations.BeforeMethod;
4443
import org.testng.annotations.DataProvider;
4544
import org.testng.annotations.Test;
46-
import org.testng.util.Strings;
4745

4846
import java.io.BufferedReader;
4947
import java.io.BufferedWriter;

jdbc-v2/src/main/java/com/clickhouse/jdbc/ConnectionImpl.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,10 @@ public void setDefaultQuerySettings(QuerySettings settings) {
130130
this.defaultQuerySettings = settings;
131131
}
132132

133+
public Calendar getDefaultCalendar() {
134+
return defaultCalendar;
135+
}
136+
133137
public String getServerVersion() throws SQLException {
134138
GenericRecord result = client.queryAll("SELECT version() as server_version").stream()
135139
.findFirst().orElseThrow(() -> new SQLException("Failed to retrieve server version.", ExceptionUtils.SQL_STATE_CLIENT_ERROR));

jdbc-v2/src/main/java/com/clickhouse/jdbc/ResultSetImpl.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939

4040
public class ResultSetImpl implements ResultSet, JdbcV2Wrapper {
4141
private static final Logger log = LoggerFactory.getLogger(ResultSetImpl.class);
42-
private ResultSetMetaData metaData;
42+
private ResultSetMetaDataImpl metaData;
4343
protected ClickHouseBinaryFormatReader reader;
4444
private QueryResponse response;
4545
private boolean closed;
@@ -49,9 +49,9 @@ public class ResultSetImpl implements ResultSet, JdbcV2Wrapper {
4949

5050
private final FeatureManager featureManager;
5151

52-
private static final int AFTER_LAST = -1;
53-
private static final int BEFORE_FIRST = 0;
54-
private static final int FIRST_ROW = 1;
52+
public static final int AFTER_LAST = -1;
53+
public static final int BEFORE_FIRST = 0;
54+
public static final int FIRST_ROW = 1;
5555
private int rowPos;
5656

5757
private int fetchSize;

0 commit comments

Comments
 (0)