From 93f48678a3104bafd7ed61819672dffa4c546086 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Tue, 26 Nov 2024 18:45:22 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E3=80=90=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=E3=80=91=E5=8F=82=E6=95=B0=E5=8C=96=E6=8F=90=E7=A4=BA=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=EF=BC=8C=E6=94=AF=E6=8C=81union?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/utils/SqlparserUtils.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/commons/utils/SqlparserUtils.java b/core/core-backend/src/main/java/io/dataease/commons/utils/SqlparserUtils.java index 0dc588fe92..8cf92cb2a9 100644 --- a/core/core-backend/src/main/java/io/dataease/commons/utils/SqlparserUtils.java +++ b/core/core-backend/src/main/java/io/dataease/commons/utils/SqlparserUtils.java @@ -157,10 +157,22 @@ public class SqlparserUtils { for (Join join : joins) { FromItem rightItem = join.getRightItem(); if (rightItem instanceof ParenthesedSelect) { - PlainSelect selectBody = ((ParenthesedSelect) rightItem).getPlainSelect(); - Select subSelectTmp = (Select) CCJSqlParserUtil.parse(removeVariables(selectBody.toString(), dsType)); - PlainSelect subPlainSelect = ((PlainSelect) subSelectTmp.getSelectBody()); - ((ParenthesedSelect) rightItem).setSelect(subPlainSelect); + try { + PlainSelect selectBody = ((ParenthesedSelect) rightItem).getPlainSelect(); + Select subSelectTmp = (Select) CCJSqlParserUtil.parse(removeVariables(selectBody.toString(), dsType)); + PlainSelect subPlainSelect = ((PlainSelect) subSelectTmp.getSelectBody()); + ((ParenthesedSelect) rightItem).setSelect(subPlainSelect); + }catch ( Exception e ){ + SetOperationList select = ((ParenthesedSelect) rightItem).getSetOperationList(); + SetOperationList setOperationList = new SetOperationList(); + setOperationList.setSelects(new ArrayList<>()); + setOperationList.setOperations(select.getOperations()); + for (Select selectSelect : select.getSelects()) { + Select subSelectTmp = (Select) CCJSqlParserUtil.parse(removeVariables(selectSelect.toString(), dsType)); + setOperationList.getSelects().add(subSelectTmp); + } + ((ParenthesedSelect) rightItem).setSelect(setOperationList); + } if (dsType.equals(DatasourceConfiguration.DatasourceType.oracle.getType())) { rightItem.setAlias(new Alias(rightItem.getAlias().toString(), false)); } else { From 692228183d8ae53daebd572f2e09481681665a7d Mon Sep 17 00:00:00 2001 From: taojinlong Date: Tue, 26 Nov 2024 18:46:20 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=BA=90=E5=AE=9A=E6=97=B6=E5=90=8C=E6=AD=A5=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datasource/server/DatasourceServer.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java index d1b4912d6f..7019a45686 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java @@ -989,16 +989,16 @@ public class DatasourceServer implements DatasourceApi { datasources.forEach(datasource -> { if (!syncDsIds.contains(datasource.getId())) { syncDsIds.add(datasource.getId()); + commonThreadPool.addTask(() -> { + try { + LicenseUtil.validate(); + validate(datasource); + } catch (Exception e) { + } finally { + syncDsIds.removeIf(id -> id.equals(datasource.getId())); + } + }); } - commonThreadPool.addTask(() -> { - try { - LicenseUtil.validate(); - validate(datasource); - } catch (Exception e) { - } finally { - syncDsIds.removeIf(id -> id.equals(datasource.getId())); - } - }); }); }