Skip to content

Commit e4e8407

Browse files
authored
fix: fix small query perf bug (#247)
* fix small query perf bug * fix tmq meta NPE bug
1 parent e9aef94 commit e4e8407

8 files changed

Lines changed: 17 additions & 9 deletions

File tree

deploy-pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>com.taosdata.jdbc</groupId>
77
<artifactId>taos-jdbcdriver</artifactId>
8-
<version>3.6.0</version>
8+
<version>3.6.1</version>
99
<packaging>jar</packaging>
1010

1111
<name>JDBCDriver</name>

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>com.taosdata.jdbc</groupId>
55
<artifactId>taos-jdbcdriver</artifactId>
6-
<version>3.6.0</version>
6+
<version>3.6.1</version>
77

88
<packaging>jar</packaging>
99
<name>JDBCDriver</name>

src/main/java/com/taosdata/jdbc/AbstractDriver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ protected Connection getWSConnection(String url, ConnectionParam param, Properti
6565
if (log.isDebugEnabled()){
6666
log.debug("getWSConnection, url = {}", StringUtils.getBasicUrl(url));
6767
try {
68-
ObjectMapper objectMapper = new ObjectMapper();
68+
ObjectMapper objectMapper = JsonUtil.getObjectMapper();
6969
log.debug("getWSConnection, ConnectionParam = {}", objectMapper.writeValueAsString(param));
7070
} catch (JsonProcessingException e) {
7171
log.error("Error serializing ConnectionParam", e);

src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.fasterxml.jackson.databind.node.ObjectNode;
66
import com.taosdata.jdbc.enums.SchemalessProtocolType;
77
import com.taosdata.jdbc.enums.SchemalessTimestampType;
8+
import com.taosdata.jdbc.utils.JsonUtil;
89
import com.taosdata.jdbc.utils.TaosInfo;
910

1011
import java.io.UnsupportedEncodingException;
@@ -86,7 +87,7 @@ public static void init(Properties props) throws SQLWarning {
8687
synchronized (LOCK) {
8788
if (!isInitialized) {
8889

89-
ObjectMapper objectMapper = new ObjectMapper();
90+
ObjectMapper objectMapper = JsonUtil.getObjectMapper();
9091
ObjectNode configJSON = objectMapper.createObjectNode();
9192

9293
for (String key : props.stringPropertyNames()) {

src/main/java/com/taosdata/jdbc/rs/RestfulStatement.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.taosdata.jdbc.TSDBError;
99
import com.taosdata.jdbc.TSDBErrorNumbers;
1010
import com.taosdata.jdbc.utils.HttpClientPoolUtil;
11+
import com.taosdata.jdbc.utils.JsonUtil;
1112
import com.taosdata.jdbc.utils.SqlSyntaxValidator;
1213

1314
import java.sql.Connection;
@@ -86,7 +87,7 @@ public boolean execute(String sql, Long reqId) throws SQLException {
8687
boolean result = true;
8788

8889
String response = HttpClientPoolUtil.execute(getUrl(), sql, this.conn.getAuth(), reqId);
89-
ObjectMapper objectMapper = new ObjectMapper();
90+
ObjectMapper objectMapper = JsonUtil.getObjectMapper();
9091
JsonNode jsonObject = null;
9192
try {
9293
jsonObject = objectMapper.readTree(response);

src/main/java/com/taosdata/jdbc/ws/AbstractWSResultSet.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ public boolean next() throws SQLException {
177177

178178
if (resp.isCompleted() || isClosed) {
179179
blockData.setCompleted(true);
180+
isCompleted = true;
180181
return false;
181182
}
182183

src/main/java/com/taosdata/jdbc/ws/entity/Request.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.fasterxml.jackson.core.JsonProcessingException;
44
import com.fasterxml.jackson.databind.ObjectMapper;
5+
import com.taosdata.jdbc.utils.JsonUtil;
56
import org.slf4j.Logger;
67
import org.slf4j.LoggerFactory;
78

@@ -41,7 +42,7 @@ public void setArgs(Payload args) {
4142

4243
@Override
4344
public String toString() {
44-
ObjectMapper objectMapper = new ObjectMapper();
45+
ObjectMapper objectMapper = JsonUtil.getObjectMapper();
4546
try {
4647
return objectMapper.writeValueAsString(this);
4748
} catch (JsonProcessingException e) {

src/main/java/com/taosdata/jdbc/ws/tmq/WSConsumer.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,19 @@ private ConsumerRecords<V> doPoll(Duration timeout, Deserializer<V> deserializer
140140
return ConsumerRecords.emptyRecord();
141141
}
142142

143+
messageId = pollResp.getMessageId();
144+
143145
if (pollResp.getMessageType() == TmqMessageType.TMQ_RES_TABLE_META.getCode() || pollResp.getMessageType() == TmqMessageType.TMQ_RES_METADATA.getCode()) {
144146
Request fetchJsonMetaReq = factory.generateFetchJsonMeata(pollResp.getMessageId());
145147
FetchJsonMetaResp fetchJsonMetaResp = (FetchJsonMetaResp) transport.send(fetchJsonMetaReq);
146148
if (Code.SUCCESS.getCode() != fetchJsonMetaResp.getCode()) {
147149
throw new SQLException("consumer fetch json meta error, code: (0x" + Integer.toHexString(fetchJsonMetaResp.getCode()) + "), message: " + fetchJsonMetaResp.getMessage());
148150
}
149-
messageId = pollResp.getMessageId();
151+
152+
if (fetchJsonMetaResp.getData() == null || fetchJsonMetaResp.getData().getMetas() == null) {
153+
return ConsumerRecords.emptyRecord();
154+
}
155+
150156
ConsumerRecords<V> records = new ConsumerRecords<>();
151157

152158
for (Meta meta : fetchJsonMetaResp.getData().getMetas()){
@@ -169,8 +175,6 @@ private ConsumerRecords<V> doPoll(Duration timeout, Deserializer<V> deserializer
169175
if (pollResp.getMessageType() != TmqMessageType.TMQ_RES_DATA.getCode()) {
170176
return ConsumerRecords.emptyRecord();
171177
}
172-
messageId = pollResp.getMessageId();
173-
174178

175179
ConsumerRecords<V> records = new ConsumerRecords<>();
176180
try (WSConsumerResultSet rs = new WSConsumerResultSet(transport, factory, pollResp.getMessageId(), pollResp.getDatabase())) {

0 commit comments

Comments
 (0)