diff --git a/data/src/main/java/io/github/adamw7/tools/data/source/db/IterableSQLDataSource.java b/data/src/main/java/io/github/adamw7/tools/data/source/db/IterableSQLDataSource.java index 0e40894..81077b9 100644 --- a/data/src/main/java/io/github/adamw7/tools/data/source/db/IterableSQLDataSource.java +++ b/data/src/main/java/io/github/adamw7/tools/data/source/db/IterableSQLDataSource.java @@ -88,10 +88,10 @@ public void reset() { } protected static String[] getNextFrom(ResultSet resultSet) throws SQLException { - String[] columns = getColumnsFrom(resultSet); - String[] row = new String[columns.length]; - for (int i = 0; i < columns.length; ++i) { - row[i] = resultSet.getString(columns[i]); + int columnCount = resultSet.getMetaData().getColumnCount(); + String[] row = new String[columnCount]; + for (int i = 0; i < columnCount; ++i) { + row[i] = resultSet.getString(i + 1); } return row; } diff --git a/data/src/test/java/io/github/adamw7/tools/data/source/db/SQLDataSourceTest.java b/data/src/test/java/io/github/adamw7/tools/data/source/db/SQLDataSourceTest.java index 00b77ae..f7c9a70 100644 --- a/data/src/test/java/io/github/adamw7/tools/data/source/db/SQLDataSourceTest.java +++ b/data/src/test/java/io/github/adamw7/tools/data/source/db/SQLDataSourceTest.java @@ -60,12 +60,19 @@ public void happyPath(IterableSQLDataSource source) { public void happyPathMultiTable(IterableSQLDataSource source) { source.open(); - assertEquals("ID", source.getColumnNames()[0]); - assertEquals("VALUE", source.getColumnNames()[1]); + String[] columnNames = source.getColumnNames(); + assertEquals("ID", columnNames[0]); + assertEquals("VALUE", columnNames[1]); + assertEquals("ID", columnNames[2]); + assertEquals("NAME", columnNames[3]); + assertEquals("SURNAME", columnNames[4]); String[] row = source.nextRow(); assertEquals("1", row[0]); assertEquals("1000", row[1]); + assertEquals("1", row[2]); + assertEquals("Adam", row[3]); + assertEquals("W", row[4]); Utils.close(source); }