fix: SQL变量误报错 #6624
This commit is contained in:
parent
2062cfd4e6
commit
c22e25ec00
@ -34,7 +34,6 @@ public class DriverMgmController {
|
|||||||
@ApiOperation("驱动列表")
|
@ApiOperation("驱动列表")
|
||||||
@PostMapping("/list")
|
@PostMapping("/list")
|
||||||
public List<DriverDTO> listDeDriver() throws Exception{
|
public List<DriverDTO> listDeDriver() throws Exception{
|
||||||
checkPermission();
|
|
||||||
return driverService.list();
|
return driverService.list();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -333,8 +333,10 @@ public class EsQueryProvider extends QueryProvider {
|
|||||||
} else if (ObjectUtils.isNotEmpty(y.getExtField()) && y.getExtField() == DeTypeConstants.DE_TIME) {
|
} else if (ObjectUtils.isNotEmpty(y.getExtField()) && y.getExtField() == DeTypeConstants.DE_TIME) {
|
||||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
|
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
|
||||||
} else {
|
} else {
|
||||||
if (y.getDeType() == 2 || y.getDeType() == 3) {
|
if (y.getDeType() == 2) {
|
||||||
originField = String.format(EsSqlLConstants.CAST, String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()), "bigint");
|
originField = String.format(EsSqlLConstants.CAST, String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()), "bigint");
|
||||||
|
} else if (y.getDeType() == 3) {
|
||||||
|
originField = String.format(EsSqlLConstants.CAST, String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()), "float");
|
||||||
} else {
|
} else {
|
||||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
|
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1115,22 +1115,25 @@ public class DataSetTableService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleSelectItems(PlainSelect plainSelect, String dsType) throws Exception{
|
private void handleSelectItems(PlainSelect plainSelect, String dsType) throws Exception {
|
||||||
List<SelectItem> selectItems = new ArrayList<>();
|
List<SelectItem> selectItems = new ArrayList<>();
|
||||||
for (SelectItem selectItem : plainSelect.getSelectItems()) {
|
for (SelectItem selectItem : plainSelect.getSelectItems()) {
|
||||||
SelectExpressionItem selectExpressionItem = (SelectExpressionItem) selectItem;
|
try {
|
||||||
if (selectExpressionItem.getExpression() instanceof SubSelect) {
|
SelectExpressionItem selectExpressionItem = (SelectExpressionItem) selectItem;
|
||||||
SubSelect subSelect = (SubSelect) selectExpressionItem.getExpression();
|
if (selectExpressionItem.getExpression() instanceof SubSelect) {
|
||||||
Select select = (Select) CCJSqlParserUtil.parse (removeVariables(subSelect.getSelectBody().toString(), dsType));
|
SubSelect subSelect = (SubSelect) selectExpressionItem.getExpression();
|
||||||
subSelect.setSelectBody(select.getSelectBody());
|
Select select = (Select) CCJSqlParserUtil.parse(removeVariables(subSelect.getSelectBody().toString(), dsType));
|
||||||
((SelectExpressionItem) selectItem).setExpression(subSelect);
|
subSelect.setSelectBody(select.getSelectBody());
|
||||||
|
((SelectExpressionItem) selectItem).setExpression(subSelect);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
}
|
}
|
||||||
selectItems.add(selectItem);
|
selectItems.add(selectItem);
|
||||||
}
|
}
|
||||||
plainSelect.setSelectItems(selectItems);
|
plainSelect.setSelectItems(selectItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleFromItems(PlainSelect plainSelect, String dsType) throws Exception{
|
private void handleFromItems(PlainSelect plainSelect, String dsType) throws Exception {
|
||||||
FromItem fromItem = plainSelect.getFromItem();
|
FromItem fromItem = plainSelect.getFromItem();
|
||||||
if (fromItem instanceof SubSelect) {
|
if (fromItem instanceof SubSelect) {
|
||||||
SelectBody selectBody = ((SubSelect) fromItem).getSelectBody();
|
SelectBody selectBody = ((SubSelect) fromItem).getSelectBody();
|
||||||
@ -1138,7 +1141,7 @@ public class DataSetTableService {
|
|||||||
Select subSelectTmp = (Select) CCJSqlParserUtil.parse(removeVariables(selectBody.toString(), dsType));
|
Select subSelectTmp = (Select) CCJSqlParserUtil.parse(removeVariables(selectBody.toString(), dsType));
|
||||||
subSelect.setSelectBody(subSelectTmp.getSelectBody());
|
subSelect.setSelectBody(subSelectTmp.getSelectBody());
|
||||||
if (dsType.equals(DatasourceTypes.oracle.getType())) {
|
if (dsType.equals(DatasourceTypes.oracle.getType())) {
|
||||||
if(fromItem.getAlias() != null){
|
if (fromItem.getAlias() != null) {
|
||||||
subSelect.setAlias(new Alias(fromItem.getAlias().toString(), false));
|
subSelect.setAlias(new Alias(fromItem.getAlias().toString(), false));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -1150,7 +1153,8 @@ public class DataSetTableService {
|
|||||||
plainSelect.setFromItem(subSelect);
|
plainSelect.setFromItem(subSelect);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void handleJoins(PlainSelect plainSelect, String dsType) throws Exception{
|
|
||||||
|
private void handleJoins(PlainSelect plainSelect, String dsType) throws Exception {
|
||||||
List<Join> joins = plainSelect.getJoins();
|
List<Join> joins = plainSelect.getJoins();
|
||||||
if (joins != null) {
|
if (joins != null) {
|
||||||
List<Join> joinsList = new ArrayList<>();
|
List<Join> joinsList = new ArrayList<>();
|
||||||
@ -1177,28 +1181,29 @@ public class DataSetTableService {
|
|||||||
plainSelect.setJoins(joinsList);
|
plainSelect.setJoins(joinsList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private String handleWhere(PlainSelect plainSelect, Select statementSelect, String dsType) throws Exception{
|
|
||||||
Expression expr = plainSelect.getWhere();
|
private String handleWhere(PlainSelect plainSelect, Select statementSelect, String dsType) throws Exception {
|
||||||
if (expr == null) {
|
Expression expr = plainSelect.getWhere();
|
||||||
return handleWith(plainSelect, statementSelect, dsType);
|
if (expr == null) {
|
||||||
}
|
return handleWith(plainSelect, statementSelect, dsType);
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
}
|
||||||
BinaryExpression binaryExpression = null;
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
try {
|
BinaryExpression binaryExpression = null;
|
||||||
binaryExpression = (BinaryExpression) expr;
|
try {
|
||||||
} catch (Exception e) {
|
binaryExpression = (BinaryExpression) expr;
|
||||||
}
|
} catch (Exception e) {
|
||||||
if (binaryExpression != null) {
|
}
|
||||||
if (!(binaryExpression.getLeftExpression() instanceof BinaryExpression) && !(binaryExpression.getLeftExpression() instanceof InExpression) && hasVariable(binaryExpression.getRightExpression().toString())) {
|
if (binaryExpression != null) {
|
||||||
stringBuilder.append(SubstitutedSql);
|
if (!(binaryExpression.getLeftExpression() instanceof BinaryExpression) && !(binaryExpression.getLeftExpression() instanceof InExpression) && hasVariable(binaryExpression.getRightExpression().toString())) {
|
||||||
} else {
|
stringBuilder.append(SubstitutedSql);
|
||||||
expr.accept(getExpressionDeParser(stringBuilder));
|
} else {
|
||||||
}
|
expr.accept(getExpressionDeParser(stringBuilder));
|
||||||
} else {
|
}
|
||||||
expr.accept(getExpressionDeParser(stringBuilder));
|
} else {
|
||||||
}
|
expr.accept(getExpressionDeParser(stringBuilder));
|
||||||
plainSelect.setWhere(CCJSqlParserUtil.parseCondExpression(stringBuilder.toString()));
|
}
|
||||||
return handleWith(plainSelect, statementSelect, dsType);
|
plainSelect.setWhere(CCJSqlParserUtil.parseCondExpression(stringBuilder.toString()));
|
||||||
|
return handleWith(plainSelect, statementSelect, dsType);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String handleWith(PlainSelect plainSelect, Select select, String dsType) throws Exception {
|
private String handleWith(PlainSelect plainSelect, Select select, String dsType) throws Exception {
|
||||||
@ -1227,7 +1232,6 @@ public class DataSetTableService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public Map<String, Object> getDBPreview(DataSetTableRequest dataSetTableRequest) throws Exception {
|
public Map<String, Object> getDBPreview(DataSetTableRequest dataSetTableRequest) throws Exception {
|
||||||
Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId());
|
Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId());
|
||||||
if (ds == null) {
|
if (ds == null) {
|
||||||
@ -2783,13 +2787,13 @@ public class DataSetTableService {
|
|||||||
if (StringUtils.isEmpty(s)) {
|
if (StringUtils.isEmpty(s)) {
|
||||||
throw new RuntimeException(Translator.get("i18n_excel_empty_column"));
|
throw new RuntimeException(Translator.get("i18n_excel_empty_column"));
|
||||||
}
|
}
|
||||||
if(hashSet.contains(s)){
|
if (hashSet.contains(s)) {
|
||||||
repeat.add(s);
|
repeat.add(s);
|
||||||
}else {
|
} else {
|
||||||
hashSet.add(s);
|
hashSet.add(s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(CollectionUtils.isNotEmpty(repeat)){
|
if (CollectionUtils.isNotEmpty(repeat)) {
|
||||||
DataEaseException.throwException(Translator.get("i18n_excel_field_repeat") + "" + String.valueOf(repeat));
|
DataEaseException.throwException(Translator.get("i18n_excel_field_repeat") + "" + String.valueOf(repeat));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1159,8 +1159,6 @@ export default {
|
|||||||
callback()
|
callback()
|
||||||
},
|
},
|
||||||
isNumber(rule, value, callback) {
|
isNumber(rule, value, callback) {
|
||||||
console.log(value)
|
|
||||||
console.log(!value)
|
|
||||||
if (!value) {
|
if (!value) {
|
||||||
callback(new Error(i18n.t('datasource.please_input_query_timeout')))
|
callback(new Error(i18n.t('datasource.please_input_query_timeout')))
|
||||||
return
|
return
|
||||||
@ -1168,7 +1166,6 @@ export default {
|
|||||||
let isNumber = false
|
let isNumber = false
|
||||||
var reg = /^\d+$/;
|
var reg = /^\d+$/;
|
||||||
isNumber = reg.test(value);
|
isNumber = reg.test(value);
|
||||||
console.log(!isNumber)
|
|
||||||
if (!isNumber) {
|
if (!isNumber) {
|
||||||
callback(new Error(i18n.t('datasource.please_input_query_timeout')))
|
callback(new Error(i18n.t('datasource.please_input_query_timeout')))
|
||||||
return
|
return
|
||||||
|
|||||||
@ -946,7 +946,7 @@ export default {
|
|||||||
this.tData.forEach((item) => {
|
this.tData.forEach((item) => {
|
||||||
if (item.id === this.form.type) {
|
if (item.id === this.form.type) {
|
||||||
item.children.forEach((child) => {
|
item.children.forEach((child) => {
|
||||||
if (this.formType === 'modify' && child.id === this.form.id) {
|
if (child.id === this.form.id) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const configuration = JSON.parse(child.configuration)
|
const configuration = JSON.parse(child.configuration)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user