From 92660d2a73f954d481c40a5f8cfd821f208113ac Mon Sep 17 00:00:00 2001 From: Serge Rider Date: Thu, 29 Aug 2019 18:40:11 +0200 Subject: [PATCH] #6650 Groupping panel: quote group by column names --- .../panel/grouping/GroupingResultsContainer.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/panel/grouping/GroupingResultsContainer.java b/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/panel/grouping/GroupingResultsContainer.java index 5c13199e85..245bff281b 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/panel/grouping/GroupingResultsContainer.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/panel/grouping/GroupingResultsContainer.java @@ -90,6 +90,7 @@ public class GroupingResultsContainer implements IResultSetContainer { return presentation.getController().getExecutionContext(); } + @NotNull @Override public IResultSetController getResultSetController() { return groupingViewer; @@ -182,7 +183,7 @@ public class GroupingResultsContainer implements IResultSetContainer { public void rebuildGrouping() throws DBException { if (groupAttributes.isEmpty() || groupFunctions.isEmpty()) { - getResultSetController().showEmptyPresentation(); + groupingViewer.showEmptyPresentation(); return; } DBCStatistics statistics = presentation.getController().getModel().getStatistics(); @@ -190,6 +191,9 @@ public class GroupingResultsContainer implements IResultSetContainer { throw new DBException("No main query - can't perform grouping"); } DBPDataSource dataSource = dataContainer.getDataSource(); + if (dataSource == null) { + throw new DBException("No active datasource"); + } SQLDialect dialect = SQLUtils.getDialectFromDataSource(dataSource); SQLSyntaxManager syntaxManager = new SQLSyntaxManager(); syntaxManager.init(dialect, presentation.getController().getPreferenceStore()); @@ -212,7 +216,7 @@ public class GroupingResultsContainer implements IResultSetContainer { sql.append("SELECT "); for (int i = 0; i < groupAttributes.size(); i++) { if (i > 0) sql.append(", "); - sql.append(DBUtils.getQuotedIdentifier(getDataContainer().getDataSource(), groupAttributes.get(i))); + sql.append(DBUtils.getQuotedIdentifier(dataSource, groupAttributes.get(i))); } for (String func : groupFunctions) { sql.append(", ").append(func); @@ -224,7 +228,7 @@ public class GroupingResultsContainer implements IResultSetContainer { sql.append("\nGROUP BY "); for (int i = 0; i < groupAttributes.size(); i++) { if (i > 0) sql.append(", "); - sql.append(groupAttributes.get(i)); + sql.append(DBUtils.getQuotedIdentifier(dataSource, groupAttributes.get(i))); } boolean isDefaultGrouping = groupFunctions.size() == 1 && groupFunctions.get(0).equals(DEFAULT_FUNCTION); -- GitLab