提交 e934e485 authored 作者: taojinlong's avatar taojinlong

fix: 【数据集】识别doris类型错误

上级 1d1525ed
...@@ -15,9 +15,9 @@ public abstract class DatasourceProvider { ...@@ -15,9 +15,9 @@ public abstract class DatasourceProvider {
abstract public List<String> getTables(DatasourceRequest datasourceRequest) throws Exception; abstract public List<String> getTables(DatasourceRequest datasourceRequest) throws Exception;
public List<TableFiled> getTableFileds(DatasourceRequest datasourceRequest) throws Exception { // public List<TableFiled> getTableFileds(DatasourceRequest datasourceRequest) throws Exception {
return new ArrayList<>(); // return new ArrayList<>();
}; // };
public void checkStatus(DatasourceRequest datasourceRequest) throws Exception { public void checkStatus(DatasourceRequest datasourceRequest) throws Exception {
getData(datasourceRequest); getData(datasourceRequest);
......
...@@ -211,17 +211,17 @@ public class EsProvider extends DatasourceProvider { ...@@ -211,17 +211,17 @@ public class EsProvider extends DatasourceProvider {
return new ArrayList<>(); return new ArrayList<>();
} }
@Override // @Override
public List<TableFiled> getTableFileds(DatasourceRequest datasourceRequest) throws Exception { // public List<TableFiled> getTableFileds(DatasourceRequest datasourceRequest) throws Exception {
List<TableFiled> tableFileds = new ArrayList<>(); // List<TableFiled> tableFileds = new ArrayList<>();
try { // try {
String response = exexQuery(datasourceRequest, "desc " + datasourceRequest.getTable(), "?format=json"); // String response = exexQuery(datasourceRequest, "desc " + datasourceRequest.getTable(), "?format=json");
tableFileds = fetchResultField(response); // tableFileds = fetchResultField(response);
} catch (Exception e) { // } catch (Exception e) {
DataEaseException.throwException(e); // DataEaseException.throwException(e);
} // }
return tableFileds; // return tableFileds;
} // }
@Override @Override
public void checkStatus(DatasourceRequest datasourceRequest) throws Exception { public void checkStatus(DatasourceRequest datasourceRequest) throws Exception {
......
...@@ -267,46 +267,53 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -267,46 +267,53 @@ public class JdbcProvider extends DatasourceProvider {
return new ArrayList<>(); return new ArrayList<>();
} }
@Override // @Override
public List<TableFiled> getTableFileds(DatasourceRequest datasourceRequest) throws Exception { // public List<TableFiled> getTableFileds(DatasourceRequest datasourceRequest) throws Exception {
List<TableFiled> list = new LinkedList<>(); // List<TableFiled> list = new LinkedList<>();
Connection connection = null; // Connection connection = null;
try { // ResultSet resultSet = null;
connection = getConnectionFromPool(datasourceRequest); // try {
DatabaseMetaData databaseMetaData = connection.getMetaData(); // connection = getConnectionFromPool(datasourceRequest);
ResultSet resultSet = databaseMetaData.getColumns(null, "%", datasourceRequest.getTable(), "%"); // DatabaseMetaData databaseMetaData = connection.getMetaData();
while (resultSet.next()) { // resultSet = databaseMetaData.getColumns(null, "%", datasourceRequest.getTable(), "%");
String tableName = resultSet.getString("TABLE_NAME"); // while (resultSet.next()) {
String database = null; // String tableName = resultSet.getString("TABLE_NAME");
if(datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.ck.name())){ // String database = null;
database = resultSet.getString("TABLE_SCHEM"); // if(datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.ck.name())){
}else { // database = resultSet.getString("TABLE_SCHEM");
database = resultSet.getString("TABLE_CAT"); // }else {
} // database = resultSet.getString("TABLE_CAT");
if(database != null){ // }
if (tableName.equals(datasourceRequest.getTable()) && database.equalsIgnoreCase(getDatabase(datasourceRequest))) { // if(database != null){
TableFiled tableFiled = getTableFiled(resultSet, datasourceRequest); // if (tableName.equals(datasourceRequest.getTable()) && database.equalsIgnoreCase(getDatabase(datasourceRequest))) {
list.add(tableFiled); // TableFiled tableFiled = getTableFiled(resultSet, datasourceRequest);
} // list.add(tableFiled);
}else { // }
if (tableName.equals(datasourceRequest.getTable())) { // }else {
TableFiled tableFiled = getTableFiled(resultSet, datasourceRequest); // if (tableName.equals(datasourceRequest.getTable())) {
list.add(tableFiled); // TableFiled tableFiled = getTableFiled(resultSet, datasourceRequest);
} // list.add(tableFiled);
} // }
} // }
resultSet.close(); // }
} catch (SQLException e) { // resultSet.close();
DataEaseException.throwException(e); //
} catch (Exception e) { // Statement stat = connection.createStatement();
DataEaseException.throwException(e); // resultSet = stat.executeQuery(datasourceRequest.getQuery());
} finally { // return fetchResultField(resultSet, datasourceRequest);
if(connection != null){ //
connection.close(); //
} // } catch (SQLException e) {
} // DataEaseException.throwException(e);
return list; // } catch (Exception e) {
} // DataEaseException.throwException(e);
// } finally {
// if(connection != null){
// connection.close();
// }
// }
// return list;
// }
private TableFiled getTableFiled(ResultSet resultSet, DatasourceRequest datasourceRequest) throws SQLException { private TableFiled getTableFiled(ResultSet resultSet, DatasourceRequest datasourceRequest) throws SQLException {
TableFiled tableFiled = new TableFiled(); TableFiled tableFiled = new TableFiled();
......
...@@ -81,4 +81,8 @@ public abstract class QueryProvider { ...@@ -81,4 +81,8 @@ public abstract class QueryProvider {
tableObj.setTableName(schema + "." + tableObj.getTableName()); tableObj.setTableName(schema + "." + tableObj.getTableName());
} }
} }
public String convertTableToSql(String tableName, Datasource ds){
return "select * from tableName";
}
} }
...@@ -724,6 +724,11 @@ public class CKQueryProvider extends QueryProvider { ...@@ -724,6 +724,11 @@ public class CKQueryProvider extends QueryProvider {
return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields, null); return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields, null);
} }
@Override
public String convertTableToSql(String tableName, Datasource ds){
return "SELECT * FROM " + String.format(CKConstants.KEYWORD_TABLE, tableName);
}
public String transMysqlFilterTerm(String term) { public String transMysqlFilterTerm(String term) {
switch (term) { switch (term) {
case "eq": case "eq":
......
...@@ -10,6 +10,7 @@ import io.dataease.dto.chart.ChartViewFieldDTO; ...@@ -10,6 +10,7 @@ import io.dataease.dto.chart.ChartViewFieldDTO;
import io.dataease.dto.sqlObj.SQLObj; import io.dataease.dto.sqlObj.SQLObj;
import io.dataease.provider.QueryProvider; import io.dataease.provider.QueryProvider;
import io.dataease.provider.SQLConstants; import io.dataease.provider.SQLConstants;
import io.dataease.provider.ck.CKConstants;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -698,6 +699,11 @@ public class DorisQueryProvider extends QueryProvider { ...@@ -698,6 +699,11 @@ public class DorisQueryProvider extends QueryProvider {
return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields, null); return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields, null);
} }
@Override
public String convertTableToSql(String tableName, Datasource ds){
return createSQLPreview("SELECT * FROM " + String.format(DorisConstants.KEYWORD_TABLE, tableName), null);
}
private String sqlFix(String sql) { private String sqlFix(String sql) {
if (sql.lastIndexOf(";") == (sql.length() - 1)) { if (sql.lastIndexOf(";") == (sql.length() - 1)) {
sql = sql.substring(0, sql.length() - 1); sql = sql.substring(0, sql.length() - 1);
......
...@@ -11,6 +11,7 @@ import io.dataease.dto.chart.ChartViewFieldDTO; ...@@ -11,6 +11,7 @@ import io.dataease.dto.chart.ChartViewFieldDTO;
import io.dataease.dto.sqlObj.SQLObj; import io.dataease.dto.sqlObj.SQLObj;
import io.dataease.provider.QueryProvider; import io.dataease.provider.QueryProvider;
import io.dataease.provider.SQLConstants; import io.dataease.provider.SQLConstants;
import io.dataease.provider.ck.CKConstants;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -653,6 +654,11 @@ public class EsQueryProvider extends QueryProvider { ...@@ -653,6 +654,11 @@ public class EsQueryProvider extends QueryProvider {
return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields, null); return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields, null);
} }
@Override
public String convertTableToSql(String tableName, Datasource ds){
return createSQLPreview("SELECT * FROM " + String.format(EsSqlLConstants.KEYWORD_TABLE, tableName), null);
}
public String transMysqlFilterTerm(String term) { public String transMysqlFilterTerm(String term) {
switch (term) { switch (term) {
case "eq": case "eq":
......
...@@ -10,6 +10,7 @@ import io.dataease.dto.chart.ChartViewFieldDTO; ...@@ -10,6 +10,7 @@ import io.dataease.dto.chart.ChartViewFieldDTO;
import io.dataease.dto.sqlObj.SQLObj; import io.dataease.dto.sqlObj.SQLObj;
import io.dataease.provider.QueryProvider; import io.dataease.provider.QueryProvider;
import io.dataease.provider.SQLConstants; import io.dataease.provider.SQLConstants;
import io.dataease.provider.es.EsSqlLConstants;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -692,6 +693,11 @@ public class MysqlQueryProvider extends QueryProvider { ...@@ -692,6 +693,11 @@ public class MysqlQueryProvider extends QueryProvider {
return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields, null); return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields, null);
} }
@Override
public String convertTableToSql(String tableName, Datasource ds){
return createSQLPreview("SELECT * FROM " + String.format(MySQLConstants.KEYWORD_TABLE, tableName), null);
}
public String transMysqlFilterTerm(String term) { public String transMysqlFilterTerm(String term) {
switch (term) { switch (term) {
case "eq": case "eq":
......
...@@ -13,6 +13,7 @@ import io.dataease.dto.chart.ChartViewFieldDTO; ...@@ -13,6 +13,7 @@ import io.dataease.dto.chart.ChartViewFieldDTO;
import io.dataease.dto.sqlObj.SQLObj; import io.dataease.dto.sqlObj.SQLObj;
import io.dataease.provider.QueryProvider; import io.dataease.provider.QueryProvider;
import io.dataease.provider.SQLConstants; import io.dataease.provider.SQLConstants;
import io.dataease.provider.mysql.MySQLConstants;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -743,6 +744,13 @@ public class OracleQueryProvider extends QueryProvider { ...@@ -743,6 +744,13 @@ public class OracleQueryProvider extends QueryProvider {
return MessageFormat.format("SELECT {0} FROM {1}", StringUtils.join(array, ","), " (" + sqlFix(sql) + ") DE_TMP "); return MessageFormat.format("SELECT {0} FROM {1}", StringUtils.join(array, ","), " (" + sqlFix(sql) + ") DE_TMP ");
} }
@Override
public String convertTableToSql(String tableName, Datasource ds){
String schema = new Gson().fromJson(ds.getConfiguration(), JdbcDTO.class).getSchema();
schema = String.format( OracleConstants.KEYWORD_TABLE, schema);
return createSQLPreview("SELECT * FROM " + schema + "." + String.format(OracleConstants.KEYWORD_TABLE, tableName), null);
}
public String transMysqlFilterTerm(String term) { public String transMysqlFilterTerm(String term) {
switch (term) { switch (term) {
case "eq": case "eq":
......
...@@ -13,6 +13,8 @@ import io.dataease.dto.chart.ChartViewFieldDTO; ...@@ -13,6 +13,8 @@ import io.dataease.dto.chart.ChartViewFieldDTO;
import io.dataease.dto.sqlObj.SQLObj; import io.dataease.dto.sqlObj.SQLObj;
import io.dataease.provider.QueryProvider; import io.dataease.provider.QueryProvider;
import io.dataease.provider.SQLConstants; import io.dataease.provider.SQLConstants;
import io.dataease.provider.mysql.MySQLConstants;
import io.dataease.provider.oracle.OracleConstants;
import io.dataease.provider.sqlserver.SqlServerSQLConstants; import io.dataease.provider.sqlserver.SqlServerSQLConstants;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
...@@ -720,6 +722,13 @@ public class PgQueryProvider extends QueryProvider { ...@@ -720,6 +722,13 @@ public class PgQueryProvider extends QueryProvider {
return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields, null); return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields, null);
} }
@Override
public String convertTableToSql(String tableName, Datasource ds){
String schema = new Gson().fromJson(ds.getConfiguration(), JdbcDTO.class).getSchema();
schema = String.format( PgConstants.KEYWORD_TABLE, schema);
return createSQLPreview("SELECT * FROM " + schema + "." + String.format(PgConstants.KEYWORD_TABLE, tableName), null);
}
public String transMysqlFilterTerm(String term) { public String transMysqlFilterTerm(String term) {
switch (term) { switch (term) {
case "eq": case "eq":
......
...@@ -15,6 +15,7 @@ import io.dataease.dto.sqlObj.SQLObj; ...@@ -15,6 +15,7 @@ import io.dataease.dto.sqlObj.SQLObj;
import io.dataease.provider.QueryProvider; import io.dataease.provider.QueryProvider;
import io.dataease.provider.SQLConstants; import io.dataease.provider.SQLConstants;
import io.dataease.provider.oracle.OracleConstants; import io.dataease.provider.oracle.OracleConstants;
import io.dataease.provider.pg.PgConstants;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -678,6 +679,13 @@ public class SqlserverQueryProvider extends QueryProvider { ...@@ -678,6 +679,13 @@ public class SqlserverQueryProvider extends QueryProvider {
return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields, null); return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields, null);
} }
@Override
public String convertTableToSql(String tableName, Datasource ds){
String schema = new Gson().fromJson(ds.getConfiguration(), JdbcDTO.class).getSchema();
schema = String.format( SqlServerSQLConstants.KEYWORD_TABLE, schema);
return createSQLPreview("SELECT * FROM " + schema + "." + String.format(SqlServerSQLConstants.KEYWORD_TABLE, tableName), null);
}
public String transMysqlFilterTerm(String term) { public String transMysqlFilterTerm(String term) {
switch (term) { switch (term) {
case "eq": case "eq":
......
...@@ -387,8 +387,9 @@ public class DataSetTableService { ...@@ -387,8 +387,9 @@ public class DataSetTableService {
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType()); DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType());
DatasourceRequest datasourceRequest = new DatasourceRequest(); DatasourceRequest datasourceRequest = new DatasourceRequest();
datasourceRequest.setDatasource(ds); datasourceRequest.setDatasource(ds);
datasourceRequest.setTable(new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class).getTable()); QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
return datasourceProvider.getTableFileds(datasourceRequest); datasourceRequest.setQuery(qp.convertTableToSql(new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class).getTable(), ds));
return datasourceProvider.fetchResultField(datasourceRequest);
} }
public Map<String, List<DatasetTableField>> getFieldsFromDE(DataSetTableRequest dataSetTableRequest) throws Exception { public Map<String, List<DatasetTableField>> getFieldsFromDE(DataSetTableRequest dataSetTableRequest) throws Exception {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论