From f254bd2a164fef9446126bae0555a67549770d92 Mon Sep 17 00:00:00 2001 From: zy-kkk Date: Thu, 9 Nov 2023 15:43:19 +0800 Subject: [PATCH 1/2] [test](jdbc) add doris and sqlserver jdbc catalog test case --- .../sqlserver/init/03-create-table.sql | 33 ++++++++++++++++++ .../sqlserver/init/04-insert.sql | 34 +++++++++++++++++++ .../jdbc/test_doris_jdbc_catalog.out | 18 ++++++++++ .../jdbc/test_sqlserver_jdbc_catalog.out | 11 ++++++ .../jdbc/test_doris_jdbc_catalog.groovy | 10 ++++++ .../jdbc/test_sqlserver_jdbc_catalog.groovy | 5 ++- 6 files changed, 110 insertions(+), 1 deletion(-) diff --git a/docker/thirdparties/docker-compose/sqlserver/init/03-create-table.sql b/docker/thirdparties/docker-compose/sqlserver/init/03-create-table.sql index a491647e785ec0..cddd38f7863789 100644 --- a/docker/thirdparties/docker-compose/sqlserver/init/03-create-table.sql +++ b/docker/thirdparties/docker-compose/sqlserver/init/03-create-table.sql @@ -101,3 +101,36 @@ CREATE TABLE dbo.t_id ( Name nvarchar(100) ); +CREATE TABLE dbo.all_type ( + id int PRIMARY KEY NOT NULL, + name varchar(10) NULL, + age int NULL, + tinyint_value tinyint NULL, + smallint_value smallint NULL, + bigint_value bigint NULL, + real_value real NULL, + float_value float NULL, + floatn_value float(5) NULL, + decimal_value decimal(38,0) NULL, + numeric_value numeric(38,0) NULL, + decimal_value2 decimal(38,10) NULL, + numeric_value2 numeric(38,10) NULL, + char_value char(20) NULL, + varchar_value varchar(20) NULL, + varcharmax_value varchar(max) NULL, + nchar_value nchar(20) NULL, + nvarchar_value nvarchar(20) NULL, + nvarcharmax_value nvarchar(max) NULL, + date_value date NULL, + time_value time NULL, + datetime_value datetime NULL, + datetime2_value datetime2 NULL, + smalldatetime_value smalldatetime NULL, + datetimeoffset_value datetimeoffset NULL, + text_value text NULL, + ntext_value ntext NULL, + money_value money NULL, + smallmoney_value smallmoney NULL, + bit_value bit NULL +); + diff --git a/docker/thirdparties/docker-compose/sqlserver/init/04-insert.sql b/docker/thirdparties/docker-compose/sqlserver/init/04-insert.sql index f4f67523dfb607..c18f629707d814 100644 --- a/docker/thirdparties/docker-compose/sqlserver/init/04-insert.sql +++ b/docker/thirdparties/docker-compose/sqlserver/init/04-insert.sql @@ -63,3 +63,37 @@ VALUES ( INSERT INTO dbo.t_id (ID, Name) VALUES (NEWID(), 'Data 1'); INSERT INTO dbo.t_id (ID, Name) VALUES (NEWID(), 'Data 2'); +Insert into dbo.all_type values +( +1, +'doris', +18, +0, +1, +1, +123.123, +123.123, +123.123, +12345678901234567890123456789012345678, +12345678901234567890123456789012345678, +1234567890123456789012345678.0123456789, +1234567890123456789012345678.0123456789, +'Make Doris Great!', +'Make Doris Great!', +'Make Doris Great!', +'Make Doris Great!', +'Make Doris Great!', +'Make Doris Great!', +'2023-01-17', +'16:49:05.1234567', +'2023-01-17 16:49:05', +'2023-01-17 16:49:05.1234567', +'2023-01-17 16:49:05', +'2023-01-17 16:49:05+08:00', +'Make Doris Great!', +'Make Doris Great!', +922337203685477.5807, +214748.3647, +0 +), +(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); diff --git a/regression-test/data/external_table_p0/jdbc/test_doris_jdbc_catalog.out b/regression-test/data/external_table_p0/jdbc/test_doris_jdbc_catalog.out index 011a1f2a4b5cfc..c4d9062d3a8d00 100644 --- a/regression-test/data/external_table_p0/jdbc/test_doris_jdbc_catalog.out +++ b/regression-test/data/external_table_p0/jdbc/test_doris_jdbc_catalog.out @@ -28,10 +28,12 @@ doris_jdbc_catalog 6 doris6 -- !base1 -- +\N \N \N \N \N \N \N \N \N \N \N \N \N \N \N true 1 1 1 1 1 1.0 1.0 1.00000 1.0000000000 2021-01-01 2021-01-01T00:00 a a {"a":1} -- !arr1 -- 1 [1] [1] [1] [1] [1] [1] [1] [1] [1.00000] [1.0000000000] ["2021-01-01"] ["2021-01-01 00:00:00.000"] ["a"] ["a"] ["a"] +2 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N -- !tb1 -- 1 1 @@ -56,10 +58,26 @@ doris_jdbc_catalog 6 1 -- !base2 -- +\N \N \N \N \N \N \N \N \N \N \N \N \N \N \N true 1 1 1 1 1 1.0 1.0 1.00000 1.0000000000 2021-01-01 2021-01-01T00:00 a a {"a":1} -- !arr2 -- 1 [1] [1] [1] [1] [1] [1] [1] [1] [1.00000] [1.0000000000] ["2021-01-01"] ["2021-01-01 00:00:00.000"] ["a"] ["a"] ["a"] +2 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N + +-- !ctas_base -- +2 + +-- !ctas_arr -- +2 + +-- !query_ctas_base -- +\N \N \N \N \N \N \N \N \N \N \N \N \N \N \N +true 1 1 1 1 1 1.0 1.0 1.00000 1.0000000000 2021-01-01 2021-01-01T00:00 a a {"a":1} + +-- !query_ctas_arr -- +1 [1] [1] [1] [1] [1] [1] [1] [1] [1.00000] [1.0000000000] ["2021-01-01"] ["2021-01-01 00:00:00.000"] ["a"] ["a"] ["a"] +2 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N -- !sql -- doris_jdbc_catalog diff --git a/regression-test/data/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.out b/regression-test/data/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.out index 17ddfbfee81a4e..e30aafcce790c7 100644 --- a/regression-test/data/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.out +++ b/regression-test/data/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.out @@ -56,6 +56,17 @@ -- !id -- 2 +-- !all_type -- +1 doris 18 0 1 1 123.123 123.123 123.123 12345678901234567890123456789012345678 12345678901234567890123456789012345678 1234567890123456789012345678.0123456789 1234567890123456789012345678.0123456789 Make Doris Great! Make Doris Great! Make Doris Great! Make Doris Great! Make Doris Great! Make Doris Great! 2023-01-17 16:49:05.123 2023-01-17T16:49:05 2023-01-17T16:49:05.123456 2023-01-17T16:49 2023-01-17 16:49:05 +08:00 Make Doris Great! Make Doris Great! 922337203685477.5807 214748.3647 false +2 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N + +-- !ctas -- +2 + +-- !query_ctas -- +1 doris 18 0 1 1 123.123 123.123 123.123 12345678901234567890123456789012345678 12345678901234567890123456789012345678 1234567890123456789012345678.0123456789 1234567890123456789012345678.0123456789 Make Doris Great! Make Doris Great! Make Doris Great! Make Doris Great! Make Doris Great! Make Doris Great! 2023-01-17 16:49:05.123 2023-01-17T16:49:05 2023-01-17T16:49:05.123456 2023-01-17T16:49 2023-01-17 16:49:05 +08:00 Make Doris Great! Make Doris Great! 922337203685477.5807 214748.3647 false +2 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N + -- !sql -- INFORMATION_SCHEMA db_accessadmin diff --git a/regression-test/suites/external_table_p0/jdbc/test_doris_jdbc_catalog.groovy b/regression-test/suites/external_table_p0/jdbc/test_doris_jdbc_catalog.groovy index 280d30614deb05..d75d401392c266 100644 --- a/regression-test/suites/external_table_p0/jdbc/test_doris_jdbc_catalog.groovy +++ b/regression-test/suites/external_table_p0/jdbc/test_doris_jdbc_catalog.groovy @@ -122,6 +122,8 @@ suite("test_doris_jdbc_catalog", "p0,external,doris,external_docker,external_doc ); """ sql """insert into ${base_table} values (true, 1, 1, 1, 1, 1, 1.0, 1.0, 1.0, 1.0, '2021-01-01', '2021-01-01 00:00:00.000', 'a', 'a', '{\"a\": 1}');""" + // insert NULL + sql """insert into ${base_table} values (null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);""" order_qt_base1 """ select * from ${base_table} order by int_col; """ sql """drop table if exists ${arr_table}""" @@ -152,6 +154,8 @@ suite("test_doris_jdbc_catalog", "p0,external,doris,external_docker,external_doc """ sql """insert into ${arr_table} values (1, array(true), array(1), array(1), array(1), array(1), array(1), array(1.0), array(1.0), array(1.0), array(1.0), array('2021-01-01'), array('2021-01-01 00:00:00.000'), array('a'), array('a'), array('a'));""" + // insert NULL + sql """insert into ${arr_table} values (2, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);""" order_qt_arr1 """ select * from ${arr_table} order by int_col; """ @@ -167,6 +171,12 @@ suite("test_doris_jdbc_catalog", "p0,external,doris,external_docker,external_doc order_qt_tb2 """ select pin_id, hll_union_agg(user_log_acct) from ${catalog_name}.${internal_db_name}.${hllTable} group by pin_id; """ order_qt_base2 """ select * from ${catalog_name}.${internal_db_name}.${base_table} order by int_col; """ order_qt_arr2 """ select * from ${catalog_name}.${internal_db_name}.${arr_table} order by int_col; """ + sql """ drop table if exists internal.${internal_db_name}.ctas_base; """ + sql """ drop table if exists internal.${internal_db_name}.ctas_arr; """ + order_qt_ctas_base """ create table internal.${internal_db_name}.ctas_base PROPERTIES("replication_num" = "1") as select * from ${catalog_name}.${internal_db_name}.${base_table} order by int_col; """ + order_qt_ctas_arr """ create table internal.${internal_db_name}.ctas_arr PROPERTIES("replication_num" = "1") as select * from ${catalog_name}.${internal_db_name}.${arr_table} order by int_col; """ + order_qt_query_ctas_base """ select * from internal.${internal_db_name}.ctas_base order by int_col; """ + order_qt_query_ctas_arr """ select * from internal.${internal_db_name}.ctas_arr order by int_col; """ //clean qt_sql """select current_catalog()""" diff --git a/regression-test/suites/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.groovy b/regression-test/suites/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.groovy index 65a85a8fd3a53d..f3de266587efb4 100644 --- a/regression-test/suites/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.groovy +++ b/regression-test/suites/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.groovy @@ -71,7 +71,10 @@ suite("test_sqlserver_jdbc_catalog", "p0,external,sqlserver,external_docker,exte order_qt_filter2 """ select * from test_char where 1 = 1 and id = 1 order by id; """ order_qt_filter3 """ select * from test_char where id = 1 order by id; """ order_qt_id """ select count(*) from (select * from t_id) as a; """ - + order_qt_all_type """ select * from all_type order by id; """ + sql """ drop table if exists internal.${internal_db_name}.all_type; """ + order_qt_ctas """ create table internal.${internal_db_name}.ctas_all_type PROPERTIES("replication_num" = "1") as select * from all_type; """ + order_qt_query_ctas """ select * from internal.${internal_db_name}.ctas_all_type order by id; """ sql """ drop catalog if exists ${catalog_name} """ From 581e454c9be19721d9eb0b51e60f41d8d01329e2 Mon Sep 17 00:00:00 2001 From: zy-kkk Date: Thu, 9 Nov 2023 19:41:26 +0800 Subject: [PATCH 2/2] [test](jdbc) add doris and sqlserver jdbc catalog test case --- .../jdbc/test_doris_jdbc_catalog.out | 35 +++++++++++++++++++ .../jdbc/test_sqlserver_jdbc_catalog.out | 32 +++++++++++++++++ .../jdbc/test_doris_jdbc_catalog.groovy | 2 ++ .../jdbc/test_sqlserver_jdbc_catalog.groovy | 1 + 4 files changed, 70 insertions(+) diff --git a/regression-test/data/external_table_p0/jdbc/test_doris_jdbc_catalog.out b/regression-test/data/external_table_p0/jdbc/test_doris_jdbc_catalog.out index c4d9062d3a8d00..2e686056d40a57 100644 --- a/regression-test/data/external_table_p0/jdbc/test_doris_jdbc_catalog.out +++ b/regression-test/data/external_table_p0/jdbc/test_doris_jdbc_catalog.out @@ -71,6 +71,41 @@ true 1 1 1 1 1 1.0 1.0 1.00000 1.0000000000 2021-01-01 2021-01-01T00:00 a a {"a" -- !ctas_arr -- 2 +-- !desc_ctas_base -- +bool_col BOOLEAN Yes true \N +tinyint_col TINYINT Yes true \N +smallint_col SMALLINT Yes true \N +int_col INT Yes false \N NONE +bigint_col BIGINT Yes false \N NONE +largeint_col LARGEINT Yes false \N NONE +float_col FLOAT Yes false \N NONE +double_col DOUBLE Yes false \N NONE +decimal_col DECIMAL(10, 5) Yes false \N NONE +decimal_col2 DECIMAL(30, 10) Yes false \N NONE +date_col DATE Yes false \N NONE +datetime_col DATETIME(3) Yes false \N NONE +char_col CHAR(10) Yes false \N NONE +varchar_col VARCHAR(10) Yes false \N NONE +json_col JSON Yes false \N NONE + +-- !desc_ctas_arr -- +int_col INT Yes true \N +arr_bool_col ARRAY Yes false [] NONE +arr_tinyint_col ARRAY Yes false [] NONE +arr_smallint_col ARRAY Yes false [] NONE +arr_int_col ARRAY Yes false [] NONE +arr_bigint_col ARRAY Yes false [] NONE +arr_largeint_col ARRAY Yes false [] NONE +arr_float_col ARRAY Yes false [] NONE +arr_double_col ARRAY Yes false [] NONE +arr_decimal1_col ARRAY Yes false [] NONE +arr_decimal2_col ARRAY Yes false [] NONE +arr_date_col ARRAY Yes false [] NONE +arr_datetime_col ARRAY Yes false [] NONE +arr_char_col ARRAY Yes false [] NONE +arr_varchar_col ARRAY Yes false [] NONE +arr_string_col ARRAY Yes false [] NONE + -- !query_ctas_base -- \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N true 1 1 1 1 1 1.0 1.0 1.00000 1.0000000000 2021-01-01 2021-01-01T00:00 a a {"a":1} diff --git a/regression-test/data/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.out b/regression-test/data/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.out index e30aafcce790c7..9906bb10f558d4 100644 --- a/regression-test/data/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.out +++ b/regression-test/data/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.out @@ -63,6 +63,38 @@ -- !ctas -- 2 +-- !desc_query_ctas -- +id INT No true \N +name TEXT Yes false \N NONE +age INT Yes false \N NONE +tinyint_value SMALLINT Yes false \N NONE +smallint_value SMALLINT Yes false \N NONE +bigint_value BIGINT Yes false \N NONE +real_value FLOAT Yes false \N NONE +float_value DOUBLE Yes false \N NONE +floatn_value FLOAT Yes false \N NONE +decimal_value DECIMAL Yes false \N NONE +numeric_value DECIMAL Yes false \N NONE +decimal_value2 DECIMAL(38, 10) Yes false \N NONE +numeric_value2 DECIMAL(38, 10) Yes false \N NONE +char_value TEXT Yes false \N NONE +varchar_value TEXT Yes false \N NONE +varcharmax_value TEXT Yes false \N NONE +nchar_value TEXT Yes false \N NONE +nvarchar_value TEXT Yes false \N NONE +nvarcharmax_value TEXT Yes false \N NONE +date_value DATE Yes false \N NONE +time_value TEXT Yes false \N NONE +datetime_value DATETIME(3) Yes false \N NONE +datetime2_value DATETIME(6) Yes false \N NONE +smalldatetime_value DATETIME Yes false \N NONE +datetimeoffset_value TEXT Yes false \N NONE +text_value TEXT Yes false \N NONE +ntext_value TEXT Yes false \N NONE +money_value DECIMAL(19, 4) Yes false \N NONE +smallmoney_value DECIMAL(10, 4) Yes false \N NONE +bit_value BOOLEAN Yes false \N NONE + -- !query_ctas -- 1 doris 18 0 1 1 123.123 123.123 123.123 12345678901234567890123456789012345678 12345678901234567890123456789012345678 1234567890123456789012345678.0123456789 1234567890123456789012345678.0123456789 Make Doris Great! Make Doris Great! Make Doris Great! Make Doris Great! Make Doris Great! Make Doris Great! 2023-01-17 16:49:05.123 2023-01-17T16:49:05 2023-01-17T16:49:05.123456 2023-01-17T16:49 2023-01-17 16:49:05 +08:00 Make Doris Great! Make Doris Great! 922337203685477.5807 214748.3647 false 2 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N diff --git a/regression-test/suites/external_table_p0/jdbc/test_doris_jdbc_catalog.groovy b/regression-test/suites/external_table_p0/jdbc/test_doris_jdbc_catalog.groovy index d75d401392c266..c92f285972d743 100644 --- a/regression-test/suites/external_table_p0/jdbc/test_doris_jdbc_catalog.groovy +++ b/regression-test/suites/external_table_p0/jdbc/test_doris_jdbc_catalog.groovy @@ -175,6 +175,8 @@ suite("test_doris_jdbc_catalog", "p0,external,doris,external_docker,external_doc sql """ drop table if exists internal.${internal_db_name}.ctas_arr; """ order_qt_ctas_base """ create table internal.${internal_db_name}.ctas_base PROPERTIES("replication_num" = "1") as select * from ${catalog_name}.${internal_db_name}.${base_table} order by int_col; """ order_qt_ctas_arr """ create table internal.${internal_db_name}.ctas_arr PROPERTIES("replication_num" = "1") as select * from ${catalog_name}.${internal_db_name}.${arr_table} order by int_col; """ + qt_desc_ctas_base """ desc internal.${internal_db_name}.ctas_base; """ + qt_desc_ctas_arr """ desc internal.${internal_db_name}.ctas_arr; """ order_qt_query_ctas_base """ select * from internal.${internal_db_name}.ctas_base order by int_col; """ order_qt_query_ctas_arr """ select * from internal.${internal_db_name}.ctas_arr order by int_col; """ diff --git a/regression-test/suites/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.groovy b/regression-test/suites/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.groovy index f3de266587efb4..234c27749cb1a2 100644 --- a/regression-test/suites/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.groovy +++ b/regression-test/suites/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.groovy @@ -74,6 +74,7 @@ suite("test_sqlserver_jdbc_catalog", "p0,external,sqlserver,external_docker,exte order_qt_all_type """ select * from all_type order by id; """ sql """ drop table if exists internal.${internal_db_name}.all_type; """ order_qt_ctas """ create table internal.${internal_db_name}.ctas_all_type PROPERTIES("replication_num" = "1") as select * from all_type; """ + qt_desc_query_ctas """ desc internal.${internal_db_name}.ctas_all_type; """ order_qt_query_ctas """ select * from internal.${internal_db_name}.ctas_all_type order by id; """ sql """ drop catalog if exists ${catalog_name} """