summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorwangwei <[email protected]>2024-10-25 16:07:20 +0800
committerwangwei <[email protected]>2024-10-25 16:07:20 +0800
commitb015a7f8dced4bb477d699bfe2de384efb02b967 (patch)
tree0e3894aa7015c6f290c3daa66005c2b4e9f50def /src
parent90c3ee1c2e19267a0cdf3e2ecabf4ad90e43f112 (diff)
[Fix][jsqlparse] 修正 SQL 解析处理SelectItem、ParenthesedExpressionList
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/mesalab/common/utils/sqlparser/SQLSyntaxParserUtil.java24
1 files changed, 6 insertions, 18 deletions
diff --git a/src/main/java/com/mesalab/common/utils/sqlparser/SQLSyntaxParserUtil.java b/src/main/java/com/mesalab/common/utils/sqlparser/SQLSyntaxParserUtil.java
index 50053786..e69d96de 100644
--- a/src/main/java/com/mesalab/common/utils/sqlparser/SQLSyntaxParserUtil.java
+++ b/src/main/java/com/mesalab/common/utils/sqlparser/SQLSyntaxParserUtil.java
@@ -160,26 +160,14 @@ public class SQLSyntaxParserUtil {
private static List<Map<String, Object>> getSelectItems(List<SelectItem<?>> selectItemList) {
List<Map<String, Object>> resultItems = Lists.newArrayList();
- for (SelectItem item : selectItemList) {
+ for (SelectItem<?> item : selectItemList) {
Map<String, Object> itemMap = Maps.newHashMap();
Map<String, Object> exp = Maps.newHashMap();
- Expression itemExpr = item.getExpression();
- if (itemExpr instanceof AllTableColumns) {
- AllTableColumns allTableColumns = (AllTableColumns) itemExpr;
- itemMap.put(ITEM, allTableColumns.toString());
- exp.put(NODE, COLUMN);
- exp.put(NAME, allTableColumns.toString());
- itemMap.put(EXPRESSION, exp);
- } else if (itemExpr instanceof AllColumns) {
- AllColumns allColumns = (AllColumns) itemExpr;
- itemMap.put(ITEM, allColumns.toString());
- exp.put(NODE, COLUMN);
- exp.put(NAME, allColumns.toString());
- itemMap.put(EXPRESSION, exp);
- } else if (itemExpr instanceof SelectItem) {
+ if (item != null) {
+ Expression expression = item.getExpression();
itemMap.put(ITEM, item.toString());
- itemMap.put(EXPRESSION, getExpression(itemExpr));
- Optional<Alias> alias = Optional.ofNullable(item.getAlias());
+ itemMap.put(EXPRESSION, getExpression(expression));
+ Optional<Alias> alias = Optional.ofNullable((item).getAlias());
alias.ifPresent(o -> {
exp.put(NAME, o.getName());
exp.put(USEAS, o.isUseAs());
@@ -241,7 +229,7 @@ public class SQLSyntaxParserUtil {
resultMap.put(RIGHT_EXPRESSION, getExpression(rightExpression));
resultMap.put("operator", stringExpression);
} else if (expression instanceof ParenthesedExpressionList) {
- return getExpression(expression);
+ return getExpression(((ParenthesedExpressionList<?>) expression).get(0));
} else if (expression instanceof InExpression) {
InExpression inExpression = (InExpression) expression;
resultMap.put(NODE, IN_EXPRESSION);