Blob Blame History Raw
This is backport of fixes from upstream pull request 560 and 569,
excluding the testsuite fixes, namely commits:
    3ff47daf68bf45694d5671eef1d9d32fb87f00d3
    c9e5fc8bf53ead845f7b56c9cbe3c1058b636ca5
Fixes rhbz#1547424


diff --git a/org/postgresql/jdbc2/AbstractJdbc2DatabaseMetaData.java b/org/postgresql/jdbc2/AbstractJdbc2DatabaseMetaData.java
index f1109f5..fa4d6c0 100644
--- a/org/postgresql/jdbc2/AbstractJdbc2DatabaseMetaData.java
+++ b/org/postgresql/jdbc2/AbstractJdbc2DatabaseMetaData.java
@@ -4094,6 +4094,15 @@ public abstract class AbstractJdbc2DatabaseMetaData
                 + "  END AS TYPE, "
                 + "  (i.keys).n AS ORDINAL_POSITION, "
                 + "  pg_catalog.pg_get_indexdef(ci.oid, (i.keys).n, false) AS COLUMN_NAME, "
+                + (connection.haveMinimumServerVersion("9.6")
+                ? "  CASE am.amname "
+                + "    WHEN 'btree' THEN CASE i.indoption[(i.keys).n - 1] & 1 "
+                + "      WHEN 1 THEN 'D' "
+                + "      ELSE 'A' "
+                + "    END "
+                + "    ELSE NULL "
+                + "  END AS ASC_OR_DESC, "
+                : ""
                 + "  CASE am.amcanorder "
                 + "    WHEN true THEN CASE i.indoption[(i.keys).n - 1] & 1 "
                 + "      WHEN 1 THEN 'D' "
@@ -4101,6 +4110,7 @@ public abstract class AbstractJdbc2DatabaseMetaData
                 + "    END "
                 + "    ELSE NULL "
                 + "  END AS ASC_OR_DESC, "
+                )
                 + "  ci.reltuples AS CARDINALITY, "
                 + "  ci.relpages AS PAGES, "
                 + "  pg_catalog.pg_get_expr(i.indpred, i.indrelid) AS FILTER_CONDITION "