Skip to content

Commit fe480df

Browse files
committed
fix: jdbc access to functional named fields
1 parent 14f7a9e commit fe480df

File tree

3 files changed

+26
-8
lines changed

3 files changed

+26
-8
lines changed

src/main/scala/dev/mongocamp/driver/mongodb/jdbc/resultSet/MongoDbResultSetMetaData.scala

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package dev.mongocamp.driver.mongodb.jdbc.resultSet
22

33
import dev.mongocamp.driver.mongodb._
4-
import dev.mongocamp.driver.mongodb.json._
54
import org.mongodb.scala.Document
65
import org.mongodb.scala.bson.{ BsonBoolean, BsonInt32, BsonInt64, BsonNumber, BsonString }
76

@@ -56,7 +55,16 @@ class MongoDbResultSetMetaData extends ResultSetMetaData {
5655

5756
override def getColumnLabel(column: Int): String = {
5857
val keys: Iterable[String] = if (keySet.nonEmpty) {
59-
keySet
58+
keySet.map(s => {
59+
var key = s
60+
if (key.startsWith("(")) {
61+
key = key.substring(1, key.length - 1)
62+
}
63+
if (key.endsWith("(")) {
64+
key = key.substring(0, key.length - 1)
65+
}
66+
key
67+
})
6068
}
6169
else {
6270
document.keys

src/test/scala/dev/mongocamp/driver/mongodb/jdbc/SelectJDBCSuite.scala

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ class SelectJDBCSuite extends BaseJdbcSuite {
1111
var i = 0
1212
val arrayBuffer = ArrayBuffer[ResultSet]()
1313
while (result.next()) {
14-
assertEquals(result.getLong(1),result.getLong("id"))
15-
assertEquals(result.getString(2),result.getString("guid"))
16-
assertEquals(result.getString(3),result.getString("name"))
17-
assertEquals(result.getInt(4),result.getInt("age"))
18-
assertEquals(result.getDouble(5),result.getDouble("balance"))
14+
assertEquals(result.getLong(1), result.getLong("id"))
15+
assertEquals(result.getString(2), result.getString("guid"))
16+
assertEquals(result.getString(3), result.getString("name"))
17+
assertEquals(result.getInt(4), result.getInt("age"))
18+
assertEquals(result.getDouble(5), result.getDouble("balance"))
1919
i += 1
2020
arrayBuffer += result
2121
}
@@ -49,4 +49,14 @@ class SelectJDBCSuite extends BaseJdbcSuite {
4949
assertEquals(i, 1)
5050
}
5151

52+
test("select distinct") {
53+
val stmt = connection.createStatement()
54+
val result = stmt.executeQuery("select distinct(favoriteFruit), count(*) from `mongocamp-unit-test`.people order by count(*) desc;")
55+
result.next()
56+
assertEquals(result.getString("favoriteFruit"), "strawberry")
57+
assertEquals(result.getInt("count(*)"), 71)
58+
assertEquals(result.getString(1), "strawberry")
59+
assertEquals(result.getInt(2), 71)
60+
}
61+
5262
}

src/test/scala/dev/mongocamp/driver/mongodb/sql/SelectSqlSuite.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ class SelectSqlSuite extends BasePersonSuite {
168168
assertEquals(document.getInteger("sum(age)").toInt, 324)
169169
}
170170

171-
test("destinct") {
171+
test("distinct query") {
172172
val queryConverter = MongoSqlQueryHolder("select distinct favoriteFruit, count(*) from people order by count(*) desc;")
173173
val selectResponse = queryConverter.run(TestDatabase.provider).resultList()
174174
assertEquals(selectResponse.size, 3)

0 commit comments

Comments
 (0)