diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/SemanticParseInfo.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/SemanticParseInfo.java index 9a6afefac..d7c9df4d8 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/SemanticParseInfo.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/SemanticParseInfo.java @@ -109,7 +109,8 @@ public class SemanticParseInfo implements Serializable { } } - private static class SchemaNameLengthComparator implements Comparator, Serializable { + private static class SchemaNameLengthComparator + implements Comparator, Serializable { @Override public int compare(SchemaElement o1, SchemaElement o2) { if (o1.getOrder() != o2.getOrder()) { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/BaseDbAdaptor.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/BaseDbAdaptor.java index 6c661cf2f..ea8e61db6 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/BaseDbAdaptor.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/BaseDbAdaptor.java @@ -19,8 +19,8 @@ public abstract class BaseDbAdaptor implements DbAdaptor { public List getCatalogs(ConnectInfo connectInfo) throws SQLException { List catalogs = Lists.newArrayList(); try (Connection con = getConnection(connectInfo); - Statement st = con.createStatement(); - ResultSet rs = st.executeQuery("SHOW CATALOGS")) { + Statement st = con.createStatement(); + ResultSet rs = st.executeQuery("SHOW CATALOGS")) { while (rs.next()) { catalogs.add(rs.getString(1)); } @@ -74,7 +74,8 @@ public abstract class BaseDbAdaptor implements DbAdaptor { List tablesAndViews = new ArrayList<>(); try { - try(ResultSet resultSet = getResultSet(schemaName, getDatabaseMetaData(connectionInfo))) { + try (ResultSet resultSet = + getResultSet(schemaName, getDatabaseMetaData(connectionInfo))) { while (resultSet.next()) { String name = resultSet.getString("TABLE_NAME"); tablesAndViews.add(name); @@ -93,11 +94,12 @@ public abstract class BaseDbAdaptor implements DbAdaptor { - public List getColumns(ConnectInfo connectInfo, String catalog, String schemaName, String tableName) - throws SQLException { + public List getColumns(ConnectInfo connectInfo, String catalog, String schemaName, + String tableName) throws SQLException { List dbColumns = new ArrayList<>(); // 确保连接会自动关闭 - try (ResultSet columns = getDatabaseMetaData(connectInfo).getColumns(catalog, schemaName, tableName, null)) { + try (ResultSet columns = + getDatabaseMetaData(connectInfo).getColumns(catalog, schemaName, tableName, null)) { while (columns.next()) { String columnName = columns.getString("COLUMN_NAME"); String dataType = columns.getString("TYPE_NAME"); diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/DbAdaptor.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/DbAdaptor.java index b90cadf1e..18c91c3a5 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/DbAdaptor.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/DbAdaptor.java @@ -21,8 +21,8 @@ public interface DbAdaptor { List getTables(ConnectInfo connectInfo, String catalog, String schemaName) throws SQLException; - List getColumns(ConnectInfo connectInfo, String catalog, String schemaName, String tableName) - throws SQLException; + List getColumns(ConnectInfo connectInfo, String catalog, String schemaName, + String tableName) throws SQLException; FieldType classifyColumnType(String typeName); } diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/DuckdbAdaptor.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/DuckdbAdaptor.java index b4359103a..0d3481faf 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/DuckdbAdaptor.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/DuckdbAdaptor.java @@ -19,8 +19,8 @@ public class DuckdbAdaptor extends DefaultDbAdaptor { return metaData.getTables(schemaName, null, null, new String[] {"TABLE", "VIEW"}); } - public List getColumns(ConnectInfo connectInfo, String catalog, String schemaName, String tableName) - throws SQLException { + public List getColumns(ConnectInfo connectInfo, String catalog, String schemaName, + String tableName) throws SQLException { List dbColumns = Lists.newArrayList(); DatabaseMetaData metaData = getDatabaseMetaData(connectInfo); ResultSet columns = metaData.getColumns(schemaName, null, tableName, null); diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/H2Adaptor.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/H2Adaptor.java index 917a63b28..c3436f756 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/H2Adaptor.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/H2Adaptor.java @@ -46,8 +46,8 @@ public class H2Adaptor extends BaseDbAdaptor { return metaData.getTables(schemaName, null, null, new String[] {"TABLE", "VIEW"}); } - public List getColumns(ConnectInfo connectInfo, String catalog, String schemaName, String tableName) - throws SQLException { + public List getColumns(ConnectInfo connectInfo, String catalog, String schemaName, + String tableName) throws SQLException { List dbColumns = Lists.newArrayList(); DatabaseMetaData metaData = getDatabaseMetaData(connectInfo); ResultSet columns = metaData.getColumns(schemaName, null, tableName, null); diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/KyuubiAdaptor.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/KyuubiAdaptor.java index ce7958717..89ef7507c 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/KyuubiAdaptor.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/KyuubiAdaptor.java @@ -46,13 +46,13 @@ public class KyuubiAdaptor extends BaseDbAdaptor { @Override public List getDBs(ConnectInfo connectionInfo, String catalog) throws SQLException { List dbs = Lists.newArrayList(); - final StringBuilder sql = new StringBuilder("SHOW DATABASES"); + final StringBuilder sql = new StringBuilder("SHOW DATABASES"); if (StringUtils.isNotBlank(catalog)) { sql.append(" IN ").append(catalog); } try (Connection con = getConnection(connectionInfo); - Statement st = con.createStatement(); - ResultSet rs = st.executeQuery(sql.toString())) { + Statement st = con.createStatement(); + ResultSet rs = st.executeQuery(sql.toString())) { while (rs.next()) { dbs.add(rs.getString(1)); } @@ -61,11 +61,13 @@ public class KyuubiAdaptor extends BaseDbAdaptor { } @Override - public List getTables(ConnectInfo connectInfo, String catalog, String schemaName) throws SQLException { + public List getTables(ConnectInfo connectInfo, String catalog, String schemaName) + throws SQLException { List tablesAndViews = new ArrayList<>(); try { - try (ResultSet resultSet = getDatabaseMetaData(connectInfo).getTables(catalog, schemaName, null, new String[] {"TABLE", "VIEW"})) { + try (ResultSet resultSet = getDatabaseMetaData(connectInfo).getTables(catalog, + schemaName, null, new String[] {"TABLE", "VIEW"})) { while (resultSet.next()) { String name = resultSet.getString("TABLE_NAME"); tablesAndViews.add(name); diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/PostgresqlAdaptor.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/PostgresqlAdaptor.java index 1b9658ee6..16b4c293c 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/PostgresqlAdaptor.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/PostgresqlAdaptor.java @@ -99,8 +99,8 @@ public class PostgresqlAdaptor extends BaseDbAdaptor { return tablesAndViews; } - public List getColumns(ConnectInfo connectInfo, String catalog, String schemaName, String tableName) - throws SQLException { + public List getColumns(ConnectInfo connectInfo, String catalog, String schemaName, + String tableName) throws SQLException { List dbColumns = Lists.newArrayList(); DatabaseMetaData metaData = getDatabaseMetaData(connectInfo); ResultSet columns = metaData.getColumns(null, null, tableName, null); diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/PrestoAdaptor.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/PrestoAdaptor.java index c80483ee7..45b49645b 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/PrestoAdaptor.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/PrestoAdaptor.java @@ -46,13 +46,13 @@ public class PrestoAdaptor extends BaseDbAdaptor { @Override public List getDBs(ConnectInfo connectionInfo, String catalog) throws SQLException { List dbs = Lists.newArrayList(); - final StringBuilder sql = new StringBuilder("SHOW SCHEMAS"); + final StringBuilder sql = new StringBuilder("SHOW SCHEMAS"); if (StringUtils.isNotBlank(catalog)) { sql.append(" IN ").append(catalog); } try (Connection con = getConnection(connectionInfo); - Statement st = con.createStatement(); - ResultSet rs = st.executeQuery(sql.toString())) { + Statement st = con.createStatement(); + ResultSet rs = st.executeQuery(sql.toString())) { while (rs.next()) { dbs.add(rs.getString(1)); } @@ -64,16 +64,16 @@ public class PrestoAdaptor extends BaseDbAdaptor { public List getTables(ConnectInfo connectInfo, String catalog, String schemaName) throws SQLException { List tablesAndViews = new ArrayList<>(); - final StringBuilder sql = new StringBuilder("SHOW TABLES"); + final StringBuilder sql = new StringBuilder("SHOW TABLES"); if (StringUtils.isNotBlank(catalog)) { sql.append(" IN ").append(catalog).append(".").append(schemaName); - }else { + } else { sql.append(" IN ").append(schemaName); } try (Connection con = getConnection(connectInfo); - Statement st = con.createStatement(); - ResultSet rs = st.executeQuery(sql.toString())) { + Statement st = con.createStatement(); + ResultSet rs = st.executeQuery(sql.toString())) { while (rs.next()) { tablesAndViews.add(rs.getString(1)); } diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/StarrocksAdaptor.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/StarrocksAdaptor.java index 75824cf42..b513ce41b 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/StarrocksAdaptor.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/StarrocksAdaptor.java @@ -19,13 +19,13 @@ public class StarrocksAdaptor extends MysqlAdaptor { @Override public List getDBs(ConnectInfo connectionInfo, String catalog) throws SQLException { List dbs = Lists.newArrayList(); - final StringBuilder sql = new StringBuilder("SHOW DATABASES"); + final StringBuilder sql = new StringBuilder("SHOW DATABASES"); if (StringUtils.isNotBlank(catalog)) { sql.append(" IN ").append(catalog); } try (Connection con = getConnection(connectionInfo); - Statement st = con.createStatement(); - ResultSet rs = st.executeQuery(sql.toString())) { + Statement st = con.createStatement(); + ResultSet rs = st.executeQuery(sql.toString())) { while (rs.next()) { dbs.add(rs.getString(1)); } @@ -37,16 +37,16 @@ public class StarrocksAdaptor extends MysqlAdaptor { public List getTables(ConnectInfo connectInfo, String catalog, String schemaName) throws SQLException { List tablesAndViews = new ArrayList<>(); - final StringBuilder sql = new StringBuilder("SHOW TABLES"); + final StringBuilder sql = new StringBuilder("SHOW TABLES"); if (StringUtils.isNotBlank(catalog)) { sql.append(" IN ").append(catalog).append(".").append(schemaName); - }else { + } else { sql.append(" IN ").append(schemaName); } try (Connection con = getConnection(connectInfo); - Statement st = con.createStatement(); - ResultSet rs = st.executeQuery(sql.toString())) { + Statement st = con.createStatement(); + ResultSet rs = st.executeQuery(sql.toString())) { while (rs.next()) { tablesAndViews.add(rs.getString(1)); } @@ -55,12 +55,11 @@ public class StarrocksAdaptor extends MysqlAdaptor { } @Override - public List getColumns(ConnectInfo connectInfo, String catalog, String schemaName, String tableName) - throws SQLException { + public List getColumns(ConnectInfo connectInfo, String catalog, String schemaName, + String tableName) throws SQLException { List dbColumns = new ArrayList<>(); - try (Connection con = getConnection(connectInfo); - Statement st = con.createStatement()) { + try (Connection con = getConnection(connectInfo); Statement st = con.createStatement()) { // 切换到指定的 catalog(或 database/schema),这在某些 SQL 方言中很重要 if (StringUtils.isNotBlank(catalog)) { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/JdbcDataSourceUtils.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/JdbcDataSourceUtils.java index 4859c20ab..1a563c633 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/JdbcDataSourceUtils.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/JdbcDataSourceUtils.java @@ -41,17 +41,19 @@ public class JdbcDataSourceUtils { return false; } // presto/trino ssl=false connection need password - if (database.getUrl().startsWith("jdbc:presto") || database.getUrl().startsWith("jdbc:trino")) { + if (database.getUrl().startsWith("jdbc:presto") + || database.getUrl().startsWith("jdbc:trino")) { if (database.getUrl().toLowerCase().contains("ssl=false")) { - try (Connection con = DriverManager.getConnection(database.getUrl(), database.getUsername(), null)) { + try (Connection con = DriverManager.getConnection(database.getUrl(), + database.getUsername(), null)) { return con != null; } catch (SQLException e) { log.error(e.toString(), e); } } - }else { - try (Connection con = DriverManager.getConnection(database.getUrl(), database.getUsername(), - database.passwordDecrypt())) { + } else { + try (Connection con = DriverManager.getConnection(database.getUrl(), + database.getUsername(), database.passwordDecrypt())) { return con != null; } catch (SQLException e) { log.error(e.toString(), e); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/DatabaseController.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/DatabaseController.java index 834eff5bc..88e7d6473 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/DatabaseController.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/DatabaseController.java @@ -96,9 +96,8 @@ public class DatabaseController { @RequestMapping("/getColumnsByName") public List getColumnsByName(@RequestParam("databaseId") Long databaseId, - @RequestParam(name="catalog", required = false) String catalog, - @RequestParam("db") String db, - @RequestParam("table") String table) + @RequestParam(name = "catalog", required = false) String catalog, + @RequestParam("db") String db, @RequestParam("table") String table) throws SQLException { return databaseService.getColumns(databaseId, catalog, db, table); } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DatabaseServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DatabaseServiceImpl.java index fe73b8bb7..b26aac388 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DatabaseServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DatabaseServiceImpl.java @@ -233,8 +233,8 @@ public class DatabaseServiceImpl extends ServiceImpl columns = - getColumns(modelBuildReq.getDatabaseId(), modelBuildReq.getCatalog(), modelBuildReq.getDb(), table); + List columns = getColumns(modelBuildReq.getDatabaseId(), + modelBuildReq.getCatalog(), modelBuildReq.getDb(), table); dbColumnMap.put(table, columns); } } @@ -242,15 +242,17 @@ public class DatabaseServiceImpl extends ServiceImpl getColumns(Long id, String catalog, String db, String table) throws SQLException { + public List getColumns(Long id, String catalog, String db, String table) + throws SQLException { DatabaseResp databaseResp = getDatabase(id); return getColumns(databaseResp, catalog, db, table); } - public List getColumns(DatabaseResp databaseResp, String catalog, String db, String table) - throws SQLException { + public List getColumns(DatabaseResp databaseResp, String catalog, String db, + String table) throws SQLException { DbAdaptor engineAdaptor = DbAdaptorFactory.getEngineAdaptor(databaseResp.getType()); - return engineAdaptor.getColumns(DatabaseConverter.getConnectInfo(databaseResp), catalog, db, table); + return engineAdaptor.getColumns(DatabaseConverter.getConnectInfo(databaseResp), catalog, db, + table); } @Override