hailin0 commented on code in PR #5872:
URL: https://github.com/apache/seatunnel/pull/5872#discussion_r1403320112


##########
seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/psql/PostgresCatalog.java:
##########
@@ -37,43 +37,33 @@
 import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.SQLException;
-import java.util.HashMap;
-import java.util.Map;
-
-import static 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.psql.PostgresDataTypeConvertor.PG_BIT;
-import static 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.psql.PostgresDataTypeConvertor.PG_BYTEA;
-import static 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.psql.PostgresDataTypeConvertor.PG_CHAR;
-import static 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.psql.PostgresDataTypeConvertor.PG_CHARACTER;
-import static 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.psql.PostgresDataTypeConvertor.PG_CHARACTER_VARYING;
-import static 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.psql.PostgresDataTypeConvertor.PG_GEOGRAPHY;
-import static 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.psql.PostgresDataTypeConvertor.PG_GEOMETRY;
-import static 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.psql.PostgresDataTypeConvertor.PG_INTERVAL;
-import static 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.psql.PostgresDataTypeConvertor.PG_TEXT;
 
 @Slf4j
 public class PostgresCatalog extends AbstractJdbcCatalog {
 
-    private static final PostgresDataTypeConvertor DATA_TYPE_CONVERTOR =
-            new PostgresDataTypeConvertor();
-
     private static final String SELECT_COLUMNS_SQL_TEMPLATE =
             "SELECT \n"
                     + "    a.attname AS column_name, \n"
                     + "\t\tt.typname as type_name,\n"
                     + "    CASE \n"
+                    + "        WHEN a.atttypmod = -1 THEN t.typname\n"
                     + "        WHEN t.typname = 'varchar' THEN t.typname || 
'(' || (a.atttypmod - 4) || ')'\n"
                     + "        WHEN t.typname = 'bpchar' THEN 'char' || '(' || 
(a.atttypmod - 4) || ')'\n"
                     + "        WHEN t.typname = 'numeric' OR t.typname = 
'decimal' THEN t.typname || '(' || ((a.atttypmod - 4) >> 16) || ', ' || 
((a.atttypmod - 4) & 65535) || ')'\n"
                     + "        WHEN t.typname = 'bit' OR t.typname = 'bit 
varying' THEN t.typname || '(' || (a.atttypmod - 4) || ')'\n"
+                    + "        WHEN t.typname IN ('time', 'timetz', 
'timestamp', 'timestamptz') THEN t.typname || '(' || a.atttypmod || ')'\n"
                     + "        ELSE t.typname\n"
                     + "    END AS full_type_name,\n"
                     + "    CASE\n"
+                    + "        WHEN a.atttypmod = -1 THEN NULL\n"
                     + "        WHEN t.typname IN ('varchar', 'bpchar', 'bit', 
'bit varying') THEN a.atttypmod - 4\n"
                     + "        WHEN t.typname IN ('numeric', 'decimal') THEN 
(a.atttypmod - 4) >> 16\n"
                     + "        ELSE NULL\n"
                     + "    END AS column_length,\n"
                     + "\t\tCASE\n"
+                    + "        WHEN a.atttypmod = -1 THEN NULL\n"
                     + "        WHEN t.typname IN ('numeric', 'decimal') THEN 
(a.atttypmod - 4) & 65535\n"
+                    + "        WHEN t.typname IN ('time', 'timetz', 
'timestamp', 'timestamptz') THEN a.atttypmod\n"
                     + "        ELSE NULL\n"
                     + "    END AS column_scale,\n"
                     + "\t\td.description AS column_comment,\n"

Review Comment:
   ```
   
+-----------+-----------+--------------+-------------+------------+--------------+----------------------------------------+-----------+
   |column_name|type_name  
|full_type_name|column_length|column_scale|column_comment|default_value         
                  |is_nullable|
   
+-----------+-----------+--------------+-------------+------------+--------------+----------------------------------------+-----------+
   |id         |int8       |int8          |null         |null        |null      
    |null                                    |NO         |
   |f1         |bool       |bool          |null         |null        |null      
    |null                                    |YES        |
   |f2         |_bool      |_bool         |null         |null        |null      
    |null                                    |YES        |
   |f3         |bytea      |bytea         |null         |null        |null      
    |null                                    |YES        |
   |f5         |int2       |int2          |null         |null        |null      
    |null                                    |YES        |
   |f6         |int2       |int2          |null         |null        |null      
    |nextval('all_types_1_f6_seq'::regclass) |NO         |
   |f7         |_int2      |_int2         |null         |null        |null      
    |null                                    |YES        |
   |f8         |int4       |int4          |null         |null        |null      
    |null                                    |YES        |
   |f9         |int4       |int4          |null         |null        |null      
    |null                                    |YES        |
   |f10        |int4       |int4          |null         |null        |null      
    |nextval('all_types_1_f10_seq'::regclass)|NO         |
   |f11        |_int4      |_int4         |null         |null        |null      
    |null                                    |YES        |
   |f12        |int8       |int8          |null         |null        |null      
    |null                                    |YES        |
   |f13        |int8       |int8          |null         |null        |null      
    |nextval('all_types_1_f13_seq'::regclass)|NO         |
   |f14        |_int8      |_int8         |null         |null        |null      
    |null                                    |YES        |
   |f15        |float4     |float4        |null         |null        |null      
    |null                                    |YES        |
   |f16        |_float4    |_float4       |null         |null        |null      
    |null                                    |YES        |
   |f17        |float8     |float8        |null         |null        |null      
    |null                                    |YES        |
   |f18        |_float8    |_float8       |null         |null        |null      
    |null                                    |YES        |
   |f19        |numeric    |numeric       |null         |null        |null      
    |null                                    |YES        |
   |f20        |numeric    |numeric(10, 0)|10           |0           |null      
    |null                                    |YES        |
   |f21        |numeric    |numeric(10, 2)|10           |2           |null      
    |null                                    |YES        |
   |f22        |numeric    |numeric       |null         |null        |null      
    |null                                    |YES        |
   |f23        |numeric    |numeric(10, 0)|10           |0           |null      
    |null                                    |YES        |
   |f24        |numeric    |numeric(10, 2)|10           |2           |null      
    |null                                    |YES        |
   |f25        |bpchar     |char(1)       |1            |null        |null      
    |null                                    |YES        |
   |f26        |bpchar     |char(10)      |10           |null        |null      
    |null                                    |YES        |
   |f27        |_bpchar    |_bpchar       |null         |null        |null      
    |null                                    |YES        |
   |f28        |bpchar     |char(1)       |1            |null        |null      
    |null                                    |YES        |
   |f29        |bpchar     |char(10)      |10           |null        |null      
    |null                                    |YES        |
   |f30        |_bpchar    |_bpchar       |null         |null        |null      
    |null                                    |YES        |
   |f31        |varchar    |varchar       |null         |null        |null      
    |null                                    |YES        |
   |f32        |varchar    |varchar(10)   |10           |null        |null      
    |null                                    |YES        |
   |f33        |_varchar   |_varchar      |null         |null        |null      
    |null                                    |YES        |
   |f34        |varchar    |varchar       |null         |null        |null      
    |null                                    |YES        |
   |f35        |varchar    |varchar(10)   |10           |null        |null      
    |null                                    |YES        |
   |f36        |_varchar   |_varchar      |null         |null        |null      
    |null                                    |YES        |
   |f37        |text       |text          |null         |null        |null      
    |null                                    |YES        |
   |f38        |_text      |_text         |null         |null        |null      
    |null                                    |YES        |
   |f41        |json       |json          |null         |null        |null      
    |null                                    |YES        |
   |f42        |jsonb      |jsonb         |null         |null        |null      
    |null                                    |YES        |
   |f43        |xml        |xml           |null         |null        |null      
    |null                                    |YES        |
   |f44        |date       |date          |null         |null        |null      
    |null                                    |YES        |
   |f45        |time       |time          |null         |null        |null      
    |null                                    |YES        |
   |f46        |time       |time(3)       |null         |3           |null      
    |null                                    |YES        |
   |f47        |timetz     |timetz        |null         |null        |null      
    |null                                    |YES        |
   |f48        |timetz     |timetz(3)     |null         |3           |null      
    |null                                    |YES        |
   |f49        |time       |time          |null         |null        |null      
    |null                                    |YES        |
   |f50        |time       |time(3)       |null         |3           |null      
    |null                                    |YES        |
   |f51        |timestamp  |timestamp     |null         |null        |null      
    |null                                    |YES        |
   |f52        |timestamp  |timestamp(3)  |null         |3           |null      
    |null                                    |YES        |
   |f53        |timestamptz|timestamptz   |null         |null        |null      
    |null                                    |YES        |
   |f54        |timestamptz|timestamptz(3)|null         |3           |null      
    |null                                    |YES        |
   |f55        |timestamp  |timestamp     |null         |null        |null      
    |null                                    |YES        |
   |f56        |timestamp  |timestamp(3)  |null         |3           |null      
    |null                                    |YES        |
   |f57        |timestamptz|timestamptz   |null         |null        |null      
    |null                                    |YES        |
   |f58        |bool       |bool          |null         |null        |null      
    |null                                    |YES        |
   
+-----------+-----------+--------------+-------------+------------+--------------+----------------------------------------+-----------+
   
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to