Skip to content

Commit d69d691

Browse files
committed
to fix COUNT(*)
1 parent 96d8c4e commit d69d691

File tree

4 files changed

+17
-8
lines changed

4 files changed

+17
-8
lines changed

bridge/src/main/scala/app/softnetwork/elastic/sql/bridge/ElasticAggregation.scala

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,15 @@ object ElasticAggregation {
145145
val _agg =
146146
aggType match {
147147
case COUNT =>
148+
val field =
149+
sourceField match {
150+
case "*" | "_id" | "_index" | "_type" => "_id"
151+
case _ => sourceField
152+
}
148153
if (distinct)
149-
cardinalityAgg(aggName, sourceField)
154+
cardinalityAgg(aggName, field)
150155
else {
151-
valueCountAgg(aggName, sourceField)
156+
valueCountAgg(aggName, field)
152157
}
153158
case MIN => aggWithFieldOrScript(minAgg, (name, s) => minAgg(name, sourceField).script(s))
154159
case MAX => aggWithFieldOrScript(maxAgg, (name, s) => maxAgg(name, sourceField).script(s))

core/src/main/scala/app/softnetwork/elastic/client/SearchApi.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ trait SearchApi extends ElasticConversion with ElasticClientHelpers {
137137
val indices = elasticQuery.indices.mkString(",")
138138

139139
logger.debug(
140-
s"Searching with query \n${sql.getOrElse(query)}\nin indices '$indices'"
140+
s"🔍 Searching with query \n${sql.getOrElse(query)}\nin indices '$indices'"
141141
)
142142

143143
executeSingleSearch(elasticQuery) match {
@@ -236,7 +236,7 @@ trait SearchApi extends ElasticConversion with ElasticClientHelpers {
236236
)
237237

238238
logger.debug(
239-
s"Multi-searching with query \n${sql.getOrElse(query)}"
239+
s"🔍 Multi-searching with query \n${sql.getOrElse(query)}"
240240
)
241241

242242
executeMultiSearch(elasticQueries) match {

es6/bridge/src/main/scala/app/softnetwork/elastic/sql/bridge/ElasticAggregation.scala

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,15 @@ object ElasticAggregation {
145145
val _agg =
146146
aggType match {
147147
case COUNT =>
148+
val field =
149+
sourceField match {
150+
case "*" | "_id" | "_index" | "_type" => "_id"
151+
case _ => sourceField
152+
}
148153
if (distinct)
149-
cardinalityAgg(aggName, sourceField)
154+
cardinalityAgg(aggName, field)
150155
else {
151-
valueCountAgg(aggName, sourceField)
156+
valueCountAgg(aggName, field)
152157
}
153158
case MIN => aggWithFieldOrScript(minAgg, (name, s) => minAgg(name, sourceField).script(s))
154159
case MAX => aggWithFieldOrScript(maxAgg, (name, s) => maxAgg(name, sourceField).script(s))

testkit/src/main/scala/app/softnetwork/elastic/client/WindowFunctionSpec.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,6 @@ trait WindowFunctionSpec
463463
COUNT(*) AS employee_count
464464
FROM emp
465465
GROUP BY department
466-
ORDER BY avg_salary DESC
467466
""")
468467

469468
results match {
@@ -474,7 +473,7 @@ trait WindowFunctionSpec
474473
engineering shouldBe defined
475474
engineering.get.max_salary shouldBe 130000 // Sam Turner
476475
engineering.get.min_salary shouldBe 75000 // Eve Davis
477-
engineering.get.employee_count shouldBe 6
476+
engineering.get.employee_count shouldBe 7
478477

479478
case ElasticFailure(error) =>
480479
fail(s"Query failed: ${error.message}")

0 commit comments

Comments
 (0)