Skip to content

Commit bb23a2d

Browse files
authored
CB-6069 grouping panel fix for a complex data type (#3271)
1 parent e93a3d1 commit bb23a2d

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLQueryResultColumn.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public Integer getPosition() {
4949

5050
@Property
5151
public String getName() {
52-
return attrMeta.getFullyQualifiedName(DBPEvaluationContext.UI);
52+
return WebSQLUtils.getColumnName(attrMeta);
5353
}
5454

5555
@Property

server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLUtils.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import io.cloudbeaver.utils.ServletAppUtils;
2424
import org.jkiss.code.NotNull;
2525
import org.jkiss.dbeaver.Log;
26+
import org.jkiss.dbeaver.model.DBPEvaluationContext;
2627
import org.jkiss.dbeaver.model.data.*;
2728
import org.jkiss.dbeaver.model.exec.DBCException;
2829
import org.jkiss.dbeaver.model.exec.DBCSession;
@@ -255,4 +256,12 @@ public static Object makePlainCellValue(DBCSession session, DBSTypedObject attri
255256
}
256257
return value;
257258
}
259+
260+
/**
261+
* Returns fully qualified name for a column.
262+
*/
263+
@NotNull
264+
public static String getColumnName(@NotNull DBDAttributeBinding binding) {
265+
return binding.getFullyQualifiedName(DBPEvaluationContext.UI);
266+
}
258267
}

server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/impl/WebServiceSQL.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import io.cloudbeaver.DBWebException;
2121
import io.cloudbeaver.model.WebAsyncTaskInfo;
2222
import io.cloudbeaver.model.WebConnectionInfo;
23+
import io.cloudbeaver.model.WebTransactionLogInfo;
2324
import io.cloudbeaver.model.session.WebAsyncTaskProcessor;
2425
import io.cloudbeaver.model.session.WebSession;
2526
import io.cloudbeaver.service.WebServiceBindingBase;
@@ -42,7 +43,6 @@
4243
import org.jkiss.dbeaver.model.impl.sql.BasicSQLDialect;
4344
import org.jkiss.dbeaver.model.navigator.DBNModel;
4445
import org.jkiss.dbeaver.model.navigator.DBNNode;
45-
import io.cloudbeaver.model.WebTransactionLogInfo;
4646
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
4747
import org.jkiss.dbeaver.model.sql.*;
4848
import org.jkiss.dbeaver.model.sql.completion.SQLCompletionAnalyzer;
@@ -555,13 +555,18 @@ public String generateGroupByQuery(
555555
try {
556556

557557
WebSQLResultsInfo resultsInfo = contextInfo.getResults(resultsId);
558+
List<SQLGroupingAttribute> groupingAttributes = Arrays.stream(resultsInfo.getAttributes())
559+
.filter(attr -> columnsList.contains(WebSQLUtils.getColumnName(attr)))
560+
.map(SQLGroupingAttribute::makeBound)
561+
.toList();
562+
558563
var dataSource = contextInfo.getProcessor().getConnection().getDataSource();
559564
var groupingQueryGenerator = new SQLGroupingQueryGenerator(
560565
dataSource,
561566
resultsInfo.getDataContainer(),
562567
getSqlDialectFromConnection(dataSource.getContainer()),
563568
contextInfo.getProcessor().getSyntaxManager(),
564-
columnsList.stream().map(s -> SQLGroupingAttribute.makeCustom(dataSource, s)).toList(),
569+
groupingAttributes,
565570
functions == null ? List.of(SQLGroupingQueryGenerator.DEFAULT_FUNCTION) : functions, // backward compatibility
566571
CommonUtils.getBoolean(showDuplicatesOnly, false));
567572
return groupingQueryGenerator.generateGroupingQuery(resultsInfo.getQueryText());

0 commit comments

Comments
 (0)