This is an automated email from the ASF dual-hosted git repository.
chengzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 649c33867eb Revise pr#33380 codestyle and update release note (#33476)
649c33867eb is described below
commit 649c33867ebf89aaf4854723933596a93eb1637a
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Thu Oct 31 09:54:50 2024 +0800
Revise pr#33380 codestyle and update release note (#33476)
---
RELEASE-NOTES.md | 1 +
.../sharding/merge/dql/groupby/GroupByMemoryMergedResult.java | 6 +-----
.../sql/src/test/resources/cases/dql/e2e-dql-select-group-by.xml | 2 +-
3 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index 3a3108766e8..42592e595a6 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -26,6 +26,7 @@
1. Sharding: Remove ShardingRouteAlgorithmException check logic temporarily to
support different actual table name config -
[#33367](https://github.com/apache/shardingsphere/pull/33367)
1. SQL Binder: Fix table does not exist exception when use
HintManager#setDatabaseName to transparent -
[#33370](https://github.com/apache/shardingsphere/pull/33370)
1. SQL Parser: Fix LiteralExpressionSegment cast exception in sql parser. -
[#33332](https://github.com/apache/shardingsphere/pull/33332)
+1. Sharding: Fix SQL COUNT with GROUP BY to prevent incorrect row returns -
[#33380](https://github.com/apache/shardingsphere/pull/33380)
1. Sharding: Fix avg, sum, min, max function return empty data when no query
result return - [#33449](https://github.com/apache/shardingsphere/pull/33449)
### Change Logs
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResult.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResult.java
index e1cf5eccca4..b3dd5d75d83 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResult.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResult.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.sharding.merge.dql.groupby;
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.Projection;
-
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.impl.AggregationDistinctProjection;
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.impl.AggregationProjection;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
@@ -141,18 +140,15 @@ public final class GroupByMemoryMergedResult extends
MemoryMergedResult<Sharding
private List<MemoryQueryResultRow> getMemoryResultSetRows(final
SelectStatementContext selectStatementContext,
final
Map<GroupByValue, MemoryQueryResultRow> dataMap, final List<Boolean>
valueCaseSensitive) {
- Object[] data = generateReturnData(selectStatementContext);
-
if (dataMap.isEmpty()) {
+ Object[] data = generateReturnData(selectStatementContext);
boolean hasGroupBy =
!selectStatementContext.getGroupByContext().getItems().isEmpty();
boolean hasAggregations =
!selectStatementContext.getProjectionsContext().getAggregationProjections().isEmpty();
-
if (hasGroupBy || !hasAggregations) {
return Collections.emptyList();
}
return Collections.singletonList(new MemoryQueryResultRow(data));
}
-
List<MemoryQueryResultRow> result = new ArrayList<>(dataMap.values());
result.sort(new GroupByRowComparator(selectStatementContext,
valueCaseSensitive));
return result;
diff --git
a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-group-by.xml
b/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-group-by.xml
index 73eb9839572..e68fe78f926 100644
--- a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-group-by.xml
+++ b/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-group-by.xml
@@ -77,7 +77,7 @@
scenario-comments="Test MIN DISTINCT returns NULL when no data
matches">
<assertion expected-data-source-name="read_dataset" />
</test-case>
-
+
<test-case sql="SELECT MAX(DISTINCT order_id) AS max_id FROM t_order WHERE
1 = 2" db-types="MySQL,PostgreSQL,openGauss" scenario-types="db,tbl"
scenario-comments="Test MAX DISTINCT returns NULL when no data
matches">
<assertion expected-data-source-name="read_dataset" />