diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/PostgreSQLJdbcHMSCachedClient.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/PostgreSQLJdbcHMSCachedClient.java index 0259784b7b..47a76dd0fe 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/PostgreSQLJdbcHMSCachedClient.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/PostgreSQLJdbcHMSCachedClient.java @@ -513,11 +513,6 @@ public class PostgreSQLJdbcHMSCachedClient extends JdbcHMSCachedClient { throw new HMSClientException("Do not support in PostgreSQLJdbcHMSCachedClient."); } - @Override - protected String getDatabaseQuery() { - throw new HMSClientException("Do not support in PostgreSQLJdbcHMSCachedClient."); - } - @Override protected Type jdbcTypeToDoris(JdbcFieldSchema fieldSchema) { throw new HMSClientException("Do not support in PostgreSQLJdbcHMSCachedClient."); diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcClickHouseClient.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcClickHouseClient.java index a6088ad11c..35e6c83af1 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcClickHouseClient.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcClickHouseClient.java @@ -27,11 +27,6 @@ public class JdbcClickHouseClient extends JdbcClient { super(jdbcClientConfig); } - @Override - protected String getDatabaseQuery() { - return "SHOW DATABASES"; - } - @Override protected String[] getTableTypes() { return new String[] {"TABLE", "VIEW", "SYSTEM TABLE"}; diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcClient.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcClient.java index 7e44c89b37..a95c6c74f2 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcClient.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcClient.java @@ -220,23 +220,22 @@ public abstract class JdbcClient { */ public List getDatabaseNameList() { Connection conn = getConnection(); - Statement stmt = null; ResultSet rs = null; - if (isOnlySpecifiedDatabase && includeDatabaseMap.isEmpty() && excludeDatabaseMap.isEmpty()) { - return getSpecifiedDatabase(conn); - } List remoteDatabaseNames = Lists.newArrayList(); try { - stmt = conn.createStatement(); - String sql = getDatabaseQuery(); - rs = stmt.executeQuery(sql); - while (rs.next()) { - remoteDatabaseNames.add(rs.getString(1)); + if (isOnlySpecifiedDatabase && includeDatabaseMap.isEmpty() && excludeDatabaseMap.isEmpty()) { + String currentDatabase = conn.getSchema(); + remoteDatabaseNames.add(currentDatabase); + } else { + rs = conn.getMetaData().getSchemas(conn.getCatalog(), null); + while (rs.next()) { + remoteDatabaseNames.add(rs.getString("TABLE_SCHEM")); + } } } catch (SQLException e) { throw new JdbcClientException("failed to get database name list from jdbc", e); } finally { - close(rs, stmt, conn); + close(rs, conn); } return filterDatabaseNames(remoteDatabaseNames); } @@ -351,21 +350,7 @@ public abstract class JdbcClient { // protected methods,for subclass to override protected String getCatalogName(Connection conn) throws SQLException { - return null; - } - - protected abstract String getDatabaseQuery(); - - protected List getSpecifiedDatabase(Connection conn) { - List databaseNames = Lists.newArrayList(); - try { - databaseNames.add(conn.getSchema()); - } catch (SQLException e) { - throw new JdbcClientException("failed to get specified database name from jdbc", e); - } finally { - close(conn); - } - return databaseNames; + return conn.getCatalog(); } protected String[] getTableTypes() { diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcDB2Client.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcDB2Client.java index e53ff9165e..fb22d3bd62 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcDB2Client.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcDB2Client.java @@ -26,7 +26,6 @@ import com.google.common.collect.Lists; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; -import java.sql.Statement; import java.util.List; public class JdbcDB2Client extends JdbcClient { @@ -38,35 +37,26 @@ public class JdbcDB2Client extends JdbcClient { @Override public List getDatabaseNameList() { Connection conn = getConnection(); - Statement stmt = null; ResultSet rs = null; - if (isOnlySpecifiedDatabase && includeDatabaseMap.isEmpty() && excludeDatabaseMap.isEmpty()) { - return getSpecifiedDatabase(conn); - } List remoteDatabaseNames = Lists.newArrayList(); try { - rs = conn.getMetaData().getSchemas(conn.getCatalog(), null); - while (rs.next()) { - remoteDatabaseNames.add(rs.getString("TABLE_SCHEM").trim()); + if (isOnlySpecifiedDatabase && includeDatabaseMap.isEmpty() && excludeDatabaseMap.isEmpty()) { + String currentDatabase = conn.getSchema().trim(); + remoteDatabaseNames.add(currentDatabase); + } else { + rs = conn.getMetaData().getSchemas(conn.getCatalog(), null); + while (rs.next()) { + remoteDatabaseNames.add(rs.getString("TABLE_SCHEM").trim()); + } } } catch (SQLException e) { throw new JdbcClientException("failed to get database name list from jdbc", e); } finally { - close(rs, stmt, conn); + close(rs, conn); } return filterDatabaseNames(remoteDatabaseNames); } - @Override - protected String getDatabaseQuery() { - return "SELECT schemaname FROM syscat.schemata WHERE DEFINER = CURRENT USER;"; - } - - @Override - protected String getCatalogName(Connection conn) throws SQLException { - return conn.getCatalog(); - } - @Override protected Type jdbcTypeToDoris(JdbcFieldSchema fieldSchema) { String db2Type = fieldSchema.getDataTypeName(); diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java index 0eb6c4c8bf..20047b29be 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java @@ -65,21 +65,26 @@ public class JdbcMySQLClient extends JdbcClient { } @Override - protected String getDatabaseQuery() { - return "SHOW DATABASES"; - } - - @Override - protected List getSpecifiedDatabase(Connection conn) { - List databaseNames = Lists.newArrayList(); + public List getDatabaseNameList() { + Connection conn = getConnection(); + ResultSet rs = null; + List remoteDatabaseNames = Lists.newArrayList(); try { - databaseNames.add(conn.getCatalog()); + if (isOnlySpecifiedDatabase && includeDatabaseMap.isEmpty() && excludeDatabaseMap.isEmpty()) { + String currentDatabase = conn.getCatalog(); + remoteDatabaseNames.add(currentDatabase); + } else { + rs = conn.getMetaData().getCatalogs(); + while (rs.next()) { + remoteDatabaseNames.add(rs.getString("TABLE_CAT")); + } + } } catch (SQLException e) { - throw new JdbcClientException("failed to get specified database name from jdbc", e); + throw new JdbcClientException("failed to get database name list from jdbc", e); } finally { - close(conn); + close(rs, conn); } - return databaseNames; + return filterDatabaseNames(remoteDatabaseNames); } @Override @@ -162,6 +167,10 @@ public class JdbcMySQLClient extends JdbcClient { return tableSchema; } + protected String getCatalogName(Connection conn) throws SQLException { + return null; + } + protected Set getFilterInternalDatabases() { return ImmutableSet.builder() .add("mysql") diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcOceanBaseClient.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcOceanBaseClient.java index 18cebd7bb9..8628d62d70 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcOceanBaseClient.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcOceanBaseClient.java @@ -58,11 +58,6 @@ public class JdbcOceanBaseClient extends JdbcClient { } } - @Override - protected String getDatabaseQuery() { - return currentClient.getDatabaseQuery(); - } - @Override protected Type jdbcTypeToDoris(JdbcFieldSchema fieldSchema) { return currentClient.jdbcTypeToDoris(fieldSchema); diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcOracleClient.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcOracleClient.java index 8406df7c33..484028ed92 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcOracleClient.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcOracleClient.java @@ -37,42 +37,11 @@ public class JdbcOracleClient extends JdbcClient { super(jdbcClientConfig); } - @Override - protected String getDatabaseQuery() { - return "SELECT DISTINCT OWNER FROM all_tables"; - } - - @Override - protected String getCatalogName(Connection conn) throws SQLException { - return conn.getCatalog(); - } - @Override public String getTestQuery() { return "SELECT 1 FROM dual"; } - @Override - public List getDatabaseNameList() { - Connection conn = getConnection(); - ResultSet rs = null; - if (isOnlySpecifiedDatabase && includeDatabaseMap.isEmpty() && excludeDatabaseMap.isEmpty()) { - return getSpecifiedDatabase(conn); - } - List remoteDatabaseNames = Lists.newArrayList(); - try { - rs = conn.getMetaData().getSchemas(conn.getCatalog(), null); - while (rs.next()) { - remoteDatabaseNames.add(rs.getString("TABLE_SCHEM")); - } - } catch (SQLException e) { - throw new JdbcClientException("failed to get database name list from jdbc", e); - } finally { - close(rs, conn); - } - return filterDatabaseNames(remoteDatabaseNames); - } - @Override public List getJdbcColumnsInfo(String localDbName, String localTableName) { Connection conn = getConnection(); diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcPostgreSQLClient.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcPostgreSQLClient.java index c8f2751d7a..3d0bbc4e56 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcPostgreSQLClient.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcPostgreSQLClient.java @@ -27,12 +27,6 @@ public class JdbcPostgreSQLClient extends JdbcClient { super(jdbcClientConfig); } - @Override - protected String getDatabaseQuery() { - return "SELECT nspname FROM pg_namespace WHERE has_schema_privilege(" - + "'" + jdbcUser + "', nspname, 'USAGE');"; - } - @Override protected String[] getTableTypes() { return new String[] {"TABLE", "PARTITIONED TABLE", "VIEW", "MATERIALIZED VIEW", "FOREIGN TABLE"}; diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcSQLServerClient.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcSQLServerClient.java index 6ac3ca40e6..e3d96421a1 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcSQLServerClient.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcSQLServerClient.java @@ -26,11 +26,6 @@ public class JdbcSQLServerClient extends JdbcClient { super(jdbcClientConfig); } - @Override - protected String getDatabaseQuery() { - return "SELECT name FROM sys.schemas"; - } - @Override protected Type jdbcTypeToDoris(JdbcFieldSchema fieldSchema) { String originSqlserverType = fieldSchema.getDataTypeName(); diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcSapHanaClient.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcSapHanaClient.java index 1d5f590ed4..a35ed60609 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcSapHanaClient.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcSapHanaClient.java @@ -26,11 +26,6 @@ public class JdbcSapHanaClient extends JdbcClient { super(jdbcClientConfig); } - @Override - protected String getDatabaseQuery() { - return "SELECT SCHEMA_NAME FROM SYS.SCHEMAS WHERE HAS_PRIVILEGES = 'TRUE'"; - } - @Override protected String[] getTableTypes() { return new String[] {"TABLE", "VIEW", "OLAP VIEW", "JOIN VIEW", "HIERARCHY VIEW", "CALC VIEW"}; diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcTrinoClient.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcTrinoClient.java index e577086e4a..e922254dbc 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcTrinoClient.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcTrinoClient.java @@ -22,24 +22,11 @@ import org.apache.doris.catalog.PrimitiveType; import org.apache.doris.catalog.ScalarType; import org.apache.doris.catalog.Type; -import java.sql.Connection; -import java.sql.SQLException; - public class JdbcTrinoClient extends JdbcClient { protected JdbcTrinoClient(JdbcClientConfig jdbcClientConfig) { super(jdbcClientConfig); } - @Override - protected String getDatabaseQuery() { - return "SHOW SCHEMAS"; - } - - @Override - protected String getCatalogName(Connection conn) throws SQLException { - return conn.getCatalog(); - } - @Override protected Type jdbcTypeToDoris(JdbcFieldSchema fieldSchema) { String trinoType = fieldSchema.getDataTypeName(); diff --git a/regression-test/data/external_table_p0/jdbc/test_clickhouse_jdbc_catalog.out b/regression-test/data/external_table_p0/jdbc/test_clickhouse_jdbc_catalog.out index 73dc89da69..38aea106c1 100644 Binary files a/regression-test/data/external_table_p0/jdbc/test_clickhouse_jdbc_catalog.out and b/regression-test/data/external_table_p0/jdbc/test_clickhouse_jdbc_catalog.out differ diff --git a/regression-test/data/external_table_p0/jdbc/test_mariadb_jdbc_catalog.out b/regression-test/data/external_table_p0/jdbc/test_mariadb_jdbc_catalog.out index a83c87b49c..2a009b0bd8 100644 --- a/regression-test/data/external_table_p0/jdbc/test_mariadb_jdbc_catalog.out +++ b/regression-test/data/external_table_p0/jdbc/test_mariadb_jdbc_catalog.out @@ -2,6 +2,11 @@ -- !sql -- internal +-- !show_db -- +doris_test +information_schema +performance_schema + -- !sql -- internal diff --git a/regression-test/data/external_table_p0/jdbc/test_mysql_jdbc_driver5_catalog.out b/regression-test/data/external_table_p0/jdbc/test_mysql_jdbc_driver5_catalog.out index 9dc2c6d02c..8fb34e0e33 100644 --- a/regression-test/data/external_table_p0/jdbc/test_mysql_jdbc_driver5_catalog.out +++ b/regression-test/data/external_table_p0/jdbc/test_mysql_jdbc_driver5_catalog.out @@ -2,11 +2,21 @@ -- !sql -- internal +-- !show_db -- +DORIS +Doris +doris +doris_test +information_schema +init_db +performance_schema +show_test_do_not_modify + -- !sql -- internal -- !sql -- -mysql_jdbc_catalog +mysql_jdbc5_catalog -- !ex_tb0 -- 111 abc diff --git a/regression-test/data/external_table_p0/jdbc/test_oracle_jdbc_catalog.out b/regression-test/data/external_table_p0/jdbc/test_oracle_jdbc_catalog.out index 3c0a07f0d4..21613b426a 100644 --- a/regression-test/data/external_table_p0/jdbc/test_oracle_jdbc_catalog.out +++ b/regression-test/data/external_table_p0/jdbc/test_oracle_jdbc_catalog.out @@ -1,4 +1,12 @@ -- This file is automatically generated. You should know what you did if you want to edit this +-- !show_db -- +ANONYMOUS +APEX_040000 +APEX_PUBLIC_USER +DORIS_TEST +HR +information_schema + -- !test0 -- 1 alice 20 99.5 2 bob 21 90.5 diff --git a/regression-test/data/external_table_p0/jdbc/test_pg_jdbc_catalog.out b/regression-test/data/external_table_p0/jdbc/test_pg_jdbc_catalog.out index 8faf5a4e4d..728f48a299 100644 --- a/regression-test/data/external_table_p0/jdbc/test_pg_jdbc_catalog.out +++ b/regression-test/data/external_table_p0/jdbc/test_pg_jdbc_catalog.out @@ -1,4 +1,11 @@ -- This file is automatically generated. You should know what you did if you want to edit this +-- !show_db -- +catalog_pg_test +doris_test +information_schema +pg_catalog +public + -- !test0 -- 123 abc 123 abc @@ -2276,7 +2283,6 @@ information_schema catalog_pg_test information_schema pg_catalog -pg_toast public -- !specified_database_4 -- 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 b7c6c7b793..d0d394cdee 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 @@ -1,4 +1,19 @@ -- This file is automatically generated. You should know what you did if you want to edit this +-- !show_db -- +db_accessadmin +db_backupoperator +db_datareader +db_datawriter +db_ddladmin +db_denydatareader +db_denydatawriter +db_owner +db_securityadmin +dbo +guest +information_schema +sys + -- !test0 -- 1 doris 18 2 alice 19 diff --git a/regression-test/suites/external_table_p0/jdbc/test_clickhouse_jdbc_catalog.groovy b/regression-test/suites/external_table_p0/jdbc/test_clickhouse_jdbc_catalog.groovy index bc67d89ff4..51fe48d8cd 100644 --- a/regression-test/suites/external_table_p0/jdbc/test_clickhouse_jdbc_catalog.groovy +++ b/regression-test/suites/external_table_p0/jdbc/test_clickhouse_jdbc_catalog.groovy @@ -41,6 +41,7 @@ suite("test_clickhouse_jdbc_catalog", "p0,external,clickhouse,external_docker,ex "driver_url" = "${driver_url}", "driver_class" = "com.clickhouse.jdbc.ClickHouseDriver" );""" + order_qt_show_db """ show databases from ${catalog_name}; """ sql """use ${internal_db_name}""" sql """ drop table if exists ${internal_db_name}.${inDorisTable} """ sql """ @@ -53,88 +54,73 @@ suite("test_clickhouse_jdbc_catalog", "p0,external,clickhouse,external_docker,ex """ sql """ switch ${catalog_name} """ - def res_dbs_log = sql "show databases;" - for(int i = 0;i < res_dbs_log.size();i++) { - def tbs = sql "show tables from `${res_dbs_log[i][0]}`" - log.info( "database = ${res_dbs_log[i][0]} => tables = "+tbs.toString()) - } - try { - sql """ use ${ex_db_name} """ + sql """ use ${ex_db_name} """ - order_qt_type """ select * from type order by k1; """ - order_qt_type_null """ select * from type_null order by id; """ - sql """drop table if exists internal.${internal_db_name}.ck_type_null """ - order_qt_ctas_type_null """create table internal.${internal_db_name}.ck_type_null PROPERTIES("replication_num" = "1") as select * from type_null """; - order_qt_query_ctas_type_null """ select * from internal.${internal_db_name}.ck_type_null order by id; """ - order_qt_number """ select * from number order by k6; """ - order_qt_arr """ select * from arr order by id; """ - order_qt_arr_null """ select * from arr_null order by id; """ - sql """ drop table if exists internal.${internal_db_name}.ck_arr_null""" - order_qt_ctas_arr_null """create table internal.${internal_db_name}.ck_arr_null PROPERTIES("replication_num" = "1") as select * from arr_null """; - order_qt_query_ctas_arr_null """ select * from internal.${internal_db_name}.ck_arr_null order by id; """ - sql """ insert into internal.${internal_db_name}.${inDorisTable} select * from student; """ - order_qt_in_tb """ select id, name, age from internal.${internal_db_name}.${inDorisTable} order by id; """ - order_qt_system """ show tables from `system`; """ - order_qt_filter """ select k1,k2 from type where 1 = 1 order by 1 ; """ - order_qt_filter2 """ select k1,k2 from type where 1 = 1 and k1 = true order by 1 ; """ - order_qt_filter3 """ select k1,k2 from type where k1 = true order by 1 ; """ - order_qt_filter4 """ select k28 from type where k28 not like '%String%' order by 1 ; """ - order_qt_filter4_old """ select /*+ SET_VAR(enable_nereids_planner=false) */ k28 from type where k28 not like '%String%' order by 1 ; """ - sql "set jdbc_clickhouse_query_final = true;" - order_qt_final1 """select * from final_test""" - sql "set jdbc_clickhouse_query_final = false;" - order_qt_final2 """select * from final_test""" - order_qt_func_push """select * from ts where from_unixtime(ts,'yyyyMMdd') >= '2022-01-01';""" - explain { - sql("select * from ts where from_unixtime(ts,'yyyyMMdd') >= '2022-01-01';") - contains """QUERY: SELECT "id", "ts" FROM "doris_test"."ts" WHERE ((FROM_UNIXTIME("ts", '%Y%m%d') >= '2022-01-01'))""" - } - explain { - sql("select * from ts where nvl(ts,null) >= '2022-01-01';") - contains """QUERY: SELECT "id", "ts" FROM "doris_test"."ts""" - } - order_qt_func_push2 """select * from ts where ts <= unix_timestamp(from_unixtime(ts,'yyyyMMdd'));""" - explain { - sql("select * from ts where ts <= unix_timestamp(from_unixtime(ts,'yyyy-MM-dd'));") - contains """QUERY: SELECT "id", "ts" FROM "doris_test"."ts" WHERE (("ts" <= toUnixTimestamp(FROM_UNIXTIME("ts", '%Y-%m-%d'))))""" - } + order_qt_type """ select * from type order by k1; """ + order_qt_type_null """ select * from type_null order by id; """ + sql """drop table if exists internal.${internal_db_name}.ck_type_null """ + order_qt_ctas_type_null """create table internal.${internal_db_name}.ck_type_null PROPERTIES("replication_num" = "1") as select * from type_null """; + order_qt_query_ctas_type_null """ select * from internal.${internal_db_name}.ck_type_null order by id; """ + order_qt_number """ select * from number order by k6; """ + order_qt_arr """ select * from arr order by id; """ + order_qt_arr_null """ select * from arr_null order by id; """ + sql """ drop table if exists internal.${internal_db_name}.ck_arr_null""" + order_qt_ctas_arr_null """create table internal.${internal_db_name}.ck_arr_null PROPERTIES("replication_num" = "1") as select * from arr_null """; + order_qt_query_ctas_arr_null """ select * from internal.${internal_db_name}.ck_arr_null order by id; """ + sql """ insert into internal.${internal_db_name}.${inDorisTable} select * from student; """ + order_qt_in_tb """ select id, name, age from internal.${internal_db_name}.${inDorisTable} order by id; """ + order_qt_system """ show tables from `system`; """ + order_qt_filter """ select k1,k2 from type where 1 = 1 order by 1 ; """ + order_qt_filter2 """ select k1,k2 from type where 1 = 1 and k1 = true order by 1 ; """ + order_qt_filter3 """ select k1,k2 from type where k1 = true order by 1 ; """ + order_qt_filter4 """ select k28 from type where k28 not like '%String%' order by 1 ; """ + order_qt_filter4_old """ select /*+ SET_VAR(enable_nereids_planner=false) */ k28 from type where k28 not like '%String%' order by 1 ; """ + sql "set jdbc_clickhouse_query_final = true;" + order_qt_final1 """select * from final_test""" + sql "set jdbc_clickhouse_query_final = false;" + order_qt_final2 """select * from final_test""" + order_qt_func_push """select * from ts where from_unixtime(ts,'yyyyMMdd') >= '2022-01-01';""" + explain { + sql("select * from ts where from_unixtime(ts,'yyyyMMdd') >= '2022-01-01';") + contains """QUERY: SELECT "id", "ts" FROM "doris_test"."ts" WHERE ((FROM_UNIXTIME("ts", '%Y%m%d') >= '2022-01-01'))""" + } + explain { + sql("select * from ts where nvl(ts,null) >= '2022-01-01';") + contains """QUERY: SELECT "id", "ts" FROM "doris_test"."ts""" + } + order_qt_func_push2 """select * from ts where ts <= unix_timestamp(from_unixtime(ts,'yyyyMMdd'));""" + explain { + sql("select * from ts where ts <= unix_timestamp(from_unixtime(ts,'yyyy-MM-dd'));") + contains """QUERY: SELECT "id", "ts" FROM "doris_test"."ts" WHERE (("ts" <= toUnixTimestamp(FROM_UNIXTIME("ts", '%Y-%m-%d'))))""" + } - order_qt_dt_with_tz """ select * from dt_with_tz order by id; """ + order_qt_dt_with_tz """ select * from dt_with_tz order by id; """ - sql """create catalog if not exists clickhouse_catalog_test_conn_correct 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", - "test_connection" = "true" - ); - """ - order_qt_test_conn_correct """ select * from clickhouse_catalog_test_conn_correct.doris_test.type; """ - - test { - sql """create catalog if not exists clickhouse_catalog_test_conn_mistake properties( - "type"="jdbc", - "user"="default", - "password"="1234567", - "jdbc_url" = "jdbc:clickhouse://${externalEnvIp}:${clickhouse_port}/doris_test", - "driver_url" = "${driver_url}", - "driver_class" = "com.clickhouse.jdbc.ClickHouseDriver", - "test_connection" = "true" - ); - """ - exception "Test FE Connection to JDBC Failed: Can not connect to jdbc due to error: Code: 516. DB::Exception: default: Authentication failed: password is incorrect, or there is no user with such name." - } - - }finally { - res_dbs_log = sql "show databases;" - for(int i = 0;i < res_dbs_log.size();i++) { - def tbs = sql "show tables from `${res_dbs_log[i][0]}`" - log.info( "database = ${res_dbs_log[i][0]} => tables = "+tbs.toString()) - } - } + sql """create catalog if not exists clickhouse_catalog_test_conn_correct 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", + "test_connection" = "true" + ); + """ + order_qt_test_conn_correct """ select * from clickhouse_catalog_test_conn_correct.doris_test.type; """ + test { + sql """create catalog if not exists clickhouse_catalog_test_conn_mistake properties( + "type"="jdbc", + "user"="default", + "password"="1234567", + "jdbc_url" = "jdbc:clickhouse://${externalEnvIp}:${clickhouse_port}/doris_test", + "driver_url" = "${driver_url}", + "driver_class" = "com.clickhouse.jdbc.ClickHouseDriver", + "test_connection" = "true" + ); + """ + exception "Test FE Connection to JDBC Failed: Can not connect to jdbc due to error: Code: 516. DB::Exception: default: Authentication failed: password is incorrect, or there is no user with such name." + } sql """ drop catalog if exists ${catalog_name} """ sql """ drop catalog if exists clickhouse_catalog_test_conn_correct """ sql """ drop catalog if exists clickhouse_catalog_test_conn_mistake """ diff --git a/regression-test/suites/external_table_p0/jdbc/test_mariadb_jdbc_catalog.groovy b/regression-test/suites/external_table_p0/jdbc/test_mariadb_jdbc_catalog.groovy index 5398263b73..d90ffe3e1c 100644 --- a/regression-test/suites/external_table_p0/jdbc/test_mariadb_jdbc_catalog.groovy +++ b/regression-test/suites/external_table_p0/jdbc/test_mariadb_jdbc_catalog.groovy @@ -47,6 +47,7 @@ suite("test_mariadb_jdbc_catalog", "p0,external,mariadb,external_docker,external "driver_url" = "${driver_url}", "driver_class" = "com.mysql.cj.jdbc.Driver" );""" + order_qt_show_db """ show databases from ${catalog_name}; """ sql """use ${internal_db_name}""" sql """ drop table if exists ${internal_db_name}.${inDorisTable} """ diff --git a/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_catalog.groovy b/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_catalog.groovy index 04a3889ff8..775cfb9981 100644 --- a/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_catalog.groovy +++ b/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_catalog.groovy @@ -375,147 +375,134 @@ suite("test_mysql_jdbc_catalog", "p0,external,mysql,external_docker,external_doc """ sql """switch mysql_fun_push_catalog""" - res_dbs_log = sql "show databases;" - for(int i = 0;i < res_dbs_log.size();i++) { - def tbs = sql "show tables from `${res_dbs_log[i][0]}`" - log.info( "database = ${res_dbs_log[i][0]} => tables = "+tbs.toString()) - } - try { - sql """ use ${ex_db_name}""" - sql """ set enable_ext_func_pred_pushdown = "true"; """ - order_qt_filter1 """select * from ${ex_tb17} where id = 1; """ - order_qt_filter2 """select * from ${ex_tb17} where 1=1 order by 1; """ - order_qt_filter3 """select * from ${ex_tb17} where id = 1 and 1 = 1; """ - order_qt_date_trunc """ SELECT timestamp0 from dt where DATE_TRUNC(date_sub(timestamp0,INTERVAL 9 HOUR),'hour') > '2011-03-03 17:39:05'; """ - order_qt_money_format """ select k8 from test1 where money_format(k8) = '1.00'; """ - explain { - sql("select k8 from test1 where money_format(k8) = '1.00';") + sql """ use ${ex_db_name}""" + sql """ set enable_ext_func_pred_pushdown = "true"; """ + order_qt_filter1 """select * from ${ex_tb17} where id = 1; """ + order_qt_filter2 """select * from ${ex_tb17} where 1=1 order by 1; """ + order_qt_filter3 """select * from ${ex_tb17} where id = 1 and 1 = 1; """ + order_qt_date_trunc """ SELECT timestamp0 from dt where DATE_TRUNC(date_sub(timestamp0,INTERVAL 9 HOUR),'hour') > '2011-03-03 17:39:05'; """ + order_qt_money_format """ select k8 from test1 where money_format(k8) = '1.00'; """ + explain { + sql("select k8 from test1 where money_format(k8) = '1.00';") - contains "QUERY: SELECT `k8` FROM `doris_test`.`test1`" - } - explain { - sql ("SELECT timestamp0 from dt where DATE_TRUNC(date_sub(timestamp0,INTERVAL 9 HOUR),'hour') > '2011-03-03 17:39:05';") + contains "QUERY: SELECT `k8` FROM `doris_test`.`test1`" + } + explain { + sql ("SELECT timestamp0 from dt where DATE_TRUNC(date_sub(timestamp0,INTERVAL 9 HOUR),'hour') > '2011-03-03 17:39:05';") - contains "QUERY: SELECT `timestamp0` FROM `doris_test`.`dt`" - } - explain { - sql ("SELECT timestamp0 from dt where DATE_TRUNC(date_sub(timestamp0,INTERVAL 9 HOUR),'hour') > '2011-03-03 17:39:05' and timestamp0 > '2022-01-01';") + contains "QUERY: SELECT `timestamp0` FROM `doris_test`.`dt`" + } + explain { + sql ("SELECT timestamp0 from dt where DATE_TRUNC(date_sub(timestamp0,INTERVAL 9 HOUR),'hour') > '2011-03-03 17:39:05' and timestamp0 > '2022-01-01';") - contains "QUERY: SELECT `timestamp0` FROM `doris_test`.`dt` WHERE (`timestamp0` > '2022-01-01 00:00:00')" - } - explain { - sql ("select k6, k8 from test1 where nvl(k6, null) = 1;") + contains "QUERY: SELECT `timestamp0` FROM `doris_test`.`dt` WHERE (`timestamp0` > '2022-01-01 00:00:00')" + } + explain { + sql ("select k6, k8 from test1 where nvl(k6, null) = 1;") - contains "QUERY: SELECT `k6`, `k8` FROM `doris_test`.`test1` WHERE ((ifnull(`k6`, NULL) = 1))" - } - explain { - sql ("select k6, k8 from test1 where nvl(nvl(k6, null),null) = 1;") + contains "QUERY: SELECT `k6`, `k8` FROM `doris_test`.`test1` WHERE ((ifnull(`k6`, NULL) = 1))" + } + explain { + sql ("select k6, k8 from test1 where nvl(nvl(k6, null),null) = 1;") - contains "QUERY: SELECT `k6`, `k8` FROM `doris_test`.`test1` WHERE ((ifnull(ifnull(`k6`, NULL), NULL) = 1))" - } - sql """ set enable_ext_func_pred_pushdown = "false"; """ - explain { - sql ("select k6, k8 from test1 where nvl(k6, null) = 1 and k8 = 1;") + contains "QUERY: SELECT `k6`, `k8` FROM `doris_test`.`test1` WHERE ((ifnull(ifnull(`k6`, NULL), NULL) = 1))" + } + sql """ set enable_ext_func_pred_pushdown = "false"; """ + explain { + sql ("select k6, k8 from test1 where nvl(k6, null) = 1 and k8 = 1;") - contains "QUERY: SELECT `k6`, `k8` FROM `doris_test`.`test1` WHERE ((`k8` = 1))" - } - sql """ set enable_ext_func_pred_pushdown = "true"; """ - // test date_add - sql """ set disable_nereids_rules='NORMALIZE_REWRITE_RULES'; """ - order_qt_date_add_year """ select * from test_zd where date_add(d_z,interval 1 year) = '2023-01-01' order by 1; """ - explain { - sql("select * from test_zd where date_add(d_z,interval 1 year) = '2023-01-01' order by 1;") + contains "QUERY: SELECT `k6`, `k8` FROM `doris_test`.`test1` WHERE ((`k8` = 1))" + } + sql """ set enable_ext_func_pred_pushdown = "true"; """ + // test date_add + sql """ set disable_nereids_rules='NORMALIZE_REWRITE_RULES'; """ + order_qt_date_add_year """ select * from test_zd where date_add(d_z,interval 1 year) = '2023-01-01' order by 1; """ + explain { + sql("select * from test_zd where date_add(d_z,interval 1 year) = '2023-01-01' order by 1;") - contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_add(`d_z`, INTERVAL 1 year) = '2023-01-01')" - } - order_qt_date_add_month """ select * from test_zd where date_add(d_z,interval 1 month) = '2022-02-01' order by 1; """ - explain { - sql("select * from test_zd where date_add(d_z,interval 1 month) = '2022-02-01' order by 1;") + contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_add(`d_z`, INTERVAL 1 year) = '2023-01-01')" + } + order_qt_date_add_month """ select * from test_zd where date_add(d_z,interval 1 month) = '2022-02-01' order by 1; """ + explain { + sql("select * from test_zd where date_add(d_z,interval 1 month) = '2022-02-01' order by 1;") - contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_add(`d_z`, INTERVAL 1 month) = '2022-02-01')" - } - order_qt_date_add_week """ select * from test_zd where date_add(d_z,interval 1 week) = '2022-01-08' order by 1; """ - explain { - sql("select * from test_zd where date_add(d_z,interval 1 week) = '2022-01-08' order by 1;") + contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_add(`d_z`, INTERVAL 1 month) = '2022-02-01')" + } + order_qt_date_add_week """ select * from test_zd where date_add(d_z,interval 1 week) = '2022-01-08' order by 1; """ + explain { + sql("select * from test_zd where date_add(d_z,interval 1 week) = '2022-01-08' order by 1;") - contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_add(`d_z`, INTERVAL 1 week) = '2022-01-08')" - } - order_qt_date_add_day """ select * from test_zd where date_add(d_z,interval 1 day) = '2022-01-02' order by 1; """ - explain { - sql("select * from test_zd where date_add(d_z,interval 1 day) = '2022-01-02' order by 1;") + contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_add(`d_z`, INTERVAL 1 week) = '2022-01-08')" + } + order_qt_date_add_day """ select * from test_zd where date_add(d_z,interval 1 day) = '2022-01-02' order by 1; """ + explain { + sql("select * from test_zd where date_add(d_z,interval 1 day) = '2022-01-02' order by 1;") - contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_add(`d_z`, INTERVAL 1 day) = '2022-01-02')" - } - order_qt_date_add_hour """ select * from test_zd where date_add(d_z,interval 1 hour) = '2022-01-01 01:00:00' order by 1; """ - explain { - sql("select * from test_zd where date_add(d_z,interval 1 hour) = '2022-01-01 01:00:00' order by 1;") + contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_add(`d_z`, INTERVAL 1 day) = '2022-01-02')" + } + order_qt_date_add_hour """ select * from test_zd where date_add(d_z,interval 1 hour) = '2022-01-01 01:00:00' order by 1; """ + explain { + sql("select * from test_zd where date_add(d_z,interval 1 hour) = '2022-01-01 01:00:00' order by 1;") - contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_add(`d_z`, INTERVAL 1 hour) = '2022-01-01 01:00:00')" - } - order_qt_date_add_min """ select * from test_zd where date_add(d_z,interval 1 minute) = '2022-01-01 00:01:00' order by 1; """ - explain { - sql("select * from test_zd where date_add(d_z,interval 1 minute) = '2022-01-01 00:01:00' order by 1;") + contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_add(`d_z`, INTERVAL 1 hour) = '2022-01-01 01:00:00')" + } + order_qt_date_add_min """ select * from test_zd where date_add(d_z,interval 1 minute) = '2022-01-01 00:01:00' order by 1; """ + explain { + sql("select * from test_zd where date_add(d_z,interval 1 minute) = '2022-01-01 00:01:00' order by 1;") - contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_add(`d_z`, INTERVAL 1 minute) = '2022-01-01 00:01:00')" - } - order_qt_date_add_sec """ select * from test_zd where date_add(d_z,interval 1 second) = '2022-01-01 00:00:01' order by 1; """ - explain { - sql("select * from test_zd where date_add(d_z,interval 1 second) = '2022-01-01 00:00:01' order by 1;") + contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_add(`d_z`, INTERVAL 1 minute) = '2022-01-01 00:01:00')" + } + order_qt_date_add_sec """ select * from test_zd where date_add(d_z,interval 1 second) = '2022-01-01 00:00:01' order by 1; """ + explain { + sql("select * from test_zd where date_add(d_z,interval 1 second) = '2022-01-01 00:00:01' order by 1;") - contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_add(`d_z`, INTERVAL 1 second) = '2022-01-01 00:00:01')" - } - // date_sub - order_qt_date_sub_year """ select * from test_zd where date_sub(d_z,interval 1 year) = '2021-01-01' order by 1; """ - explain { - sql("select * from test_zd where date_sub(d_z,interval 1 year) = '2021-01-01' order by 1;") + contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_add(`d_z`, INTERVAL 1 second) = '2022-01-01 00:00:01')" + } + // date_sub + order_qt_date_sub_year """ select * from test_zd where date_sub(d_z,interval 1 year) = '2021-01-01' order by 1; """ + explain { + sql("select * from test_zd where date_sub(d_z,interval 1 year) = '2021-01-01' order by 1;") - contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_sub(`d_z`, INTERVAL 1 year) = '2021-01-01')" - } - order_qt_date_sub_month """ select * from test_zd where date_sub(d_z,interval 1 month) = '2021-12-01' order by 1; """ - explain { - sql("select * from test_zd where date_sub(d_z,interval 1 month) = '2021-12-01' order by 1;") + contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_sub(`d_z`, INTERVAL 1 year) = '2021-01-01')" + } + order_qt_date_sub_month """ select * from test_zd where date_sub(d_z,interval 1 month) = '2021-12-01' order by 1; """ + explain { + sql("select * from test_zd where date_sub(d_z,interval 1 month) = '2021-12-01' order by 1;") - contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_sub(`d_z`, INTERVAL 1 month) = '2021-12-01')" - } - order_qt_date_sub_week """ select * from test_zd where date_sub(d_z,interval 1 week) = '2021-12-25' order by 1; """ - explain { - sql("select * from test_zd where date_sub(d_z,interval 1 week) = '2021-12-25' order by 1;") + contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_sub(`d_z`, INTERVAL 1 month) = '2021-12-01')" + } + order_qt_date_sub_week """ select * from test_zd where date_sub(d_z,interval 1 week) = '2021-12-25' order by 1; """ + explain { + sql("select * from test_zd where date_sub(d_z,interval 1 week) = '2021-12-25' order by 1;") - contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_sub(`d_z`, INTERVAL 1 week) = '2021-12-25')" - } - order_qt_date_sub_day """ select * from test_zd where date_sub(d_z,interval 1 day) = '2021-12-31' order by 1; """ - explain { - sql("select * from test_zd where date_sub(d_z,interval 1 day) = '2021-12-31' order by 1;") + contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_sub(`d_z`, INTERVAL 1 week) = '2021-12-25')" + } + order_qt_date_sub_day """ select * from test_zd where date_sub(d_z,interval 1 day) = '2021-12-31' order by 1; """ + explain { + sql("select * from test_zd where date_sub(d_z,interval 1 day) = '2021-12-31' order by 1;") - contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_sub(`d_z`, INTERVAL 1 day) = '2021-12-31')" - } - order_qt_date_sub_hour """ select * from test_zd where date_sub(d_z,interval 1 hour) = '2021-12-31 23:00:00' order by 1; """ - explain { - sql("select * from test_zd where date_sub(d_z,interval 1 hour) = '2021-12-31 23:00:00' order by 1;") + contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_sub(`d_z`, INTERVAL 1 day) = '2021-12-31')" + } + order_qt_date_sub_hour """ select * from test_zd where date_sub(d_z,interval 1 hour) = '2021-12-31 23:00:00' order by 1; """ + explain { + sql("select * from test_zd where date_sub(d_z,interval 1 hour) = '2021-12-31 23:00:00' order by 1;") - contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_sub(`d_z`, INTERVAL 1 hour) = '2021-12-31 23:00:00')" - } - order_qt_date_sub_min """ select * from test_zd where date_sub(d_z,interval 1 minute) = '2021-12-31 23:59:00' order by 1; """ - explain { - sql("select * from test_zd where date_sub(d_z,interval 1 minute) = '2021-12-31 23:59:00' order by 1;") + contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_sub(`d_z`, INTERVAL 1 hour) = '2021-12-31 23:00:00')" + } + order_qt_date_sub_min """ select * from test_zd where date_sub(d_z,interval 1 minute) = '2021-12-31 23:59:00' order by 1; """ + explain { + sql("select * from test_zd where date_sub(d_z,interval 1 minute) = '2021-12-31 23:59:00' order by 1;") - contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_sub(`d_z`, INTERVAL 1 minute) = '2021-12-31 23:59:00')" - } - order_qt_date_sub_sec """ select * from test_zd where date_sub(d_z,interval 1 second) = '2021-12-31 23:59:59' order by 1; """ - explain { - sql("select * from test_zd where date_sub(d_z,interval 1 second) = '2021-12-31 23:59:59' order by 1;") + contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_sub(`d_z`, INTERVAL 1 minute) = '2021-12-31 23:59:00')" + } + order_qt_date_sub_sec """ select * from test_zd where date_sub(d_z,interval 1 second) = '2021-12-31 23:59:59' order by 1; """ + explain { + sql("select * from test_zd where date_sub(d_z,interval 1 second) = '2021-12-31 23:59:59' order by 1;") - contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_sub(`d_z`, INTERVAL 1 second) = '2021-12-31 23:59:59')" - } - sql """ set disable_nereids_rules=''; """ + contains " QUERY: SELECT `id`, `d_z` FROM `doris_test`.`test_zd` WHERE (date_sub(`d_z`, INTERVAL 1 second) = '2021-12-31 23:59:59')" + } + sql """ set disable_nereids_rules=''; """ - } finally { - res_dbs_log = sql "show databases;" - for(int i = 0;i < res_dbs_log.size();i++) { - def tbs = sql "show tables from `${res_dbs_log[i][0]}`" - log.info( "database = ${res_dbs_log[i][0]} => tables = "+tbs.toString()) - } - } sql """ drop catalog if exists mysql_fun_push_catalog; """ // test insert null diff --git a/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_driver5_catalog.groovy b/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_driver5_catalog.groovy index b6b8095273..ef702f4902 100644 --- a/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_driver5_catalog.groovy +++ b/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_driver5_catalog.groovy @@ -28,7 +28,7 @@ suite("test_mysql_jdbc_driver5_catalog", "p0,external,mysql,external_docker,exte String pwd = '123456'; def tokens = context.config.jdbcUrl.split('/') def url = tokens[0] + "//" + tokens[2] + "/" + "information_schema" + "?" - String catalog_name = "mysql_jdbc_catalog"; + String catalog_name = "mysql_jdbc5_catalog"; String internal_db_name = "regression_test_jdbc_catalog_p0"; String ex_db_name = "doris_test"; String mysql_port = context.config.otherConfigs.get("mysql_57_port"); @@ -79,6 +79,7 @@ suite("test_mysql_jdbc_driver5_catalog", "p0,external,mysql,external_docker,exte "driver_url" = "${driver_url}", "driver_class" = "com.mysql.jdbc.Driver" );""" + order_qt_show_db """ show databases from ${catalog_name}; """ sql """use ${internal_db_name}""" sql """ drop table if exists ${internal_db_name}.${inDorisTable} """ diff --git a/regression-test/suites/external_table_p0/jdbc/test_oracle_jdbc_catalog.groovy b/regression-test/suites/external_table_p0/jdbc/test_oracle_jdbc_catalog.groovy index 226563beaa..742bf8b87d 100644 --- a/regression-test/suites/external_table_p0/jdbc/test_oracle_jdbc_catalog.groovy +++ b/regression-test/suites/external_table_p0/jdbc/test_oracle_jdbc_catalog.groovy @@ -47,6 +47,7 @@ suite("test_oracle_jdbc_catalog", "p0,external,oracle,external_docker,external_d "driver_url" = "${driver_url}", "driver_class" = "oracle.jdbc.driver.OracleDriver" );""" + order_qt_show_db """ show databases from ${catalog_name}; """ sql """use ${internal_db_name}""" sql """ drop table if exists ${internal_db_name}.${inDorisTable} """ sql """ diff --git a/regression-test/suites/external_table_p0/jdbc/test_pg_jdbc_catalog.groovy b/regression-test/suites/external_table_p0/jdbc/test_pg_jdbc_catalog.groovy index 9546b12c2a..a35fd3f1d6 100644 --- a/regression-test/suites/external_table_p0/jdbc/test_pg_jdbc_catalog.groovy +++ b/regression-test/suites/external_table_p0/jdbc/test_pg_jdbc_catalog.groovy @@ -45,6 +45,7 @@ suite("test_pg_jdbc_catalog", "p0,external,pg,external_docker,external_docker_pg "driver_url" = "${driver_url}", "driver_class" = "org.postgresql.Driver" );""" + order_qt_show_db """ show databases from ${catalog_name}; """ sql """use ${internal_db_name}""" sql """ drop table if exists ${internal_db_name}.${inDorisTable} """ sql """ 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 f297e0b51b..974e5dc697 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 @@ -39,6 +39,7 @@ suite("test_sqlserver_jdbc_catalog", "p0,external,sqlserver,external_docker,exte "driver_url" = "${driver_url}", "driver_class" = "com.microsoft.sqlserver.jdbc.SQLServerDriver" );""" + order_qt_show_db """ show databases from ${catalog_name}; """ sql """drop database if exists ${internal_db_name}""" sql """create database if not exists ${internal_db_name}""" sql """use ${internal_db_name}""" @@ -53,60 +54,47 @@ suite("test_sqlserver_jdbc_catalog", "p0,external,sqlserver,external_docker,exte """ sql """ switch ${catalog_name} """ - def res_dbs_log = sql "show databases;" - for(int i = 0;i < res_dbs_log.size();i++) { - def tbs = sql "show tables from `${res_dbs_log[i][0]}`" - log.info( "database = ${res_dbs_log[i][0]} => tables = "+tbs.toString()) - } - try { - sql """ use ${ex_db_name} """ + sql """ use ${ex_db_name} """ - order_qt_test0 """ select * from student order by id; """ - sql """ insert into internal.${internal_db_name}.${inDorisTable} select * from student; """ - order_qt_in_tb """ select id, name, age from internal.${internal_db_name}.${inDorisTable} order by id; """ + order_qt_test0 """ select * from student order by id; """ + sql """ insert into internal.${internal_db_name}.${inDorisTable} select * from student; """ + order_qt_in_tb """ select id, name, age from internal.${internal_db_name}.${inDorisTable} order by id; """ - order_qt_test1 """ select * from test_int order by id; """ - order_qt_test2 """ select * from test_float order by id; """ - order_qt_test3 """ select * from test_char order by id; """ - order_qt_test5 """ select * from test_time order by id; """ - order_qt_test6 """ select * from test_money order by id; """ - order_qt_test7 """ select * from test_decimal order by id; """ - order_qt_test8 """ select * from test_text order by id; """ - order_qt_dt """ select * from DateAndTime; """ - order_qt_filter1 """ select * from test_char where 1 = 1 order by id; """ - 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_filter4 """ select * from student where name not like '%doris%' order by id; """ - order_qt_filter4_old """ select /*+ SET_VAR(enable_nereids_planner=false) */ * from student where name not like '%doris%' 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; """ - 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; """ - order_qt_desc_timestamp """desc dbo.test_timestamp; """ - order_qt_query_timestamp """select count(timestamp_col) from dbo.test_timestamp; """ + order_qt_test1 """ select * from test_int order by id; """ + order_qt_test2 """ select * from test_float order by id; """ + order_qt_test3 """ select * from test_char order by id; """ + order_qt_test5 """ select * from test_time order by id; """ + order_qt_test6 """ select * from test_money order by id; """ + order_qt_test7 """ select * from test_decimal order by id; """ + order_qt_test8 """ select * from test_text order by id; """ + order_qt_dt """ select * from DateAndTime; """ + order_qt_filter1 """ select * from test_char where 1 = 1 order by id; """ + 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_filter4 """ select * from student where name not like '%doris%' order by id; """ + order_qt_filter4_old """ select /*+ SET_VAR(enable_nereids_planner=false) */ * from student where name not like '%doris%' 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; """ + 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; """ + order_qt_desc_timestamp """desc dbo.test_timestamp; """ + order_qt_query_timestamp """select count(timestamp_col) from dbo.test_timestamp; """ - sql """ drop catalog if exists ${catalog_name} """ + sql """ drop catalog if exists ${catalog_name} """ - sql """ create catalog if not exists ${catalog_name} properties( - "type"="jdbc", - "user"="sa", - "password"="Doris123456", - "jdbc_url" = "jdbc:sqlserver://${externalEnvIp}:${sqlserver_port};encrypt=false;databaseName=doris_test;trustServerCertificate=false", - "driver_url" = "${driver_url}", - "driver_class" = "com.microsoft.sqlserver.jdbc.SQLServerDriver" - );""" + sql """ create catalog if not exists ${catalog_name} properties( + "type"="jdbc", + "user"="sa", + "password"="Doris123456", + "jdbc_url" = "jdbc:sqlserver://${externalEnvIp}:${sqlserver_port};encrypt=false;databaseName=doris_test;trustServerCertificate=false", + "driver_url" = "${driver_url}", + "driver_class" = "com.microsoft.sqlserver.jdbc.SQLServerDriver" + );""" - order_qt_sql """ show databases from ${catalog_name} """ - } finally { - res_dbs_log = sql "show databases;" - for(int i = 0;i < res_dbs_log.size();i++) { - def tbs = sql "show tables from `${res_dbs_log[i][0]}`" - log.info( "database = ${res_dbs_log[i][0]} => tables = "+tbs.toString()) - } - } + order_qt_sql """ show databases from ${catalog_name} """ sql """ drop catalog if exists ${catalog_name} """ }