mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
CB-6069 grouping panel fix for a complex data type (#3271)
This commit is contained in:
+1
-1
@@ -49,7 +49,7 @@ public class WebSQLQueryResultColumn {
|
||||
|
||||
@Property
|
||||
public String getName() {
|
||||
return attrMeta.getFullyQualifiedName(DBPEvaluationContext.UI);
|
||||
return WebSQLUtils.getColumnName(attrMeta);
|
||||
}
|
||||
|
||||
@Property
|
||||
|
||||
@@ -23,6 +23,7 @@ import io.cloudbeaver.utils.CBModelConstants;
|
||||
import io.cloudbeaver.utils.ServletAppUtils;
|
||||
import org.jkiss.code.NotNull;
|
||||
import org.jkiss.dbeaver.Log;
|
||||
import org.jkiss.dbeaver.model.DBPEvaluationContext;
|
||||
import org.jkiss.dbeaver.model.data.*;
|
||||
import org.jkiss.dbeaver.model.exec.DBCException;
|
||||
import org.jkiss.dbeaver.model.exec.DBCSession;
|
||||
@@ -255,4 +256,12 @@ public class WebSQLUtils {
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns fully qualified name for a column.
|
||||
*/
|
||||
@NotNull
|
||||
public static String getColumnName(@NotNull DBDAttributeBinding binding) {
|
||||
return binding.getFullyQualifiedName(DBPEvaluationContext.UI);
|
||||
}
|
||||
}
|
||||
|
||||
+7
-2
@@ -20,6 +20,7 @@ package io.cloudbeaver.service.sql.impl;
|
||||
import io.cloudbeaver.DBWebException;
|
||||
import io.cloudbeaver.model.WebAsyncTaskInfo;
|
||||
import io.cloudbeaver.model.WebConnectionInfo;
|
||||
import io.cloudbeaver.model.WebTransactionLogInfo;
|
||||
import io.cloudbeaver.model.session.WebAsyncTaskProcessor;
|
||||
import io.cloudbeaver.model.session.WebSession;
|
||||
import io.cloudbeaver.service.WebServiceBindingBase;
|
||||
@@ -42,7 +43,6 @@ import org.jkiss.dbeaver.model.exec.trace.DBCTraceProperty;
|
||||
import org.jkiss.dbeaver.model.impl.sql.BasicSQLDialect;
|
||||
import org.jkiss.dbeaver.model.navigator.DBNModel;
|
||||
import org.jkiss.dbeaver.model.navigator.DBNNode;
|
||||
import io.cloudbeaver.model.WebTransactionLogInfo;
|
||||
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
|
||||
import org.jkiss.dbeaver.model.sql.*;
|
||||
import org.jkiss.dbeaver.model.sql.completion.SQLCompletionAnalyzer;
|
||||
@@ -555,13 +555,18 @@ public class WebServiceSQL implements DBWServiceSQL {
|
||||
try {
|
||||
|
||||
WebSQLResultsInfo resultsInfo = contextInfo.getResults(resultsId);
|
||||
List<SQLGroupingAttribute> groupingAttributes = Arrays.stream(resultsInfo.getAttributes())
|
||||
.filter(attr -> columnsList.contains(WebSQLUtils.getColumnName(attr)))
|
||||
.map(SQLGroupingAttribute::makeBound)
|
||||
.toList();
|
||||
|
||||
var dataSource = contextInfo.getProcessor().getConnection().getDataSource();
|
||||
var groupingQueryGenerator = new SQLGroupingQueryGenerator(
|
||||
dataSource,
|
||||
resultsInfo.getDataContainer(),
|
||||
getSqlDialectFromConnection(dataSource.getContainer()),
|
||||
contextInfo.getProcessor().getSyntaxManager(),
|
||||
columnsList.stream().map(s -> SQLGroupingAttribute.makeCustom(dataSource, s)).toList(),
|
||||
groupingAttributes,
|
||||
functions == null ? List.of(SQLGroupingQueryGenerator.DEFAULT_FUNCTION) : functions, // backward compatibility
|
||||
CommonUtils.getBoolean(showDuplicatesOnly, false));
|
||||
return groupingQueryGenerator.generateGroupingQuery(resultsInfo.getQueryText());
|
||||
|
||||
Reference in New Issue
Block a user