diff --git a/pgjdbc/src/main/java/org/postgresql/jdbc/PgDatabaseMetaData.java b/pgjdbc/src/main/java/org/postgresql/jdbc/PgDatabaseMetaData.java index 092d30db6b..5e49070ee4 100644 --- a/pgjdbc/src/main/java/org/postgresql/jdbc/PgDatabaseMetaData.java +++ b/pgjdbc/src/main/java/org/postgresql/jdbc/PgDatabaseMetaData.java @@ -2424,6 +2424,7 @@ public ResultSet getIndexInfo(String catalog, String schema, String tableName, } sql = "SELECT " + + " tmp.TABLE_CAT, " + " tmp.TABLE_SCHEM, " + " tmp.TABLE_NAME, " + " tmp.NON_UNIQUE, " diff --git a/pgjdbc/src/test/java/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java b/pgjdbc/src/test/java/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java index 53bc9c55e0..df5495e751 100644 --- a/pgjdbc/src/test/java/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java +++ b/pgjdbc/src/test/java/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java @@ -658,6 +658,32 @@ public void testIndexInfo() throws SQLException { rs.close(); } + /** + * Order defined at + * https://docs.oracle.com/javase/8/docs/api/java/sql/DatabaseMetaData.html#getIndexInfo-java.lang.String-java.lang.String-java.lang.String-boolean-boolean- + */ + @Test + public void testIndexInfoColumnOrder() throws SQLException { + DatabaseMetaData dbmd = con.getMetaData(); + assertNotNull(dbmd); + ResultSet rs = dbmd.getIndexInfo(null, null, "metadatatest", false, false); + assertEquals(rs.findColumn("TABLE_CAT"), 1); + assertEquals(rs.findColumn("TABLE_SCHEM"), 2); + assertEquals(rs.findColumn("TABLE_NAME"), 3); + assertEquals(rs.findColumn("NON_UNIQUE"), 4); + assertEquals(rs.findColumn("INDEX_QUALIFIER"), 5); + assertEquals(rs.findColumn("INDEX_NAME"), 6); + assertEquals(rs.findColumn("TYPE"), 7); + assertEquals(rs.findColumn("ORDINAL_POSITION"), 8); + assertEquals(rs.findColumn("COLUMN_NAME"), 9); + assertEquals(rs.findColumn("ASC_OR_DESC"), 10); + assertEquals(rs.findColumn("CARDINALITY"), 11); + assertEquals(rs.findColumn("PAGES"), 12); + assertEquals(rs.findColumn("FILTER_CONDITION"), 13); + + rs.close(); + } + @Test public void testNotNullDomainColumn() throws SQLException { DatabaseMetaData dbmd = con.getMetaData();