Skip to content

Commit 855303f

Browse files
committed
add Compatibility
1 parent 363affc commit 855303f

4 files changed

Lines changed: 20 additions & 5 deletions

File tree

databend-jdbc/src/test/java/com/databend/jdbc/Compatibility.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ private static Semver getServerVersion() {
4444
return new Semver(env, Semver.SemverType.NPM).withClearedSuffixAndBuild();
4545
}
4646

47-
public static boolean skipDriverBug(String version) {
47+
public static boolean skipDriverBugLowerThen(String version) {
4848
if (driverVersion != null && driverVersion.isLowerThan(new Semver(version))) {
4949
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
5050
String callerName = stackTrace[2].getMethodName();
@@ -53,4 +53,16 @@ public static boolean skipDriverBug(String version) {
5353
}
5454
return false;
5555
}
56+
public static boolean skipBugLowerThenOrEqualTo(String serverVersionBug, String driverVersionBug) {
57+
if (driverVersion != null && driverVersion.isLowerThanOrEqualTo(new Semver(serverVersionBug))
58+
&& serverVersion != null && serverVersion.isLowerThanOrEqualTo(serverVersionBug)
59+
) {
60+
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
61+
String callerName = stackTrace[2].getMethodName();
62+
System.out.printf("SkipDriverBug (server <= %s && driver <=%s), method = %s",
63+
serverVersionBug, driverVersionBug, callerName);
64+
return true;
65+
}
66+
return false;
67+
}
5668
}

databend-jdbc/src/test/java/com/databend/jdbc/TestBasicDriver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ public void testDefaultSelectNullValue() throws SQLException {
201201
Assert.assertEquals(r.getInt(1), 1);
202202
Assert.assertNull(r.getObject(2));
203203
Assert.assertEquals(r.getObject(3), "null");
204-
if (Compatibility.skipDriverBug("0.3.9")) {
204+
if (Compatibility.skipDriverBugLowerThen("0.3.9")) {
205205
Assert.assertNull(r.getObject(4));
206206
} else {
207207
Assert.assertEquals(r.getObject(4), "NULL");

databend-jdbc/src/test/java/com/databend/jdbc/TestPrepareStatement.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -609,7 +609,7 @@ public void testExecuteUpdate() throws SQLException {
609609

610610
@Test(groups = "IT")
611611
public void testInsertWithSelect() throws SQLException {
612-
if (Compatibility.skipDriverBug("0.3.9")) {
612+
if (Compatibility.skipDriverBugLowerThen("0.3.9")) {
613613
return;
614614
}
615615
Connection conn = Utils.createConnection();

databend-jdbc/src/test/java/com/databend/jdbc/TestTransaction.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,12 @@ public void testConflict() throws SQLException {
110110
java.sql.SQLException.class,
111111
() -> statement1.execute("commit")
112112
);
113-
// e.g. Unresolvable conflict detected for table 2249
114-
Assert.assertTrue(exception.getMessage().toLowerCase().contains("conflict"), exception.getMessage());
115113

114+
// Bug: Transaction timeout: last_query_id 9b619dc70fd64d6b8de7490aaf486f5c not found on this server
115+
if (!Compatibility.skipBugLowerThenOrEqualTo("1.2.790", "0.3.9")) {
116+
// e.g. Unresolvable conflict detected for table 2249
117+
Assert.assertTrue(exception.getMessage().toLowerCase().contains("conflict"), exception.getMessage());
118+
}
116119

117120
statement2.execute("select j from test_txn.table3 where i = 1");
118121
ResultSet rs = statement2.getResultSet();

0 commit comments

Comments
 (0)