This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new fb315866127 branch-2.1: [test](jdbc catalog) add more jdbc catalog 
extreme test  (#47799)
fb315866127 is described below

commit fb315866127b3a6b32f2a506f47372556a87fcad
Author: zy-kkk <zhongy...@gmail.com>
AuthorDate: Fri Feb 14 17:03:49 2025 +0800

    branch-2.1: [test](jdbc catalog) add more jdbc catalog extreme test  
(#47799)
    
    cherry-pick (#47525)
---
 .../clickhouse/init/03-create-table.sql            | 104 +++++++++++++++++
 .../docker-compose/clickhouse/init/04-insert.sql   |  18 +++
 .../docker-compose/oracle/init/03-create-table.sql |  72 ++++++++++++
 .../docker-compose/oracle/init/04-insert.sql       |  50 ++++++++
 .../postgresql/init/02-create-table.sql            |  76 ++++++++++++
 .../docker-compose/postgresql/init/04-insert.sql   |  77 ++++++++++++
 .../sqlserver/init/03-create-table.sql             | 129 +++++++++++++++++++++
 .../docker-compose/sqlserver/init/04-insert.sql    |  18 +++
 .../select/test_clickhouse_all_types_select.out    | Bin 0 -> 2936 bytes
 .../select/test_oracle_all_types_select.out        | Bin 0 -> 10265 bytes
 .../type_test/select/test_pg_all_types_select.out  | Bin 0 -> 1959 bytes
 .../select/test_sqlserver_all_types_select.out     | Bin 0 -> 3508 bytes
 .../select/test_clickhouse_all_types_select.groovy |  46 ++++++++
 .../select/test_oracle_all_types_select.groovy     |  47 ++++++++
 .../select/test_pg_all_types_select.groovy         |  76 ++++++++++++
 .../select/test_sqlserver_all_types_select.groovy  |  47 ++++++++
 16 files changed, 760 insertions(+)

diff --git 
a/docker/thirdparties/docker-compose/clickhouse/init/03-create-table.sql 
b/docker/thirdparties/docker-compose/clickhouse/init/03-create-table.sql
index fdc33ef1321..039ddd1d369 100644
--- a/docker/thirdparties/docker-compose/clickhouse/init/03-create-table.sql
+++ b/docker/thirdparties/docker-compose/clickhouse/init/03-create-table.sql
@@ -288,4 +288,108 @@ CREATE TABLE doris_test.dt_with_tz
     dt2 DateTime64(6, 'Asia/Shanghai')
 )
 ENGINE = MergeTree
+ORDER BY id;
+
+CREATE TABLE doris_test.extreme_test
+(
+    id UInt64,
+    -- Integer types (signed and unsigned) and their Nullable versions
+    int8_col         Int8,
+    int8_nullable    Nullable(Int8),
+    int16_col        Int16,
+    int16_nullable   Nullable(Int16),
+    int32_col        Int32,
+    int32_nullable   Nullable(Int32),
+    int64_col        Int64,
+    int64_nullable   Nullable(Int64),
+    uint8_col        UInt8,
+    uint8_nullable   Nullable(UInt8),
+    uint16_col       UInt16,
+    uint16_nullable  Nullable(UInt16),
+    uint32_col       UInt32,
+    uint32_nullable  Nullable(UInt32),
+    uint64_col       UInt64,
+    uint64_nullable  Nullable(UInt64),
+    -- Floating point types
+    float32_col      Float32,
+    float32_nullable Nullable(Float32),
+    float64_col      Float64,
+    float64_nullable Nullable(Float64),
+    -- Decimal type (defined here with precision 18 and scale 2)
+    decimal_col      Decimal(18,2),
+    decimal_nullable Nullable(Decimal(18,2)),
+    -- Date and DateTime types
+    date_col         Date,
+    date_nullable    Nullable(Date),
+    datetime_col     DateTime,
+    datetime_nullable Nullable(DateTime),
+    -- String types
+    string_col         String,
+    string_nullable    Nullable(String),
+    fixedstring_col    FixedString(10),
+    fixedstring_nullable Nullable(FixedString(10)),
+    -- Enum type (Enum8 valid range is -128 to 127; here three enum values are 
defined)
+    enum_col         Enum8('A' = 1, 'B' = 2, 'C' = 3),
+    enum_nullable    Nullable(Enum8('A' = 1, 'B' = 2, 'C' = 3)),
+    -- UUID type
+    uuid_col         UUID,
+    uuid_nullable    Nullable(UUID),
+    -- IP address types
+    ipv4_col         IPv4,
+    ipv4_nullable    Nullable(IPv4),
+    ipv6_col         IPv6,
+    ipv6_nullable    Nullable(IPv6)
+) ENGINE = MergeTree()
+ORDER BY id;
+
+CREATE TABLE doris_test.extreme_test_multi_block
+(
+    id UInt64,
+    -- Integer types (signed and unsigned) and their Nullable versions
+    int8_col         Int8,
+    int8_nullable    Nullable(Int8),
+    int16_col        Int16,
+    int16_nullable   Nullable(Int16),
+    int32_col        Int32,
+    int32_nullable   Nullable(Int32),
+    int64_col        Int64,
+    int64_nullable   Nullable(Int64),
+    uint8_col        UInt8,
+    uint8_nullable   Nullable(UInt8),
+    uint16_col       UInt16,
+    uint16_nullable  Nullable(UInt16),
+    uint32_col       UInt32,
+    uint32_nullable  Nullable(UInt32),
+    uint64_col       UInt64,
+    uint64_nullable  Nullable(UInt64),
+    -- Floating point types
+    float32_col      Float32,
+    float32_nullable Nullable(Float32),
+    float64_col      Float64,
+    float64_nullable Nullable(Float64),
+    -- Decimal type (defined here with precision 18 and scale 2)
+    decimal_col      Decimal(18,2),
+    decimal_nullable Nullable(Decimal(18,2)),
+    -- Date and DateTime types
+    date_col         Date,
+    date_nullable    Nullable(Date),
+    datetime_col     DateTime,
+    datetime_nullable Nullable(DateTime),
+    -- String types
+    string_col         String,
+    string_nullable    Nullable(String),
+    fixedstring_col    FixedString(10),
+    fixedstring_nullable Nullable(FixedString(10)),
+    -- Enum type (Enum8 valid range is -128 to 127; here three enum values are 
defined)
+    enum_col         Enum8('A' = 1, 'B' = 2, 'C' = 3),
+    enum_nullable    Nullable(Enum8('A' = 1, 'B' = 2, 'C' = 3)),
+    -- UUID type
+    uuid_col         UUID,
+    uuid_nullable    Nullable(UUID),
+    -- IP address types
+    ipv4_col         IPv4,
+    ipv4_nullable    Nullable(IPv4),
+    ipv6_col         IPv6,
+    ipv6_nullable    Nullable(IPv6)
+) ENGINE = MergeTree()
 ORDER BY id;
\ No newline at end of file
diff --git a/docker/thirdparties/docker-compose/clickhouse/init/04-insert.sql 
b/docker/thirdparties/docker-compose/clickhouse/init/04-insert.sql
index 08b5d034aa1..7205cb43070 100644
--- a/docker/thirdparties/docker-compose/clickhouse/init/04-insert.sql
+++ b/docker/thirdparties/docker-compose/clickhouse/init/04-insert.sql
@@ -55,3 +55,21 @@ INSERT INTO doris_test.final_test Values (1, 'second');
 INSERT INTO doris_test.ts values (1,1694438743);
 
 INSERT INTO doris_test.dt_with_tz values(1, '2022-01-02 00:00:00','2022-01-02 
00:00:00.000000');
+
+INSERT INTO doris_test.extreme_test VALUES 
(1,127,127,32767,32767,2147483647,2147483647,9223372036854775807,9223372036854775807,255,255,65535,65535,4294967295,4294967295,18446744073709551615,18446744073709551615,3.4028235e38,3.4028235e38,1.7976931348623157e308,1.7976931348623157e308,9999999999999999.99,9999999999999999.99,'2106-02-07','2106-02-07','2106-02-07
 06:28:15','2106-02-07 
06:28:15','max_string','max_string','XXXXXXXXXX','XXXXXXXXXX','C','C','ffffffff-ffff-ffff-ffff-ffffffffffff'
 [...]
+INSERT INTO doris_test.extreme_test VALUES 
(2,-128,-128,-32768,-32768,-2147483648,-2147483648,-9223372036854775808,-9223372036854775808,0,0,0,0,0,0,0,0,-3.4028235e38,-3.4028235e38,-1.7976931348623157e308,-1.7976931348623157e308,-9999999999999999.99,-9999999999999999.99,'1970-01-01','1970-01-01','1970-01-01
 00:00:00','1970-01-01 
00:00:00','min_string','min_string','0000000000','0000000000','A','A','00000000-0000-0000-0000-000000000000','00000000-0000-0000-0000-000000000000','0.0.0.0','0.0
 [...]
+INSERT INTO doris_test.extreme_test VALUES 
(3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'1970-01-01','1970-01-01','1970-01-01
 00:00:00','1970-01-01 
00:00:00','','','','','A','A','00000000-0000-0000-0000-000000000000','00000000-0000-0000-0000-000000000000','0.0.0.0','0.0.0.0','0000:0000:0000:0000:0000:0000:0000:0000','0000:0000:0000:0000:0000:0000:0000:0000');
+INSERT INTO doris_test.extreme_test VALUES 
(4,0,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0,NULL,'1970-01-01',NULL,'1970-01-01
 
00:00:00',NULL,'',NULL,'',NULL,'A',NULL,'00000000-0000-0000-0000-000000000000',NULL,'0.0.0.0',NULL,'0000:0000:0000:0000:0000:0000:0000:0000',NULL);
+
+insert into doris_test.extreme_test_multi_block select * from 
doris_test.extreme_test;
+insert into doris_test.extreme_test_multi_block select * from 
doris_test.extreme_test_multi_block;
+insert into doris_test.extreme_test_multi_block select * from 
doris_test.extreme_test_multi_block;
+insert into doris_test.extreme_test_multi_block select * from 
doris_test.extreme_test_multi_block;
+insert into doris_test.extreme_test_multi_block select * from 
doris_test.extreme_test_multi_block;
+insert into doris_test.extreme_test_multi_block select * from 
doris_test.extreme_test_multi_block;
+insert into doris_test.extreme_test_multi_block select * from 
doris_test.extreme_test_multi_block;
+insert into doris_test.extreme_test_multi_block select * from 
doris_test.extreme_test_multi_block;
+insert into doris_test.extreme_test_multi_block select * from 
doris_test.extreme_test_multi_block;
+insert into doris_test.extreme_test_multi_block select * from 
doris_test.extreme_test_multi_block;
+insert into doris_test.extreme_test_multi_block select * from 
doris_test.extreme_test_multi_block;
+insert into doris_test.extreme_test_multi_block select * from 
doris_test.extreme_test;
diff --git a/docker/thirdparties/docker-compose/oracle/init/03-create-table.sql 
b/docker/thirdparties/docker-compose/oracle/init/03-create-table.sql
index 35abc5d3762..e3c5345e885 100644
--- a/docker/thirdparties/docker-compose/oracle/init/03-create-table.sql
+++ b/docker/thirdparties/docker-compose/oracle/init/03-create-table.sql
@@ -182,3 +182,75 @@ create table doris_test.lower_test (
 "doris" varchar2(20)
 );
 
+create table doris_test.extreme_test (
+  id int,
+  n1 number,
+  n2 number(38),
+  n3 number(9,2),
+  n4 int,
+  n5 smallint,
+  n6 decimal(5,2),
+  n7 float,
+  n8 float(2),
+  n9 real,
+  tinyint_value1 number(2,0),
+  smallint_value1 number(4,0),
+  int_value1 number(9,0),
+  bigint_value1 number(18,0),
+  tinyint_value2 number(3,0),
+  smallint_value2 number(5,0),
+  int_value2 number(10,0),
+  bigint_value2 number(19,0),
+  country char,
+  city nchar(6),
+  address varchar2(4000),
+  name nvarchar2(6),
+  remark long,
+  num1 NUMBER(5,2),
+  num2 NUMBER(5, -2),
+  num4 NUMBER(5,7),
+  t1 date,
+  t2 timestamp(3),
+  t3 timestamp(6),
+  t4 timestamp(9),
+  t5 timestamp,
+  t6 interval year(3) to month,
+  t7 interval day(3) to second(6)
+);
+
+create table doris_test.extreme_test_multi_block (
+  id int,
+  n1 number,
+  n2 number(38),
+  n3 number(9,2),
+  n4 int,
+  n5 smallint,
+  n6 decimal(5,2),
+  n7 float,
+  n8 float(2),
+  n9 real,
+  tinyint_value1 number(2,0),
+  smallint_value1 number(4,0),
+  int_value1 number(9,0),
+  bigint_value1 number(18,0),
+  tinyint_value2 number(3,0),
+  smallint_value2 number(5,0),
+  int_value2 number(10,0),
+  bigint_value2 number(19,0),
+  country char,
+  city nchar(6),
+  address varchar2(4000),
+  name nvarchar2(6),
+  remark long,
+  num1 NUMBER(5,2),
+  num2 NUMBER(5, -2),
+  num4 NUMBER(5,7),
+  t1 date,
+  t2 timestamp(3),
+  t3 timestamp(6),
+  t4 timestamp(9),
+  t5 timestamp,
+  t6 interval year(3) to month,
+  t7 interval day(3) to second(6)
+);
+
diff --git a/docker/thirdparties/docker-compose/oracle/init/04-insert.sql 
b/docker/thirdparties/docker-compose/oracle/init/04-insert.sql
index 99d4476bdaf..e727e107f86 100644
--- a/docker/thirdparties/docker-compose/oracle/init/04-insert.sql
+++ b/docker/thirdparties/docker-compose/oracle/init/04-insert.sql
@@ -105,4 +105,54 @@ null, null, null, null, null, null, null
 
 insert into doris_test.lower_test values ('DORIS', 'Doris', 'doris');
 
+INSERT INTO doris_test.extreme_test VALUES (2147483647, 
9999999999999999999999999999999999999, 99999999999999999999999999999999999999, 
999999.99, 2147483647, 32767, 999.99, 3.402823466E+38, 3.402823466E+38, 
3.402823466E+38, 99, 9999, 999999999, 999999999999999999, 999, 99999, 
9999999999, 9999999999999999999, 'Z', '北京', RPAD('A', 4000, 'A'), '深圳', 
RPAD('L', 4000, 'L'), 999.99, 99900, 0.0000999, TO_DATE('9999-12-31', 
'YYYY-MM-DD'), TIMESTAMP '9999-12-31 23:59:59.999', TIMESTAMP '9999-12-31 [...]
+INSERT INTO doris_test.extreme_test VALUES (-2147483648, 
-9999999999999999999999999999999999999, 
-99999999999999999999999999999999999999, -9999999.99, -2147483648, -32768, 
-999.99, -3.402823466E+38, -3.402823466E+38, -3.402823466E+38, -99, -9999, 
-999999999, -999999999999999999, -999, -99999, -9999999999, 
-9999999999999999999, 'A', '上海', 'B', '广州', 'S', -999.99, -99900, -0.0000999, 
TO_DATE('0001-01-01', 'YYYY-MM-DD'), TIMESTAMP '0001-01-01 00:00:00.000', 
TIMESTAMP '0001-01-01 00:00:00.00 [...]
+INSERT INTO doris_test.extreme_test VALUES (0, 0, 0, 0.00, 0, 0, 0.00, 0.0, 
0.0, 0.0, 0, 0, 0, 0, 0, 0, 0, 0, ' ', '      ', '', '', '', 0.00, 0, 
0.0000000, TO_DATE('1970-01-01', 'YYYY-MM-DD'), TIMESTAMP '1970-01-01 
00:00:00.000', TIMESTAMP '1970-01-01 00:00:00.000000', TIMESTAMP '1970-01-01 
00:00:00.000000000', TIMESTAMP '1970-01-01 00:00:00.000000', INTERVAL '0-0' 
YEAR TO MONTH, INTERVAL '0 00:00:00.000000' DAY TO SECOND);
+INSERT INTO doris_test.extreme_test VALUES (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, NULL, NULL, 
NULL, NULL);
+
+INSERT INTO doris_test.extreme_test_multi_block (
+    id, n1, n2, n3, n4, n5, n6, n7, n8, n9, 
+    tinyint_value1, smallint_value1, int_value1, bigint_value1,
+    tinyint_value2, smallint_value2, int_value2, bigint_value2,
+    country, city, address, name, remark,
+    num1, num2, num4,
+    t1, t2, t3, t4, t5, t6, t7
+)
+SELECT 
+    id, n1, n2, n3, n4, n5, n6, n7, n8, n9,
+    tinyint_value1, smallint_value1, int_value1, bigint_value1,
+    tinyint_value2, smallint_value2, int_value2, bigint_value2,
+    country, city, address, name, '',
+    num1, num2, num4,
+    t1, t2, t3, t4, t5, t6, t7
+FROM doris_test.extreme_test;
+
+INSERT INTO doris_test.extreme_test_multi_block (id, n1, n2, n3, n4, n5, n6, 
n7, n8, n9, tinyint_value1, smallint_value1, int_value1, bigint_value1, 
tinyint_value2, smallint_value2, int_value2, bigint_value2, country, city, 
address, name, remark, num1, num2, num4, t1, t2, t3, t4, t5, t6, t7) SELECT id, 
n1, n2, n3, n4, n5, n6, n7, n8, n9, tinyint_value1, smallint_value1, 
int_value1, bigint_value1, tinyint_value2, smallint_value2, int_value2, 
bigint_value2, country, city, address, name, '' [...]
+INSERT INTO doris_test.extreme_test_multi_block (id, n1, n2, n3, n4, n5, n6, 
n7, n8, n9, tinyint_value1, smallint_value1, int_value1, bigint_value1, 
tinyint_value2, smallint_value2, int_value2, bigint_value2, country, city, 
address, name, remark, num1, num2, num4, t1, t2, t3, t4, t5, t6, t7) SELECT id, 
n1, n2, n3, n4, n5, n6, n7, n8, n9, tinyint_value1, smallint_value1, 
int_value1, bigint_value1, tinyint_value2, smallint_value2, int_value2, 
bigint_value2, country, city, address, name, '' [...]
+INSERT INTO doris_test.extreme_test_multi_block (id, n1, n2, n3, n4, n5, n6, 
n7, n8, n9, tinyint_value1, smallint_value1, int_value1, bigint_value1, 
tinyint_value2, smallint_value2, int_value2, bigint_value2, country, city, 
address, name, remark, num1, num2, num4, t1, t2, t3, t4, t5, t6, t7) SELECT id, 
n1, n2, n3, n4, n5, n6, n7, n8, n9, tinyint_value1, smallint_value1, 
int_value1, bigint_value1, tinyint_value2, smallint_value2, int_value2, 
bigint_value2, country, city, address, name, '' [...]
+INSERT INTO doris_test.extreme_test_multi_block (id, n1, n2, n3, n4, n5, n6, 
n7, n8, n9, tinyint_value1, smallint_value1, int_value1, bigint_value1, 
tinyint_value2, smallint_value2, int_value2, bigint_value2, country, city, 
address, name, remark, num1, num2, num4, t1, t2, t3, t4, t5, t6, t7) SELECT id, 
n1, n2, n3, n4, n5, n6, n7, n8, n9, tinyint_value1, smallint_value1, 
int_value1, bigint_value1, tinyint_value2, smallint_value2, int_value2, 
bigint_value2, country, city, address, name, '' [...]
+INSERT INTO doris_test.extreme_test_multi_block (id, n1, n2, n3, n4, n5, n6, 
n7, n8, n9, tinyint_value1, smallint_value1, int_value1, bigint_value1, 
tinyint_value2, smallint_value2, int_value2, bigint_value2, country, city, 
address, name, remark, num1, num2, num4, t1, t2, t3, t4, t5, t6, t7) SELECT id, 
n1, n2, n3, n4, n5, n6, n7, n8, n9, tinyint_value1, smallint_value1, 
int_value1, bigint_value1, tinyint_value2, smallint_value2, int_value2, 
bigint_value2, country, city, address, name, '' [...]
+INSERT INTO doris_test.extreme_test_multi_block (id, n1, n2, n3, n4, n5, n6, 
n7, n8, n9, tinyint_value1, smallint_value1, int_value1, bigint_value1, 
tinyint_value2, smallint_value2, int_value2, bigint_value2, country, city, 
address, name, remark, num1, num2, num4, t1, t2, t3, t4, t5, t6, t7) SELECT id, 
n1, n2, n3, n4, n5, n6, n7, n8, n9, tinyint_value1, smallint_value1, 
int_value1, bigint_value1, tinyint_value2, smallint_value2, int_value2, 
bigint_value2, country, city, address, name, '' [...]
+INSERT INTO doris_test.extreme_test_multi_block (id, n1, n2, n3, n4, n5, n6, 
n7, n8, n9, tinyint_value1, smallint_value1, int_value1, bigint_value1, 
tinyint_value2, smallint_value2, int_value2, bigint_value2, country, city, 
address, name, remark, num1, num2, num4, t1, t2, t3, t4, t5, t6, t7) SELECT id, 
n1, n2, n3, n4, n5, n6, n7, n8, n9, tinyint_value1, smallint_value1, 
int_value1, bigint_value1, tinyint_value2, smallint_value2, int_value2, 
bigint_value2, country, city, address, name, '' [...]
+INSERT INTO doris_test.extreme_test_multi_block (id, n1, n2, n3, n4, n5, n6, 
n7, n8, n9, tinyint_value1, smallint_value1, int_value1, bigint_value1, 
tinyint_value2, smallint_value2, int_value2, bigint_value2, country, city, 
address, name, remark, num1, num2, num4, t1, t2, t3, t4, t5, t6, t7) SELECT id, 
n1, n2, n3, n4, n5, n6, n7, n8, n9, tinyint_value1, smallint_value1, 
int_value1, bigint_value1, tinyint_value2, smallint_value2, int_value2, 
bigint_value2, country, city, address, name, '' [...]
+INSERT INTO doris_test.extreme_test_multi_block (id, n1, n2, n3, n4, n5, n6, 
n7, n8, n9, tinyint_value1, smallint_value1, int_value1, bigint_value1, 
tinyint_value2, smallint_value2, int_value2, bigint_value2, country, city, 
address, name, remark, num1, num2, num4, t1, t2, t3, t4, t5, t6, t7) SELECT id, 
n1, n2, n3, n4, n5, n6, n7, n8, n9, tinyint_value1, smallint_value1, 
int_value1, bigint_value1, tinyint_value2, smallint_value2, int_value2, 
bigint_value2, country, city, address, name, '' [...]
+INSERT INTO doris_test.extreme_test_multi_block (id, n1, n2, n3, n4, n5, n6, 
n7, n8, n9, tinyint_value1, smallint_value1, int_value1, bigint_value1, 
tinyint_value2, smallint_value2, int_value2, bigint_value2, country, city, 
address, name, remark, num1, num2, num4, t1, t2, t3, t4, t5, t6, t7) SELECT id, 
n1, n2, n3, n4, n5, n6, n7, n8, n9, tinyint_value1, smallint_value1, 
int_value1, bigint_value1, tinyint_value2, smallint_value2, int_value2, 
bigint_value2, country, city, address, name, '' [...]
+
+INSERT INTO doris_test.extreme_test_multi_block (
+    id, n1, n2, n3, n4, n5, n6, n7, n8, n9, 
+    tinyint_value1, smallint_value1, int_value1, bigint_value1,
+    tinyint_value2, smallint_value2, int_value2, bigint_value2,
+    country, city, address, name, remark,
+    num1, num2, num4,
+    t1, t2, t3, t4, t5, t6, t7
+)
+SELECT 
+    id, n1, n2, n3, n4, n5, n6, n7, n8, n9,
+    tinyint_value1, smallint_value1, int_value1, bigint_value1,
+    tinyint_value2, smallint_value2, int_value2, bigint_value2,
+    country, city, address, name, '',
+    num1, num2, num4,
+    t1, t2, t3, t4, t5, t6, t7
+FROM doris_test.extreme_test;
+
 commit;
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 7983d55a018..b7d606bb442 100644
--- a/docker/thirdparties/docker-compose/postgresql/init/02-create-table.sql
+++ b/docker/thirdparties/docker-compose/postgresql/init/02-create-table.sql
@@ -263,3 +263,79 @@ CREATE TABLE catalog_pg_test.num_zero (
     id varchar(20) NULL,
     num numeric NULL
 );
+
+CREATE TABLE catalog_pg_test.extreme_test (
+    id SERIAL PRIMARY KEY,
+    -- Numeric types for testing extreme values
+    smallint_val smallint,
+    int_val integer,
+    bigint_val bigint,
+    decimal_val decimal(38,10),
+    real_val real,
+    double_val double precision,
+    -- Character types for testing string values
+    char_val char(1),
+    varchar_val varchar(65535),
+    text_val text,
+    -- Date and time types for testing temporal values
+    date_val date,
+    timestamp_val timestamp(6),
+    timestamptz_val timestamptz,
+    interval_val interval,
+    -- Boolean type for testing logical values
+    bool_val boolean,
+    -- Binary type for testing byte array values
+    bytea_val bytea,
+    -- Network address types for testing network values
+    inet_val inet,
+    cidr_val cidr,
+    macaddr_val macaddr,
+    -- JSON types for testing structured data
+    json_val json,
+    jsonb_val jsonb,
+    -- Geometric types for testing spatial data
+    point_val point,
+    line_val line,
+    circle_val circle,
+    -- UUID type for testing unique identifiers
+    uuid_val uuid
+);
+
+
+CREATE TABLE catalog_pg_test.extreme_test_multi_block (
+    id integer,
+    -- Numeric types for testing extreme values
+    smallint_val smallint,
+    int_val integer,
+    bigint_val bigint,
+    decimal_val decimal(38,10),
+    real_val real,
+    double_val double precision,
+    -- Character types for testing string values
+    char_val char(1),
+    varchar_val varchar(65535),
+    text_val text,
+    -- Date and time types for testing temporal values
+    date_val date,
+    timestamp_val timestamp(6),
+    timestamptz_val timestamptz,
+    interval_val interval,
+    -- Boolean type for testing logical values
+    bool_val boolean,
+    -- Binary type for testing byte array values
+    bytea_val bytea,
+    -- Network address types for testing network values
+    inet_val inet,
+    cidr_val cidr,
+    macaddr_val macaddr,
+    -- JSON types for testing structured data
+    json_val json,
+    jsonb_val jsonb,
+    -- Geometric types for testing spatial data
+    point_val point,
+    line_val line,
+    circle_val circle,
+    -- UUID type for testing unique identifiers
+    uuid_val uuid
+);
+
diff --git a/docker/thirdparties/docker-compose/postgresql/init/04-insert.sql 
b/docker/thirdparties/docker-compose/postgresql/init/04-insert.sql
index ae3570dfc18..7bc3ea17d0d 100644
--- a/docker/thirdparties/docker-compose/postgresql/init/04-insert.sql
+++ b/docker/thirdparties/docker-compose/postgresql/init/04-insert.sql
@@ -2730,3 +2730,80 @@ values('1','A','2020-09-02 00:00:00')
 INSERT INTO catalog_pg_test.num_zero (id, num) VALUES ('001', 123.45);
 INSERT INTO catalog_pg_test.num_zero (id, num) VALUES ('002', 678.90);
 INSERT INTO catalog_pg_test.num_zero (id, num) VALUES ('003', 1011.12);
+
+-- Insert maximum values for testing upper bounds
+INSERT INTO catalog_pg_test.extreme_test (
+    smallint_val, int_val, bigint_val, decimal_val, real_val, double_val,
+    char_val, varchar_val, text_val, date_val, timestamp_val, timestamptz_val,
+    interval_val, bool_val, bytea_val, inet_val, cidr_val, macaddr_val,
+    json_val, jsonb_val, point_val, line_val, circle_val, uuid_val
+) VALUES (
+    32767, 2147483647, 9223372036854775807, 9999999999999999999.9999999999,
+    3.402823466E+38, 1.7976931348623157E+308, 'X', repeat('a', 65535),
+    repeat('b', 1000000), '294276-12-31', '294276-12-31 23:59:59.999999',
+    '294276-12-31 23:59:59.999999+08', 'P1Y2M3DT4H5M6S', true, '\xDEADBEEF',
+    '192.168.0.1/24', '192.168.0.0/16', '08:00:2b:01:02:03',
+    '{"key": "max", "array": [1, 2, 3]}',
+    '{"key": "max", "array": [1, 2, 3]}',
+    '(10,20)', '{1,-2,3}', '<(0,0),1>',
+    'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'
+);
+
+-- Insert minimum values for testing lower bounds
+INSERT INTO catalog_pg_test.extreme_test (
+    smallint_val, int_val, bigint_val, decimal_val, real_val, double_val,
+    char_val, varchar_val, text_val, date_val, timestamp_val, timestamptz_val,
+    interval_val, bool_val, bytea_val, inet_val, cidr_val, macaddr_val,
+    json_val, jsonb_val, point_val, line_val, circle_val, uuid_val
+) VALUES (
+    -32768, -2147483648, -9223372036854775808, -9999999999999999999.9999999999,
+    -3.402823466E+38, -1.7976931348623157E+308, 'A', '', '',
+    '4713-01-01 BC', '4713-01-01 00:00:00 BC', '4713-01-01 00:00:00 BC',
+    '-178000000 years', false, '\x',
+    '0.0.0.0', '0.0.0.0/0', '00:00:00:00:00:00',
+    '{"key": "min"}', '{"key": "min"}',
+    '(0,0)', '{1,1,0}', '<(0,0),0>',
+    '00000000-0000-0000-0000-000000000000'
+);
+
+-- Insert empty values for testing default behavior
+INSERT INTO catalog_pg_test.extreme_test (
+    smallint_val, int_val, bigint_val, decimal_val, real_val, double_val,
+    char_val, varchar_val, text_val, date_val, timestamp_val, timestamptz_val,
+    interval_val, bool_val, bytea_val, inet_val, cidr_val, macaddr_val,
+    json_val, jsonb_val, point_val, line_val, circle_val, uuid_val
+) VALUES (
+    0, 0, 0, 0.0, 0.0, 0.0,
+    ' ', '', '', 'infinity', 'infinity', 'infinity',
+    '0 years', false, '\x',
+    '::1', '::1/128', '00:00:00:00:00:00',
+    '{}', '{}',
+    '(0,0)', '{1,1,0}', '<(0,0),0>',
+    '00000000-0000-0000-0000-000000000000'
+);
+
+-- Insert NULL values for testing NULL handling
+INSERT INTO catalog_pg_test.extreme_test (
+    smallint_val, int_val, bigint_val, decimal_val, real_val, double_val,
+    char_val, varchar_val, text_val, date_val, timestamp_val, timestamptz_val,
+    interval_val, bool_val, bytea_val, inet_val, cidr_val, macaddr_val,
+    json_val, jsonb_val, point_val, line_val, circle_val, uuid_val
+) VALUES (
+    NULL, NULL, NULL, NULL, NULL, NULL,
+    NULL, NULL, NULL, NULL, NULL, NULL,
+    NULL, NULL, NULL, NULL, NULL, NULL,
+    NULL, NULL, NULL, NULL, NULL, NULL
+);
+
+insert into catalog_pg_test.extreme_test_multi_block select * from 
catalog_pg_test.extreme_test;
+insert into catalog_pg_test.extreme_test_multi_block select * from 
catalog_pg_test.extreme_test_multi_block;
+insert into catalog_pg_test.extreme_test_multi_block select * from 
catalog_pg_test.extreme_test_multi_block;
+insert into catalog_pg_test.extreme_test_multi_block select * from 
catalog_pg_test.extreme_test_multi_block;
+insert into catalog_pg_test.extreme_test_multi_block select * from 
catalog_pg_test.extreme_test_multi_block;
+insert into catalog_pg_test.extreme_test_multi_block select * from 
catalog_pg_test.extreme_test_multi_block;
+insert into catalog_pg_test.extreme_test_multi_block select * from 
catalog_pg_test.extreme_test_multi_block;
+insert into catalog_pg_test.extreme_test_multi_block select * from 
catalog_pg_test.extreme_test_multi_block;
+insert into catalog_pg_test.extreme_test_multi_block select * from 
catalog_pg_test.extreme_test_multi_block;
+insert into catalog_pg_test.extreme_test_multi_block select * from 
catalog_pg_test.extreme_test_multi_block;
+insert into catalog_pg_test.extreme_test_multi_block select * from 
catalog_pg_test.extreme_test_multi_block;
+insert into catalog_pg_test.extreme_test_multi_block select * from 
catalog_pg_test.extreme_test;
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 b09a2ca47a6..f6c50707214 100644
--- a/docker/thirdparties/docker-compose/sqlserver/init/03-create-table.sql
+++ b/docker/thirdparties/docker-compose/sqlserver/init/03-create-table.sql
@@ -138,3 +138,132 @@ CREATE TABLE dbo.test_timestamp (
 id_col int PRIMARY KEY NOT NULL,
 timestamp_col timestamp NULL
 );
+
+CREATE TABLE dbo.extreme_test
+(
+    ID BIGINT NOT NULL PRIMARY KEY,
+    -- Signed integer types:
+    -- For Int8 simulation, we use SMALLINT with a CHECK constraint between 
-128 and 127.
+    Int8_Col       SMALLINT NOT NULL CHECK (Int8_Col BETWEEN -128 AND 127),
+    Int8_Nullable  SMALLINT NULL CHECK (Int8_Nullable BETWEEN -128 AND 127),
+    -- Int16
+    Int16_Col      SMALLINT NOT NULL,
+    Int16_Nullable SMALLINT NULL,
+    -- Int32
+    Int32_Col      INT NOT NULL,
+    Int32_Nullable INT NULL,
+    -- Int64
+    Int64_Col      BIGINT NOT NULL,
+    Int64_Nullable BIGINT NULL,
+    -- Unsigned integer types (simulate using a larger type plus a CHECK 
constraint):
+    -- UInt8 (0 to 255) – SQL Server’s TINYINT is naturally unsigned.
+    UInt8_Col       TINYINT NOT NULL,
+    UInt8_Nullable  TINYINT NULL,
+    -- UInt16 (0 to 65535); use INT with a check constraint.
+    UInt16_Col       INT NOT NULL CHECK (UInt16_Col BETWEEN 0 AND 65535),
+    UInt16_Nullable  INT NULL CHECK (UInt16_Nullable BETWEEN 0 AND 65535),
+    -- UInt32 (0 to 4294967295); use BIGINT with a check constraint.
+    UInt32_Col       BIGINT NOT NULL CHECK (UInt32_Col BETWEEN 0 AND 
4294967295),
+    UInt32_Nullable  BIGINT NULL CHECK (UInt32_Nullable BETWEEN 0 AND 
4294967295),
+    -- UInt64; SQL Server has no 64-bit unsigned, so we use DECIMAL(20,0).
+    UInt64_Col       DECIMAL(20,0) NOT NULL CHECK (UInt64_Col >= 0),
+    UInt64_Nullable  DECIMAL(20,0) NULL CHECK (UInt64_Nullable >= 0),
+    -- Floating point types:
+    Float32_Col      REAL NOT NULL,
+    Float32_Nullable REAL NULL,
+    Float64_Col      FLOAT NOT NULL,
+    Float64_Nullable FLOAT NULL,
+    -- Decimal types with various precisions and scales:
+    Decimal_Col1       DECIMAL(18,2) NOT NULL,
+    Decimal_Nullable1  DECIMAL(18,2) NULL,
+    Decimal_Col2       DECIMAL(10,5) NOT NULL,
+    Decimal_Nullable2  DECIMAL(10,5) NULL,
+    Decimal_Col3       DECIMAL(38,10) NOT NULL,
+    Decimal_Nullable3  DECIMAL(38,10) NULL,
+    -- Date and DateTime types:
+    Date_Col        DATE NOT NULL,
+    Date_Nullable   DATE NULL,
+    Datetime_Col    DATETIME NOT NULL,
+    Datetime_Nullable DATETIME NULL,
+    -- String types:
+    String_Col         VARCHAR(100) NOT NULL,
+    String_Nullable    VARCHAR(100) NULL,
+    FixedString_Col       CHAR(10) NOT NULL,
+    FixedString_Nullable  CHAR(10) NULL,
+    -- Enum simulation (using CHAR(1) with a CHECK constraint):
+    Enum_Col         CHAR(1) NOT NULL CHECK (Enum_Col IN ('A','B','C')),
+    Enum_Nullable    CHAR(1) NULL CHECK (Enum_Nullable IN ('A','B','C') OR 
Enum_Nullable IS NULL),
+    -- UUID (SQL Server’s UNIQUEIDENTIFIER):
+    UUID_Col         UNIQUEIDENTIFIER NOT NULL,
+    UUID_Nullable    UNIQUEIDENTIFIER NULL,
+    -- IP address simulation:
+    IPv4_Col         VARCHAR(15) NOT NULL,  -- e.g., '255.255.255.255'
+    IPv4_Nullable    VARCHAR(15) NULL,
+    IPv6_Col         VARCHAR(39) NOT NULL,  -- e.g., 
'FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF'
+    IPv6_Nullable    VARCHAR(39) NULL
+);
+
+
+CREATE TABLE dbo.extreme_test_multi_block
+(
+    ID BIGINT NOT NULL,
+    -- Signed integer types:
+    -- For Int8 simulation, we use SMALLINT with a CHECK constraint between 
-128 and 127.
+    Int8_Col       SMALLINT NOT NULL CHECK (Int8_Col BETWEEN -128 AND 127),
+    Int8_Nullable  SMALLINT NULL CHECK (Int8_Nullable BETWEEN -128 AND 127),
+    -- Int16
+    Int16_Col      SMALLINT NOT NULL,
+    Int16_Nullable SMALLINT NULL,
+    -- Int32
+    Int32_Col      INT NOT NULL,
+    Int32_Nullable INT NULL,
+    -- Int64
+    Int64_Col      BIGINT NOT NULL,
+    Int64_Nullable BIGINT NULL,
+    -- Unsigned integer types (simulate using a larger type plus a CHECK 
constraint):
+    -- UInt8 (0 to 255) – SQL Server’s TINYINT is naturally unsigned.
+    UInt8_Col       TINYINT NOT NULL,
+    UInt8_Nullable  TINYINT NULL,
+    -- UInt16 (0 to 65535); use INT with a check constraint.
+    UInt16_Col       INT NOT NULL CHECK (UInt16_Col BETWEEN 0 AND 65535),
+    UInt16_Nullable  INT NULL CHECK (UInt16_Nullable BETWEEN 0 AND 65535),
+    -- UInt32 (0 to 4294967295); use BIGINT with a check constraint.
+    UInt32_Col       BIGINT NOT NULL CHECK (UInt32_Col BETWEEN 0 AND 
4294967295),
+    UInt32_Nullable  BIGINT NULL CHECK (UInt32_Nullable BETWEEN 0 AND 
4294967295),
+    -- UInt64; SQL Server has no 64-bit unsigned, so we use DECIMAL(20,0).
+    UInt64_Col       DECIMAL(20,0) NOT NULL CHECK (UInt64_Col >= 0),
+    UInt64_Nullable  DECIMAL(20,0) NULL CHECK (UInt64_Nullable >= 0),
+    -- Floating point types:
+    Float32_Col      REAL NOT NULL,
+    Float32_Nullable REAL NULL,
+    Float64_Col      FLOAT NOT NULL,
+    Float64_Nullable FLOAT NULL,
+    -- Decimal types with various precisions and scales:
+    Decimal_Col1       DECIMAL(18,2) NOT NULL,
+    Decimal_Nullable1  DECIMAL(18,2) NULL,
+    Decimal_Col2       DECIMAL(10,5) NOT NULL,
+    Decimal_Nullable2  DECIMAL(10,5) NULL,
+    Decimal_Col3       DECIMAL(38,10) NOT NULL,
+    Decimal_Nullable3  DECIMAL(38,10) NULL,
+    -- Date and DateTime types:
+    Date_Col        DATE NOT NULL,
+    Date_Nullable   DATE NULL,
+    Datetime_Col    DATETIME NOT NULL,
+    Datetime_Nullable DATETIME NULL,
+    -- String types:
+    String_Col         VARCHAR(100) NOT NULL,
+    String_Nullable    VARCHAR(100) NULL,
+    FixedString_Col       CHAR(10) NOT NULL,
+    FixedString_Nullable  CHAR(10) NULL,
+    -- Enum simulation (using CHAR(1) with a CHECK constraint):
+    Enum_Col         CHAR(1) NOT NULL CHECK (Enum_Col IN ('A','B','C')),
+    Enum_Nullable    CHAR(1) NULL CHECK (Enum_Nullable IN ('A','B','C') OR 
Enum_Nullable IS NULL),
+    -- UUID (SQL Server’s UNIQUEIDENTIFIER):
+    UUID_Col         UNIQUEIDENTIFIER NOT NULL,
+    UUID_Nullable    UNIQUEIDENTIFIER NULL,
+    -- IP address simulation:
+    IPv4_Col         VARCHAR(15) NOT NULL,  -- e.g., '255.255.255.255'
+    IPv4_Nullable    VARCHAR(15) NULL,
+    IPv6_Col         VARCHAR(39) NOT NULL,  -- e.g., 
'FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF'
+    IPv6_Nullable    VARCHAR(39) NULL
+);
diff --git a/docker/thirdparties/docker-compose/sqlserver/init/04-insert.sql 
b/docker/thirdparties/docker-compose/sqlserver/init/04-insert.sql
index f671bd23050..a67e00165de 100644
--- a/docker/thirdparties/docker-compose/sqlserver/init/04-insert.sql
+++ b/docker/thirdparties/docker-compose/sqlserver/init/04-insert.sql
@@ -100,3 +100,21 @@ Insert into dbo.all_type values
 
(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);
 
 insert into dbo.test_timestamp(id_col) values(1);
+
+INSERT INTO dbo.extreme_test 
(ID,Int8_Col,Int8_Nullable,Int16_Col,Int16_Nullable,Int32_Col,Int32_Nullable,Int64_Col,Int64_Nullable,UInt8_Col,UInt8_Nullable,UInt16_Col,UInt16_Nullable,UInt32_Col,UInt32_Nullable,UInt64_Col,UInt64_Nullable,Float32_Col,Float32_Nullable,Float64_Col,Float64_Nullable,Decimal_Col1,Decimal_Nullable1,Decimal_Col2,Decimal_Nullable2,Decimal_Col3,Decimal_Nullable3,Date_Col,Date_Nullable,Datetime_Col,Datetime_Nullable,String_Col,String_Nullable,FixedString_Col,FixedSt
 [...]
+INSERT INTO dbo.extreme_test 
(ID,Int8_Col,Int8_Nullable,Int16_Col,Int16_Nullable,Int32_Col,Int32_Nullable,Int64_Col,Int64_Nullable,UInt8_Col,UInt8_Nullable,UInt16_Col,UInt16_Nullable,UInt32_Col,UInt32_Nullable,UInt64_Col,UInt64_Nullable,Float32_Col,Float32_Nullable,Float64_Col,Float64_Nullable,Decimal_Col1,Decimal_Nullable1,Decimal_Col2,Decimal_Nullable2,Decimal_Col3,Decimal_Nullable3,Date_Col,Date_Nullable,Datetime_Col,Datetime_Nullable,String_Col,String_Nullable,FixedString_Col,FixedSt
 [...]
+INSERT INTO dbo.extreme_test 
(ID,Int8_Col,Int8_Nullable,Int16_Col,Int16_Nullable,Int32_Col,Int32_Nullable,Int64_Col,Int64_Nullable,UInt8_Col,UInt8_Nullable,UInt16_Col,UInt16_Nullable,UInt32_Col,UInt32_Nullable,UInt64_Col,UInt64_Nullable,Float32_Col,Float32_Nullable,Float64_Col,Float64_Nullable,Decimal_Col1,Decimal_Nullable1,Decimal_Col2,Decimal_Nullable2,Decimal_Col3,Decimal_Nullable3,Date_Col,Date_Nullable,Datetime_Col,Datetime_Nullable,String_Col,String_Nullable,FixedString_Col,FixedSt
 [...]
+INSERT INTO dbo.extreme_test 
(ID,Int8_Col,Int8_Nullable,Int16_Col,Int16_Nullable,Int32_Col,Int32_Nullable,Int64_Col,Int64_Nullable,UInt8_Col,UInt8_Nullable,UInt16_Col,UInt16_Nullable,UInt32_Col,UInt32_Nullable,UInt64_Col,UInt64_Nullable,Float32_Col,Float32_Nullable,Float64_Col,Float64_Nullable,Decimal_Col1,Decimal_Nullable1,Decimal_Col2,Decimal_Nullable2,Decimal_Col3,Decimal_Nullable3,Date_Col,Date_Nullable,Datetime_Col,Datetime_Nullable,String_Col,String_Nullable,FixedString_Col,FixedSt
 [...]
+
+insert into dbo.extreme_test_multi_block select * from dbo.extreme_test;
+insert into dbo.extreme_test_multi_block select * from 
dbo.extreme_test_multi_block;
+insert into dbo.extreme_test_multi_block select * from 
dbo.extreme_test_multi_block;
+insert into dbo.extreme_test_multi_block select * from 
dbo.extreme_test_multi_block;
+insert into dbo.extreme_test_multi_block select * from 
dbo.extreme_test_multi_block;
+insert into dbo.extreme_test_multi_block select * from 
dbo.extreme_test_multi_block;
+insert into dbo.extreme_test_multi_block select * from 
dbo.extreme_test_multi_block;
+insert into dbo.extreme_test_multi_block select * from 
dbo.extreme_test_multi_block;
+insert into dbo.extreme_test_multi_block select * from 
dbo.extreme_test_multi_block;
+insert into dbo.extreme_test_multi_block select * from 
dbo.extreme_test_multi_block;
+insert into dbo.extreme_test_multi_block select * from 
dbo.extreme_test_multi_block;
+insert into dbo.extreme_test_multi_block select * from dbo.extreme_test;
diff --git 
a/regression-test/data/external_table_p0/jdbc/type_test/select/test_clickhouse_all_types_select.out
 
b/regression-test/data/external_table_p0/jdbc/type_test/select/test_clickhouse_all_types_select.out
new file mode 100644
index 00000000000..5e9a9cb2f84
Binary files /dev/null and 
b/regression-test/data/external_table_p0/jdbc/type_test/select/test_clickhouse_all_types_select.out
 differ
diff --git 
a/regression-test/data/external_table_p0/jdbc/type_test/select/test_oracle_all_types_select.out
 
b/regression-test/data/external_table_p0/jdbc/type_test/select/test_oracle_all_types_select.out
new file mode 100644
index 00000000000..5bbb8363625
Binary files /dev/null and 
b/regression-test/data/external_table_p0/jdbc/type_test/select/test_oracle_all_types_select.out
 differ
diff --git 
a/regression-test/data/external_table_p0/jdbc/type_test/select/test_pg_all_types_select.out
 
b/regression-test/data/external_table_p0/jdbc/type_test/select/test_pg_all_types_select.out
new file mode 100644
index 00000000000..d1bcb124924
Binary files /dev/null and 
b/regression-test/data/external_table_p0/jdbc/type_test/select/test_pg_all_types_select.out
 differ
diff --git 
a/regression-test/data/external_table_p0/jdbc/type_test/select/test_sqlserver_all_types_select.out
 
b/regression-test/data/external_table_p0/jdbc/type_test/select/test_sqlserver_all_types_select.out
new file mode 100644
index 00000000000..400710b308e
Binary files /dev/null and 
b/regression-test/data/external_table_p0/jdbc/type_test/select/test_sqlserver_all_types_select.out
 differ
diff --git 
a/regression-test/suites/external_table_p0/jdbc/type_test/select/test_clickhouse_all_types_select.groovy
 
b/regression-test/suites/external_table_p0/jdbc/type_test/select/test_clickhouse_all_types_select.groovy
new file mode 100644
index 00000000000..122bdb99f89
--- /dev/null
+++ 
b/regression-test/suites/external_table_p0/jdbc/type_test/select/test_clickhouse_all_types_select.groovy
@@ -0,0 +1,46 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("test_clickhouse_all_types_select", 
"p0,external,clickhouse,external_docker,external_docker_clickhouse") {
+    String enabled = context.config.otherConfigs.get("enableJdbcTest")
+    String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+    String s3_endpoint = getS3Endpoint()
+    String bucket = getS3BucketName()
+    String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/clickhouse-jdbc-0.7.1-patch1-all.jar";
+    if (enabled != null && enabled.equalsIgnoreCase("true")) {
+        String clickhouse_port = 
context.config.otherConfigs.get("clickhouse_22_port");
+
+        sql """drop catalog if exists clickhouse_all_type_test """
+        sql """create catalog if not exists clickhouse_all_type_test 
properties(
+                    "type"="jdbc",
+                    "user"="default",
+                    "password"="123456",
+                    "jdbc_url" = 
"jdbc:clickhouse://${externalEnvIp}:${clickhouse_port}/doris_test",
+                    "driver_url" = "${driver_url}",
+                    "driver_class" = "com.clickhouse.jdbc.ClickHouseDriver"
+        );"""
+
+        sql """use clickhouse_all_type_test.doris_test"""
+
+        qt_desc_all_types_null """desc doris_test.extreme_test;"""
+        qt_select_all_types_null """select * from doris_test.extreme_test 
order by 1;"""
+
+        qt_select_all_types_multi_block """select count(*) from 
doris_test.extreme_test_multi_block;"""
+
+        sql """drop catalog if exists clickhouse_all_type_test """
+    }
+}
diff --git 
a/regression-test/suites/external_table_p0/jdbc/type_test/select/test_oracle_all_types_select.groovy
 
b/regression-test/suites/external_table_p0/jdbc/type_test/select/test_oracle_all_types_select.groovy
new file mode 100644
index 00000000000..89eb4a8a93b
--- /dev/null
+++ 
b/regression-test/suites/external_table_p0/jdbc/type_test/select/test_oracle_all_types_select.groovy
@@ -0,0 +1,47 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("test_oracle_all_types_select", 
"p0,external,oracle,external_docker,external_docker_oracle") {
+    String enabled = context.config.otherConfigs.get("enableJdbcTest")
+    String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+    String s3_endpoint = getS3Endpoint()
+    String bucket = getS3BucketName()
+    String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/ojdbc8.jar";
+    if (enabled != null && enabled.equalsIgnoreCase("true")) {
+        String oracle_port = context.config.otherConfigs.get("oracle_11_port");
+        String SID = "XE";
+
+        sql """drop catalog if exists oracle_all_type_test """
+        sql """create catalog if not exists oracle_all_type_test properties(
+                    "type"="jdbc",
+                    "user"="doris_test",
+                    "password"="123456",
+                    "jdbc_url" = 
"jdbc:oracle:thin:@${externalEnvIp}:${oracle_port}:${SID}",
+                    "driver_url" = "${driver_url}",
+                    "driver_class" = "oracle.jdbc.driver.OracleDriver"
+        );"""
+
+        sql """use oracle_all_type_test.DORIS_TEST"""
+
+        qt_desc_all_types_null """desc DORIS_TEST.EXTREME_TEST;"""
+        qt_select_all_types_null """select * from DORIS_TEST.EXTREME_TEST 
order by 1;"""
+
+        qt_select_all_types_multi_block """select count(*) from 
DORIS_TEST.EXTREME_TEST_MULTI_BLOCK;"""
+
+        sql """drop catalog if exists oracle_all_type_test """
+    }
+}
diff --git 
a/regression-test/suites/external_table_p0/jdbc/type_test/select/test_pg_all_types_select.groovy
 
b/regression-test/suites/external_table_p0/jdbc/type_test/select/test_pg_all_types_select.groovy
new file mode 100644
index 00000000000..39e445dc7ee
--- /dev/null
+++ 
b/regression-test/suites/external_table_p0/jdbc/type_test/select/test_pg_all_types_select.groovy
@@ -0,0 +1,76 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("test_pg_all_types_select", 
"p0,external,pg,external_docker,external_docker_pg") {
+    String enabled = context.config.otherConfigs.get("enableJdbcTest")
+    String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+    String s3_endpoint = getS3Endpoint()
+    String bucket = getS3BucketName()
+    String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/postgresql-42.5.0.jar";
+    if (enabled != null && enabled.equalsIgnoreCase("true")) {
+        String pg_port = context.config.otherConfigs.get("pg_14_port");
+
+        sql """drop catalog if exists pg_all_type_test """
+        sql """create catalog if not exists pg_all_type_test properties(
+            "type"="jdbc",
+            "user"="postgres",
+            "password"="123456",
+            "jdbc_url" = 
"jdbc:postgresql://${externalEnvIp}:${pg_port}/postgres?currentSchema=doris_test&useSSL=false",
+            "driver_url" = "${driver_url}",
+            "driver_class" = "org.postgresql.Driver"
+        );"""
+
+        sql """use pg_all_type_test.catalog_pg_test"""
+
+        qt_desc_all_types_null """desc catalog_pg_test.extreme_test;"""
+
+        qt_select_all_types_null """SELECT 
+                                    id,
+                                    smallint_val,
+                                    int_val,
+                                    bigint_val,
+                                    decimal_val,
+                                    real_val,
+                                    double_val,
+                                    char_val,
+                                    LENGTH(varchar_val) AS varchar_val_length,
+                                    LENGTH(text_val) AS text_val_length,
+                                    date_val,
+                                    timestamp_val,
+                                    timestamptz_val,
+                                    interval_val,
+                                    bool_val,
+                                    bytea_val,
+                                    inet_val,
+                                    cidr_val,
+                                    macaddr_val,
+                                    json_val,
+                                    jsonb_val,
+                                    point_val,
+                                    line_val,
+                                    circle_val,
+                                    uuid_val
+                                FROM 
+                                    catalog_pg_test.extreme_test
+                                ORDER BY 
+                                    1;"""
+
+        qt_select_all_types_multi_block """select count(*) from 
catalog_pg_test.extreme_test_multi_block;"""
+
+        sql """drop catalog if exists pg_all_type_test """
+    }
+}
diff --git 
a/regression-test/suites/external_table_p0/jdbc/type_test/select/test_sqlserver_all_types_select.groovy
 
b/regression-test/suites/external_table_p0/jdbc/type_test/select/test_sqlserver_all_types_select.groovy
new file mode 100644
index 00000000000..4db4d8ebb92
--- /dev/null
+++ 
b/regression-test/suites/external_table_p0/jdbc/type_test/select/test_sqlserver_all_types_select.groovy
@@ -0,0 +1,47 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("test_sqlserver_all_types_select", 
"p0,external,sqlserver,external_docker,external_docker_sqlserver") {
+    String enabled = context.config.otherConfigs.get("enableJdbcTest")
+    String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+    String s3_endpoint = getS3Endpoint()
+    String bucket = getS3BucketName()
+    String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mssql-jdbc-11.2.3.jre8.jar";
+    if (enabled != null && enabled.equalsIgnoreCase("true")) {
+        String sqlserver_port = 
context.config.otherConfigs.get("sqlserver_2022_port");
+
+        sql """drop catalog if exists sqlserver_all_type_test """
+        sql """create catalog if not exists sqlserver_all_type_test properties(
+                    "type"="jdbc",
+                    "user"="sa",
+                    "password"="Doris123456",
+                    "jdbc_url" = 
"jdbc:sqlserver://${externalEnvIp}:${sqlserver_port};encrypt=false;databaseName=doris_test;",
+                    "driver_url" = "${driver_url}",
+                    "driver_class" = 
"com.microsoft.sqlserver.jdbc.SQLServerDriver"
+        );"""
+
+        sql """use sqlserver_all_type_test.dbo"""
+
+        qt_desc_all_types_null """desc dbo.extreme_test;"""
+
+        qt_select_all_types_null """select * from dbo.extreme_test order by 
1;"""
+
+        qt_select_all_types_multi_block """select count(*) from 
dbo.extreme_test_multi_block;"""
+
+        sql """drop catalog if exists sqlserver_all_type_test """
+    }
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to