postgres analyse index desc #514

This commit is contained in:
Jan Prochazka 2023-03-11 10:33:13 +01:00
parent 9d4105335f
commit feed0cd8db
2 changed files with 18 additions and 13 deletions

View File

@ -199,19 +199,23 @@ class Analyser extends DatabaseAnalyser {
x.schema_name == table.schema_name &&
!uniqueNames.rows.find(y => y.constraint_name == x.index_name)
)
.map(idx => ({
constraintName: idx.index_name,
isUnique: idx.is_unique,
columns: _.compact(
idx.indkey
.split(' ')
.map(colid => indexcols.rows.find(col => col.oid == idx.oid && col.attnum == colid))
.filter(col => col != null)
.map(col => ({
columnName: col.column_name,
}))
),
})),
.map(idx => {
const indOptionSplit = idx.indoption.split(' ');
return {
constraintName: idx.index_name,
isUnique: idx.is_unique,
columns: _.compact(
idx.indkey
.split(' ')
.map(colid => indexcols.rows.find(col => col.oid == idx.oid && col.attnum == colid))
.filter(col => col != null)
.map((col, colIndex) => ({
columnName: col.column_name,
isDescending: parseInt(indOptionSplit[colIndex]) > 0,
}))
),
};
}),
uniques: indexes.rows
.filter(
x =>

View File

@ -6,6 +6,7 @@ module.exports = `
ix.indisprimary as "is_primary",
ix.indisunique as "is_unique",
ix.indkey as "indkey",
ix.indoption as "indoption",
t.oid as "oid"
from
pg_class t,