提交 92660d2a 编写于 作者: S Serge Rider

#6650 Groupping panel: quote group by column names

上级 cc1afecf
...@@ -90,6 +90,7 @@ public class GroupingResultsContainer implements IResultSetContainer { ...@@ -90,6 +90,7 @@ public class GroupingResultsContainer implements IResultSetContainer {
return presentation.getController().getExecutionContext(); return presentation.getController().getExecutionContext();
} }
@NotNull
@Override @Override
public IResultSetController getResultSetController() { public IResultSetController getResultSetController() {
return groupingViewer; return groupingViewer;
...@@ -182,7 +183,7 @@ public class GroupingResultsContainer implements IResultSetContainer { ...@@ -182,7 +183,7 @@ public class GroupingResultsContainer implements IResultSetContainer {
public void rebuildGrouping() throws DBException { public void rebuildGrouping() throws DBException {
if (groupAttributes.isEmpty() || groupFunctions.isEmpty()) { if (groupAttributes.isEmpty() || groupFunctions.isEmpty()) {
getResultSetController().showEmptyPresentation(); groupingViewer.showEmptyPresentation();
return; return;
} }
DBCStatistics statistics = presentation.getController().getModel().getStatistics(); DBCStatistics statistics = presentation.getController().getModel().getStatistics();
...@@ -190,6 +191,9 @@ public class GroupingResultsContainer implements IResultSetContainer { ...@@ -190,6 +191,9 @@ public class GroupingResultsContainer implements IResultSetContainer {
throw new DBException("No main query - can't perform grouping"); throw new DBException("No main query - can't perform grouping");
} }
DBPDataSource dataSource = dataContainer.getDataSource(); DBPDataSource dataSource = dataContainer.getDataSource();
if (dataSource == null) {
throw new DBException("No active datasource");
}
SQLDialect dialect = SQLUtils.getDialectFromDataSource(dataSource); SQLDialect dialect = SQLUtils.getDialectFromDataSource(dataSource);
SQLSyntaxManager syntaxManager = new SQLSyntaxManager(); SQLSyntaxManager syntaxManager = new SQLSyntaxManager();
syntaxManager.init(dialect, presentation.getController().getPreferenceStore()); syntaxManager.init(dialect, presentation.getController().getPreferenceStore());
...@@ -212,7 +216,7 @@ public class GroupingResultsContainer implements IResultSetContainer { ...@@ -212,7 +216,7 @@ public class GroupingResultsContainer implements IResultSetContainer {
sql.append("SELECT "); sql.append("SELECT ");
for (int i = 0; i < groupAttributes.size(); i++) { for (int i = 0; i < groupAttributes.size(); i++) {
if (i > 0) sql.append(", "); 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) { for (String func : groupFunctions) {
sql.append(", ").append(func); sql.append(", ").append(func);
...@@ -224,7 +228,7 @@ public class GroupingResultsContainer implements IResultSetContainer { ...@@ -224,7 +228,7 @@ public class GroupingResultsContainer implements IResultSetContainer {
sql.append("\nGROUP BY "); sql.append("\nGROUP BY ");
for (int i = 0; i < groupAttributes.size(); i++) { for (int i = 0; i < groupAttributes.size(); i++) {
if (i > 0) sql.append(", "); 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); boolean isDefaultGrouping = groupFunctions.size() == 1 && groupFunctions.get(0).equals(DEFAULT_FUNCTION);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册