Skip to content

Commit 7c8f529

Browse files
authored
SQL-2732: Correct handling of empty select order list (#345) (#346)
1 parent 7dd063d commit 7c8f529

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/main/java/com/mongodb/jdbc/MongoResultSetMetaData.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public MongoResultSetMetaData(
100100
columnIndices = new ArrayList<NameSpace>();
101101
columnInfo = new ArrayList<MongoColumnInfo>();
102102

103-
if (selectOrder == null) {
103+
if (selectOrder == null || selectOrder.isEmpty()) {
104104
String[] datasources = schema.properties.keySet().toArray(new String[0]);
105105
Arrays.sort(datasources);
106106

src/test/java/com/mongodb/jdbc/MongoResultSetMetaDataTest.java

+18
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.sql.ResultSetMetaData;
2222
import java.sql.SQLException;
2323
import java.sql.Types;
24+
import java.util.ArrayList;
2425
import java.util.Arrays;
2526
import java.util.List;
2627
import org.bson.BsonValue;
@@ -371,4 +372,21 @@ void testGetDatasource() throws Exception {
371372
assertThrows(Exception.class, () -> resultSetMetaData.getDatasource(FOO_DUP_COL_LABEL));
372373
assertThrows(Exception.class, () -> resultSetMetaData.getDatasource(BOT_DUP_COL_LABEL));
373374
}
375+
376+
@Test
377+
void testEmptySelectOrder() throws SQLException {
378+
MongoJsonSchema schema = generateMongoJsonSchema();
379+
380+
MongoResultSetMetaData nullSelectOrderMetadata =
381+
new MongoResultSetMetaData(
382+
schema, null, true, mongoConnection.getLogger(), 0, null);
383+
384+
List<List<String>> emptySelectOrder = new ArrayList<>();
385+
MongoResultSetMetaData emptySelectOrderMetadata =
386+
new MongoResultSetMetaData(
387+
schema, emptySelectOrder, true, mongoConnection.getLogger(), 0, null);
388+
389+
assertEquals(12, nullSelectOrderMetadata.getColumnCount());
390+
assertEquals(12, emptySelectOrderMetadata.getColumnCount());
391+
}
374392
}

0 commit comments

Comments
 (0)