由于系统自带的元数据查询模板适配的pg的版本较高,而相同数据库不同的版本之前元数据的存储已经查询语法有差异,导致在低版本的可能无法正确的执行查询,如下图:

可尝试采用下方兼容查询模板(复制下方的的模板替换原有的数据库模板):

兼容模板:
SELECT
ns.nspname AS schema_name,
T.relname AS tbl_def_key,
COALESCE(A.attname, (pg_get_indexdef(ix.indexrelid, ord, TRUE))::TEXT) AS col_def_key,
d.description AS def_name,
CASE
WHEN ix.indisunique THEN 'UNIQUE'
ELSE 'NORMAL'
END AS type,
CASE
WHEN (ix.indoption[ord - 1] & 1) = 0 THEN 'ASC'
ELSE 'DESC'
END AS sort_type,
ord AS order_value,
idx.relname AS def_key
FROM
pg_class T
JOIN pg_namespace ns ON ns.oid = T.relnamespace
JOIN pg_index ix ON T.oid = ix.indrelid
JOIN pg_class idx ON ix.indexrelid = idx.oid
JOIN pg_am am ON idx.relam = am.oid
JOIN (
SELECT
i.indexrelid,
generate_series(1, i.indnatts) AS ord
FROM
pg_index i
) AS key_cols ON key_cols.indexrelid = ix.indexrelid
LEFT JOIN pg_attribute A
ON A.attrelid = T.oid
AND A.attnum = ix.indkey[key_cols.ord - 1]
AND A.attnum > 0
AND NOT A.attisdropped
LEFT JOIN pg_description d ON d.objoid = idx.oid AND d.objsubid = 0
WHERE
ns.nspname IN (:schemaName)
AND CONCAT (ns.nspname, '.', T.relname) IN (:sysTableNames)
AND indisprimary = FALSE
ORDER BY
ns.nspname,
tbl_def_key,
def_key,
order_value;