diff options
| author | wangwei <[email protected]> | 2024-10-25 16:07:20 +0800 |
|---|---|---|
| committer | wangwei <[email protected]> | 2024-10-25 16:07:20 +0800 |
| commit | b015a7f8dced4bb477d699bfe2de384efb02b967 (patch) | |
| tree | 0e3894aa7015c6f290c3daa66005c2b4e9f50def /src | |
| parent | 90c3ee1c2e19267a0cdf3e2ecabf4ad90e43f112 (diff) | |
[Fix][jsqlparse] 修正 SQL 解析处理SelectItem、ParenthesedExpressionList
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/com/mesalab/common/utils/sqlparser/SQLSyntaxParserUtil.java | 24 |
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); |
