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 a0cba187e..9b2f1029e 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 @@ -81,4 +81,5 @@ public abstract class BaseDbAdaptor implements DbAdaptor { connectionInfo.getUserName(), connectionInfo.getPassword()); return connection.getMetaData(); } + } 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 e10969fef..44e120058 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 @@ -1,12 +1,15 @@ package com.tencent.supersonic.headless.core.adaptor.db; +import com.google.common.collect.Lists; import com.tencent.supersonic.common.pojo.Constants; import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum; -import lombok.extern.slf4j.Slf4j; - +import com.tencent.supersonic.headless.api.pojo.DBColumn; +import com.tencent.supersonic.headless.core.pojo.ConnectInfo; import java.sql.DatabaseMetaData; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.List; +import lombok.extern.slf4j.Slf4j; @Slf4j public class H2Adaptor extends BaseDbAdaptor { @@ -41,6 +44,20 @@ public class H2Adaptor extends BaseDbAdaptor { return metaData.getTables(schemaName, null, null, new String[] {"TABLE", "VIEW"}); } + public List getColumns(ConnectInfo connectInfo, String schemaName, String tableName) + throws SQLException { + List dbColumns = Lists.newArrayList(); + DatabaseMetaData metaData = getDatabaseMetaData(connectInfo); + ResultSet columns = metaData.getColumns(schemaName, null, tableName, null); + while (columns.next()) { + String columnName = columns.getString("COLUMN_NAME"); + String dataType = columns.getString("TYPE_NAME"); + String remarks = columns.getString("REMARKS"); + dbColumns.add(new DBColumn(columnName, dataType, remarks)); + } + return dbColumns; + } + @Override public String functionNameCorrector(String sql) { return sql;