From d1112228cd02122956a7e9dd076dc236dbf1f204 Mon Sep 17 00:00:00 2001 From: Zhiyu Yang <69311263+zyyang-taosdata@users.noreply.github.com> Date: Mon, 2 Aug 2021 15:32:55 +0800 Subject: [PATCH] Test/td 5626 (#7103) * [TD-5626]: add timezone test case for jdbc * change * change * change * change * [TD-5614]: handle client and server time not synchronized * change * do not test TimeZone Case * insert two rows --- src/connector/jdbc/pom.xml | 1 + .../com/taosdata/jdbc/TSDBJNIConnector.java | 3 +- .../taosdata/jdbc/cases/QueryDataTest.java | 3 +- .../com/taosdata/jdbc/cases/TimeZoneTest.java | 71 +++++++++++++++++++ 4 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/TimeZoneTest.java diff --git a/src/connector/jdbc/pom.xml b/src/connector/jdbc/pom.xml index 3d5cf8efe3..907562fe26 100644 --- a/src/connector/jdbc/pom.xml +++ b/src/connector/jdbc/pom.xml @@ -122,6 +122,7 @@ **/TSDBJNIConnectorTest.java **/TaosInfoMonitorTest.java **/UnsignedNumberJniTest.java + **/TimeZoneTest.java true diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java index 051eca7e10..4fdbb308c5 100755 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java +++ b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java @@ -80,7 +80,8 @@ public class TSDBJNIConnector { this.taos = this.connectImp(host, port, dbName, user, password); if (this.taos == TSDBConstants.JNI_NULL_POINTER) { - throw TSDBError.createSQLException(TSDBErrorNumbers.ERROR_JNI_CONNECTION_NULL); + String errMsg = this.getErrMsg(0); + throw TSDBError.createSQLException(TSDBErrorNumbers.ERROR_JNI_CONNECTION_NULL, errMsg); } // invoke connectImp only here taosInfo.conn_open_increment(); diff --git a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/QueryDataTest.java b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/QueryDataTest.java index 535e56f7d7..3fea221446 100644 --- a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/QueryDataTest.java +++ b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/QueryDataTest.java @@ -34,9 +34,8 @@ public class QueryDataTest { String createTableSql = "create table " + stbName + "(ts timestamp, name binary(64))"; statement.executeUpdate(createTableSql); - } catch (SQLException e) { - return; + e.printStackTrace(); } } diff --git a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/TimeZoneTest.java b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/TimeZoneTest.java new file mode 100644 index 0000000000..94a175ad5c --- /dev/null +++ b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/TimeZoneTest.java @@ -0,0 +1,71 @@ +package com.taosdata.jdbc.cases; + +import com.taosdata.jdbc.TSDBDriver; +import org.junit.Test; + +import java.sql.*; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.Properties; + +public class TimeZoneTest { + + private String url = "jdbc:TAOS://127.0.0.1:6030/?user=root&password=taosdata"; + + @Test + public void javaTimeZone() { + LocalDateTime localDateTime = LocalDateTime.of(1970, 1, 1, 0, 0, 0); + + Instant instant = localDateTime.atZone(ZoneId.of("UTC-8")).toInstant(); + System.out.println("UTC-8: " + instant.getEpochSecond() + "," + instant); + + instant = localDateTime.atZone(ZoneId.of("UT")).toInstant(); + System.out.println("UTC: " + instant.getEpochSecond() + "," + instant); + + + instant = localDateTime.atZone(ZoneId.of("UTC+8")).toInstant(); + System.out.println("UTC+8: " + instant.getEpochSecond() + "," + instant); + } + + @Test + public void taosTimeZone() { + // given + Properties props = new Properties(); + props.setProperty(TSDBDriver.PROPERTY_KEY_TIME_ZONE, "UTC-8"); + + // when and then + try (Connection connection = DriverManager.getConnection(url, props)) { + Statement stmt = connection.createStatement(); + + stmt.execute("drop database if exists timezone_test"); + stmt.execute("create database if not exists timezone_test keep 365000"); + stmt.execute("use timezone_test"); + stmt.execute("create table weather(ts timestamp, temperature float)"); + + stmt.execute("insert into timezone_test.weather(ts, temperature) values('1970-01-01 00:00:00', 1.0)"); + + ResultSet rs = stmt.executeQuery("select * from timezone_test.weather"); + while (rs.next()) { + Timestamp ts = rs.getTimestamp("ts"); + System.out.println("ts: " + ts.getTime() + "," + ts); + } + + stmt.execute("insert into timezone_test.weather(ts, temperature, humidity) values('1970-01-02 00:00:00', 1.0, 2.0)"); + + rs = stmt.executeQuery("select * from timezone_test.weather"); + while (rs.next()) { + Timestamp ts = rs.getTimestamp("ts"); + System.out.println("ts: " + ts.getTime() + "," + ts); + } + + + stmt.execute("drop database if exists timezone_test"); + + stmt.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + +} \ No newline at end of file -- GitLab