rake-db 2.23.16 → 2.23.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1583,6 +1583,7 @@ declare namespace DbStructure {
1583
1583
  tsVector?: boolean;
1584
1584
  language?: string;
1585
1585
  languageColumn?: string;
1586
+ exclude?: string[];
1586
1587
  }
1587
1588
  type ForeignKeyMatch = 'f' | 'p' | 's';
1588
1589
  type ForeignKeyAction = 'a' | 'r' | 'c' | 'n' | 'd';
package/dist/index.js CHANGED
@@ -3727,7 +3727,17 @@ const indexesSql = `SELECT
3727
3727
  WHERE schemaname = n.nspname
3728
3728
  AND indexname = ic.relname
3729
3729
  ) AS tablespace,
3730
- pg_get_expr(i.indpred, i.indrelid) AS "where"
3730
+ pg_get_expr(i.indpred, i.indrelid) AS "where",
3731
+ (
3732
+ CASE i.indisexclusion WHEN true
3733
+ THEN (
3734
+ SELECT json_agg(o.oprname)
3735
+ FROM pg_catalog.pg_constraint c, LATERAL unnest(c.conexclop) op_oid
3736
+ JOIN pg_operator o ON o.oid = op_oid
3737
+ WHERE c.conindid = ic.oid
3738
+ )
3739
+ END
3740
+ ) "exclude"
3731
3741
  FROM pg_index i
3732
3742
  JOIN pg_class t ON t.oid = i.indrelid
3733
3743
  JOIN pg_namespace n ON n.oid = t.relnamespace
@@ -3901,7 +3911,10 @@ async function introspectDbSchema(db) {
3901
3911
  }
3902
3912
  }
3903
3913
  }
3914
+ const indexes = [];
3904
3915
  for (const index of result.indexes) {
3916
+ if (index.exclude) continue;
3917
+ indexes.push(index);
3905
3918
  nullsToUndefined(index);
3906
3919
  for (const column of index.columns) {
3907
3920
  if (!("expression" in column)) continue;
@@ -3960,6 +3973,7 @@ async function introspectDbSchema(db) {
3960
3973
  }
3961
3974
  }
3962
3975
  }
3976
+ result.indexes = indexes;
3963
3977
  return result;
3964
3978
  }
3965
3979
  const nullsToUndefined = (obj) => {