From ec4816570b7599d6d034040f5b2cdb397b238b14 Mon Sep 17 00:00:00 2001 From: chenjg <17688741996@163.com> Date: Wed, 26 Feb 2025 14:56:13 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E8=99=9A=E6=8B=9F=E6=A8=A1=E5=9E=8B=E9=85=8D=E7=BD=AESQL?= =?UTF-8?q?=E8=AF=AD=E5=8F=A5=E4=B8=AD=E5=AD=97=E6=AE=B5=E5=8F=AF=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=8F=8D=E5=BC=95=E5=8F=B7=EF=BC=9B=E5=8F=AF=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E6=9F=A5=E8=AF=A2=E8=A1=A8=E5=AF=B9=E5=BA=94?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cmdb/utils/VirtualCiSqlBuilder.java | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main/java/neatlogic/module/cmdb/utils/VirtualCiSqlBuilder.java b/src/main/java/neatlogic/module/cmdb/utils/VirtualCiSqlBuilder.java index 71504cb9..b9892b38 100644 --- a/src/main/java/neatlogic/module/cmdb/utils/VirtualCiSqlBuilder.java +++ b/src/main/java/neatlogic/module/cmdb/utils/VirtualCiSqlBuilder.java @@ -111,8 +111,22 @@ public class VirtualCiSqlBuilder { String columnName; if (selectExpressionItem.getAlias() != null) { columnName = selectExpressionItem.getAlias().getName(); + if (columnName.length() > 2) { + char sChar = columnName.charAt(0); + char eChar = columnName.charAt(columnName.length() - 1); + if (sChar == eChar && (sChar == '`' || sChar == '"' || sChar == '\'')) { + columnName = columnName.substring(1, columnName.length() - 1); + } + } } else { columnName = selectExpressionItem.toString(); + if (columnName.length() > 2) { + char sChar = columnName.charAt(0); + char eChar = columnName.charAt(columnName.length() - 1); + if (sChar == eChar && sChar == '`') { + columnName = columnName.substring(1, columnName.length() - 1); + } + } } if (columnName.equalsIgnoreCase("id")) { hasId[0] = true; @@ -276,7 +290,9 @@ public class VirtualCiSqlBuilder { FromItem fromItem = select.getFromItem(); if (fromItem instanceof Table) { Table table = (Table) select.getFromItem(); - table.setSchemaName(schema); + if (StringUtils.isBlank(table.getSchemaName())) { + table.setSchemaName(schema); + } } else if (fromItem instanceof SubSelect) { SubSelect subselect = (SubSelect) select.getFromItem(); fillUpSchema(subselect.getSelectBody()); @@ -287,7 +303,9 @@ public class VirtualCiSqlBuilder { for (Join j : select.getJoins()) { if (j.getRightItem() instanceof Table) { Table t = (Table) j.getRightItem(); - t.setSchemaName(schema); + if (StringUtils.isBlank(t.getSchemaName())) { + t.setSchemaName(schema); + } } else if (j.getRightItem() instanceof SubSelect) { SubSelect subselect = (SubSelect) j.getRightItem(); fillUpSchema(subselect.getSelectBody()); -- Gitee