Skip to content

Commit a86904b

Browse files
committed
chore: add 3.3.6.0 test case with env
1 parent bcc1e41 commit a86904b

33 files changed

Lines changed: 868 additions & 367 deletions

.github/workflows/compatibility-3360.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ jobs:
6666
working-directory: jdbc-workspace
6767
env:
6868
TDENGINE_CLOUD_URL: ${{ secrets.TDENGINE_CLOUD_URL }}
69+
TD_3360_TEST: 'true'
6970
run: mvn -B clean verify --file pom.xml
7071

7172

deploy-pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
<product.version>3.0.0.0</product.version>
4242
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
4343
<java.version>1.8</java.version>
44-
<jackson.version>2.18.0</jackson.version>
44+
<jackson.version>2.18.4</jackson.version>
4545
<httpclient.version>4.5.13</httpclient.version>
4646
<guava.version>32.1.3-jre</guava.version>
4747
<netty-all.version>4.1.119.Final</netty-all.version>

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.7.0-NOENCODE</version>
6+
<version>3.7.0</version>
77

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

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

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

33
import com.taosdata.jdbc.enums.SchemalessProtocolType;
44
import com.taosdata.jdbc.enums.SchemalessTimestampType;
5+
import com.taosdata.jdbc.utils.VersionUtil;
56

67
import java.sql.*;
78
import java.util.*;
@@ -17,13 +18,22 @@ public abstract class AbstractConnection extends WrapperImpl implements Connecti
1718
protected volatile boolean isClosed;
1819
protected volatile String catalog;
1920
protected final Properties clientInfoProps = new Properties();
21+
protected final boolean supportBlob;
22+
protected final boolean supportLineBind;
2023

21-
protected AbstractConnection(Properties properties) {
24+
protected final String serverVersion;
25+
26+
protected AbstractConnection(Properties properties, String version) {
2227
Set<String> propNames = properties.stringPropertyNames();
2328
for (String propName : propNames) {
2429
clientInfoProps.setProperty(propName, properties.getProperty(propName));
2530
}
31+
serverVersion = version;
32+
supportBlob = VersionUtil.surpportBlob(serverVersion);
33+
supportLineBind = supportBlob;
2634
}
35+
36+
public boolean isSupportBlob(){return supportBlob;}
2737
public void unregisterStatement(Long stmtId) {
2838
this.statementsMap.remove(stmtId);
2939
}

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

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,18 @@ protected Connection getWSConnection(String url, ConnectionParam param, Properti
106106
throw new SQLException("(0x" + Integer.toHexString(auth.getCode()) + "):" + "auth failure:" + auth.getMessage());
107107
}
108108

109-
VersionUtil.checkVersion(auth.getVersion(), transport);
109+
String version = auth.getVersion();
110+
if (version == null){
111+
version = VersionUtil.getVersion(transport);
112+
}
113+
114+
if (!VersionUtil.checkVersion(version)) {
115+
transport.close();
116+
throw TSDBError.createSQLException(TSDBErrorNumbers.ERROR_VERSION_INCOPMATIABLE, "minimal supported version is " + MIN_SUPPORT_VERSION + ", but got " + version);
117+
}
118+
110119
TaosGlobalConfig.setCharset(StandardCharsets.UTF_8.name());
111-
return new WSConnection(url, props, transport, param);
120+
return new WSConnection(url, props, transport, param, version);
112121
}
113122

114123
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public class TSDBConnection extends AbstractConnection {
2020
private final TSDBDatabaseMetaData databaseMetaData;
2121

2222
public TSDBConnection(Properties info, TSDBDatabaseMetaData meta) throws SQLException {
23-
super(info);
23+
super(info, TSDBConstants.UNKNOWN_VERSION);
2424
this.databaseMetaData = meta;
2525
connect(info.getProperty(TSDBDriver.PROPERTY_KEY_HOST),
2626
Integer.parseInt(info.getProperty(TSDBDriver.PROPERTY_KEY_PORT, "0")),

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ public abstract class TSDBConstants {
9999
public static final long MAX_UNSIGNED_INT = 4294967295L;
100100
public static final String MAX_UNSIGNED_LONG = "18446744073709551615";
101101
public static final String MIN_SUPPORT_VERSION = "3.3.6.0";
102+
public static final String MIN_BLOB_SUPPORT_VERSION = "3.3.7.0.alpha";
103+
public static final String UNKNOWN_VERSION = "unknown";
102104

103105
public static String jdbcType2TaosTypeName(int jdbcType) throws SQLException {
104106
switch (jdbcType) {

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ public class TSDBError {
4444
TSDBErrorMap.put(TSDBErrorNumbers.ERROR_TYPE_CONVERT_EXCEPTION, "type convert exception");
4545
TSDBErrorMap.put(TSDBErrorNumbers.ERROR_VERSION_INCOPMATIABLE, "TDengine version incompatible");
4646
TSDBErrorMap.put(TSDBErrorNumbers.ERROR_RESOURCE_FREEED, "resource has been freed");
47+
TSDBErrorMap.put(TSDBErrorNumbers.ERROR_BLOB_UNSUPPORTED_IN_SERVER, "BLOB is unsupported on the server");
48+
TSDBErrorMap.put(TSDBErrorNumbers.ERROR_LINE_BIND_MODE_UNSUPPORTED_IN_SERVER, "line bind mode is unsupported on the server");
4749

4850
TSDBErrorMap.put(TSDBErrorNumbers.ERROR_UNKNOWN, "unknown error");
4951

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ public class TSDBErrorNumbers {
4040
public static final int ERROR_VERSION_INCOPMATIABLE = 0x2321;
4141
public static final int ERROR_RESOURCE_FREEED = 0x2322;
4242

43+
public static final int ERROR_BLOB_UNSUPPORTED_IN_SERVER = 0x2323;
44+
public static final int ERROR_LINE_BIND_MODE_UNSUPPORTED_IN_SERVER = 0x2324;
45+
4346
public static final int ERROR_UNKNOWN = 0x2350; //unknown error
4447

4548
public static final int ERROR_SUBSCRIBE_FAILED = 0x2351; // failed to create subscription
@@ -103,6 +106,8 @@ public class TSDBErrorNumbers {
103106
errorNumbers.add(ERROR_TYPE_CONVERT_EXCEPTION);
104107
errorNumbers.add(ERROR_VERSION_INCOPMATIABLE);
105108
errorNumbers.add(ERROR_RESOURCE_FREEED);
109+
errorNumbers.add(ERROR_BLOB_UNSUPPORTED_IN_SERVER);
110+
errorNumbers.add(ERROR_LINE_BIND_MODE_UNSUPPORTED_IN_SERVER);
106111

107112
errorNumbers.add(ERROR_RESTFul_Client_Protocol_Exception);
108113

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

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package com.taosdata.jdbc.rs;
22

3-
import com.taosdata.jdbc.AbstractConnection;
4-
import com.taosdata.jdbc.TSDBDriver;
5-
import com.taosdata.jdbc.TSDBError;
6-
import com.taosdata.jdbc.TSDBErrorNumbers;
3+
import com.taosdata.jdbc.*;
74
import com.taosdata.jdbc.enums.SchemalessProtocolType;
85
import com.taosdata.jdbc.enums.SchemalessTimestampType;
96

@@ -29,7 +26,7 @@ public class RestfulConnection extends AbstractConnection {
2926
private final DatabaseMetaData metadata;
3027

3128
public RestfulConnection(String host, String port, Properties props, String database, String url, String auth, boolean useSsl, String token, String tz) {
32-
super(props);
29+
super(props, TSDBConstants.UNKNOWN_VERSION);
3330
this.host = host;
3431
this.port = port;
3532
this.database = database;

0 commit comments

Comments
 (0)