You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by zy...@apache.org on 2023/06/16 15:41:16 UTC
[doris] branch master updated: [improvement](pg jdbc)Support for automatically obtaining the precision of the postgresql timestamp type (#20909)
This is an automated email from the ASF dual-hosted git repository.
zykkk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new fe18cfa2fb [improvement](pg jdbc)Support for automatically obtaining the precision of the postgresql timestamp type (#20909)
fe18cfa2fb is described below
commit fe18cfa2fbaff20109e733a3c06ea5cdca54ee4d
Author: zy-kkk <zh...@gmail.com>
AuthorDate: Fri Jun 16 23:41:09 2023 +0800
[improvement](pg jdbc)Support for automatically obtaining the precision of the postgresql timestamp type (#20909)
---
.../docker-compose/postgresql/init/02-create-table.sql | 7 ++++++-
docker/thirdparties/docker-compose/postgresql/init/04-insert.sql | 9 ++++++++-
.../org/apache/doris/external/jdbc/JdbcPostgreSQLClient.java | 7 ++++++-
regression-test/data/jdbc_catalog_p0/test_pg_jdbc_catalog.out | 8 +++-----
.../suites/jdbc_catalog_p0/test_pg_jdbc_catalog.groovy | 1 +
5 files changed, 24 insertions(+), 8 deletions(-)
diff --git a/docker/thirdparties/docker-compose/postgresql/init/02-create-table.sql b/docker/thirdparties/docker-compose/postgresql/init/02-create-table.sql
index 738582a7cb..d7a66f5395 100644
--- a/docker/thirdparties/docker-compose/postgresql/init/02-create-table.sql
+++ b/docker/thirdparties/docker-compose/postgresql/init/02-create-table.sql
@@ -160,4 +160,9 @@ CREATE TABLE catalog_pg_test.test_insert (
CREATE TABLE catalog_pg_test.wkb_test (
id SERIAL PRIMARY KEY,
location bytea
-);
\ No newline at end of file
+);
+
+CREATE TABLE catalog_pg_test.dt_test (
+ ts_field TIMESTAMP(3),
+ tzt_field TIMESTAMPTZ(3)
+);
diff --git a/docker/thirdparties/docker-compose/postgresql/init/04-insert.sql b/docker/thirdparties/docker-compose/postgresql/init/04-insert.sql
index 6211db298b..7f59c5d665 100644
--- a/docker/thirdparties/docker-compose/postgresql/init/04-insert.sql
+++ b/docker/thirdparties/docker-compose/postgresql/init/04-insert.sql
@@ -2656,4 +2656,11 @@ insert into catalog_pg_test.test12 values
insert into catalog_pg_test.test12 values
(2, '980dd890-f7fe-4fff-999d-873516108b2e');
-INSERT INTO catalog_pg_test.wkb_test (location) SELECT ST_AsBinary(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));
\ No newline at end of file
+INSERT INTO catalog_pg_test.wkb_test (location) SELECT ST_AsBinary(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));
+
+INSERT INTO catalog_pg_test.dt_test (ts_field, tzt_field)
+VALUES
+(
+ '2023-06-16 12:34:56.123',
+ '2023-06-16 12:34:56.123+08'
+);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/external/jdbc/JdbcPostgreSQLClient.java b/fe/fe-core/src/main/java/org/apache/doris/external/jdbc/JdbcPostgreSQLClient.java
index 26eba627f4..36f624372c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/external/jdbc/JdbcPostgreSQLClient.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/external/jdbc/JdbcPostgreSQLClient.java
@@ -67,7 +67,12 @@ public class JdbcPostgreSQLClient extends JdbcClient {
case "timestamp":
case "timestamptz":
// postgres can support microsecond
- return ScalarType.createDatetimeV2Type(JDBC_DATETIME_SCALE);
+ int scale = fieldSchema.getDecimalDigits();
+ if (scale < 6) {
+ return ScalarType.createDatetimeV2Type(scale);
+ } else {
+ return ScalarType.createDatetimeV2Type(JDBC_DATETIME_SCALE);
+ }
case "date":
return ScalarType.createDateV2Type();
case "bool":
diff --git a/regression-test/data/jdbc_catalog_p0/test_pg_jdbc_catalog.out b/regression-test/data/jdbc_catalog_p0/test_pg_jdbc_catalog.out
index b9326d87f9..ac53b8e768 100644
--- a/regression-test/data/jdbc_catalog_p0/test_pg_jdbc_catalog.out
+++ b/regression-test/data/jdbc_catalog_p0/test_pg_jdbc_catalog.out
@@ -5,11 +5,6 @@
234 bcd
-- !in_tb --
-111 abc
-112 abd
-113 abe
-114 abf
-115 abg
123 abc
123 abc
234 bcd
@@ -2144,6 +2139,9 @@ true abc def 2022-10-11 1.234 1 2 99 2022-10-22T10:59:59 34.123
-- !wkb_test --
1 \\x01030000000100000005000000000000000000000000000000000000000000000000000000000000000000f03f000000000000f03f000000000000f03f000000000000f03f000000000000000000000000000000000000000000000000
+-- !dt_test --
+2023-06-16T12:34:56.123 2023-06-16T12:34:56.123
+
-- !test_insert1 --
doris1 18
diff --git a/regression-test/suites/jdbc_catalog_p0/test_pg_jdbc_catalog.groovy b/regression-test/suites/jdbc_catalog_p0/test_pg_jdbc_catalog.groovy
index 62e30509cc..669eb57d71 100644
--- a/regression-test/suites/jdbc_catalog_p0/test_pg_jdbc_catalog.groovy
+++ b/regression-test/suites/jdbc_catalog_p0/test_pg_jdbc_catalog.groovy
@@ -70,6 +70,7 @@ suite("test_pg_jdbc_catalog", "p0") {
order_qt_test13 """ select * from test11 order by id; """
order_qt_test14 """ select * from test12 order by id; """
order_qt_wkb_test """ select * from wkb_test order by id; """
+ order_qt_dt_test """ select * from dt_test order by 1; """
// test insert
String uuid1 = UUID.randomUUID().toString();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org