@neverinfamous/postgres-mcp 2.1.0 → 2.3.0

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.
Files changed (133) hide show
  1. package/README.md +78 -201
  2. package/dist/__tests__/benchmarks/codemode.bench.js +3 -3
  3. package/dist/__tests__/benchmarks/codemode.bench.js.map +1 -1
  4. package/dist/__tests__/benchmarks/connection-pool.bench.js +3 -3
  5. package/dist/__tests__/benchmarks/connection-pool.bench.js.map +1 -1
  6. package/dist/__tests__/benchmarks/introspection-migration.bench.d.ts +11 -0
  7. package/dist/__tests__/benchmarks/introspection-migration.bench.d.ts.map +1 -0
  8. package/dist/__tests__/benchmarks/introspection-migration.bench.js +143 -0
  9. package/dist/__tests__/benchmarks/introspection-migration.bench.js.map +1 -0
  10. package/dist/__tests__/benchmarks/resource-prompts.bench.js +0 -64
  11. package/dist/__tests__/benchmarks/resource-prompts.bench.js.map +1 -1
  12. package/dist/__tests__/benchmarks/schema-parsing.bench.js +4 -4
  13. package/dist/__tests__/benchmarks/schema-parsing.bench.js.map +1 -1
  14. package/dist/__tests__/benchmarks/tool-filtering.bench.js +17 -8
  15. package/dist/__tests__/benchmarks/tool-filtering.bench.js.map +1 -1
  16. package/dist/adapters/DatabaseAdapter.d.ts +0 -4
  17. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
  18. package/dist/adapters/DatabaseAdapter.js +11 -28
  19. package/dist/adapters/DatabaseAdapter.js.map +1 -1
  20. package/dist/adapters/postgresql/PostgresAdapter.d.ts +0 -4
  21. package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -1
  22. package/dist/adapters/postgresql/PostgresAdapter.js +3 -6
  23. package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -1
  24. package/dist/adapters/postgresql/resources/capabilities.js +1 -1
  25. package/dist/adapters/postgresql/resources/cron.d.ts.map +1 -1
  26. package/dist/adapters/postgresql/resources/cron.js +2 -1
  27. package/dist/adapters/postgresql/resources/cron.js.map +1 -1
  28. package/dist/adapters/postgresql/schemas/core/queries.d.ts +4 -4
  29. package/dist/adapters/postgresql/schemas/core/transactions.d.ts +12 -0
  30. package/dist/adapters/postgresql/schemas/core/transactions.d.ts.map +1 -1
  31. package/dist/adapters/postgresql/schemas/core/transactions.js +18 -0
  32. package/dist/adapters/postgresql/schemas/core/transactions.js.map +1 -1
  33. package/dist/adapters/postgresql/schemas/index.d.ts +1 -1
  34. package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -1
  35. package/dist/adapters/postgresql/schemas/index.js +1 -1
  36. package/dist/adapters/postgresql/schemas/index.js.map +1 -1
  37. package/dist/adapters/postgresql/schemas/introspection.d.ts +17 -37
  38. package/dist/adapters/postgresql/schemas/introspection.d.ts.map +1 -1
  39. package/dist/adapters/postgresql/schemas/introspection.js +73 -30
  40. package/dist/adapters/postgresql/schemas/introspection.js.map +1 -1
  41. package/dist/adapters/postgresql/schemas/partman.d.ts +1 -1
  42. package/dist/adapters/postgresql/schemas/vector.d.ts.map +1 -1
  43. package/dist/adapters/postgresql/schemas/vector.js +2 -4
  44. package/dist/adapters/postgresql/schemas/vector.js.map +1 -1
  45. package/dist/adapters/postgresql/tools/introspection/analysis.d.ts.map +1 -1
  46. package/dist/adapters/postgresql/tools/introspection/analysis.js +171 -139
  47. package/dist/adapters/postgresql/tools/introspection/analysis.js.map +1 -1
  48. package/dist/adapters/postgresql/tools/introspection/graph.d.ts +17 -1
  49. package/dist/adapters/postgresql/tools/introspection/graph.d.ts.map +1 -1
  50. package/dist/adapters/postgresql/tools/introspection/graph.js +55 -50
  51. package/dist/adapters/postgresql/tools/introspection/graph.js.map +1 -1
  52. package/dist/adapters/postgresql/tools/introspection/index.d.ts +9 -7
  53. package/dist/adapters/postgresql/tools/introspection/index.d.ts.map +1 -1
  54. package/dist/adapters/postgresql/tools/introspection/index.js +9 -14
  55. package/dist/adapters/postgresql/tools/introspection/index.js.map +1 -1
  56. package/dist/adapters/postgresql/tools/introspection/migration.d.ts +1 -1
  57. package/dist/adapters/postgresql/tools/introspection/migration.d.ts.map +1 -1
  58. package/dist/adapters/postgresql/tools/introspection/migration.js +75 -96
  59. package/dist/adapters/postgresql/tools/introspection/migration.js.map +1 -1
  60. package/dist/adapters/postgresql/tools/migration/index.d.ts +15 -0
  61. package/dist/adapters/postgresql/tools/migration/index.d.ts.map +1 -0
  62. package/dist/adapters/postgresql/tools/migration/index.js +23 -0
  63. package/dist/adapters/postgresql/tools/migration/index.js.map +1 -0
  64. package/dist/adapters/postgresql/tools/performance/anomaly-detection.d.ts +18 -0
  65. package/dist/adapters/postgresql/tools/performance/anomaly-detection.d.ts.map +1 -0
  66. package/dist/adapters/postgresql/tools/performance/anomaly-detection.js +546 -0
  67. package/dist/adapters/postgresql/tools/performance/anomaly-detection.js.map +1 -0
  68. package/dist/adapters/postgresql/tools/performance/diagnostics.d.ts +11 -0
  69. package/dist/adapters/postgresql/tools/performance/diagnostics.d.ts.map +1 -0
  70. package/dist/adapters/postgresql/tools/performance/diagnostics.js +342 -0
  71. package/dist/adapters/postgresql/tools/performance/diagnostics.js.map +1 -0
  72. package/dist/adapters/postgresql/tools/performance/index.d.ts +1 -1
  73. package/dist/adapters/postgresql/tools/performance/index.d.ts.map +1 -1
  74. package/dist/adapters/postgresql/tools/performance/index.js +7 -1
  75. package/dist/adapters/postgresql/tools/performance/index.js.map +1 -1
  76. package/dist/adapters/postgresql/tools/transactions.d.ts.map +1 -1
  77. package/dist/adapters/postgresql/tools/transactions.js +67 -2
  78. package/dist/adapters/postgresql/tools/transactions.js.map +1 -1
  79. package/dist/auth/scopes.d.ts.map +1 -1
  80. package/dist/auth/scopes.js +2 -0
  81. package/dist/auth/scopes.js.map +1 -1
  82. package/dist/cli.js +6 -0
  83. package/dist/cli.js.map +1 -1
  84. package/dist/codemode/api/aliases.d.ts.map +1 -1
  85. package/dist/codemode/api/aliases.js +5 -0
  86. package/dist/codemode/api/aliases.js.map +1 -1
  87. package/dist/codemode/api/index.d.ts +1 -0
  88. package/dist/codemode/api/index.d.ts.map +1 -1
  89. package/dist/codemode/api/index.js +3 -0
  90. package/dist/codemode/api/index.js.map +1 -1
  91. package/dist/codemode/api/maps.d.ts.map +1 -1
  92. package/dist/codemode/api/maps.js +21 -12
  93. package/dist/codemode/api/maps.js.map +1 -1
  94. package/dist/constants/ServerInstructions.d.ts +1 -1
  95. package/dist/constants/ServerInstructions.d.ts.map +1 -1
  96. package/dist/constants/ServerInstructions.js +16 -9
  97. package/dist/constants/ServerInstructions.js.map +1 -1
  98. package/dist/filtering/ToolConstants.d.ts +18 -18
  99. package/dist/filtering/ToolConstants.d.ts.map +1 -1
  100. package/dist/filtering/ToolConstants.js +43 -29
  101. package/dist/filtering/ToolConstants.js.map +1 -1
  102. package/dist/filtering/ToolFilter.d.ts +0 -32
  103. package/dist/filtering/ToolFilter.d.ts.map +1 -1
  104. package/dist/filtering/ToolFilter.js +0 -43
  105. package/dist/filtering/ToolFilter.js.map +1 -1
  106. package/dist/transports/http.d.ts +12 -0
  107. package/dist/transports/http.d.ts.map +1 -1
  108. package/dist/transports/http.js +19 -1
  109. package/dist/transports/http.js.map +1 -1
  110. package/dist/types/filtering.d.ts +1 -1
  111. package/dist/types/filtering.d.ts.map +1 -1
  112. package/dist/types/index.d.ts +2 -2
  113. package/dist/types/index.d.ts.map +1 -1
  114. package/dist/types/index.js.map +1 -1
  115. package/dist/types/mcp.d.ts +0 -21
  116. package/dist/types/mcp.d.ts.map +1 -1
  117. package/dist/types/schema.d.ts +0 -79
  118. package/dist/types/schema.d.ts.map +1 -1
  119. package/dist/utils/icons.d.ts.map +1 -1
  120. package/dist/utils/icons.js +5 -0
  121. package/dist/utils/icons.js.map +1 -1
  122. package/dist/utils/identifiers.d.ts.map +1 -1
  123. package/dist/utils/identifiers.js +6 -6
  124. package/dist/utils/identifiers.js.map +1 -1
  125. package/dist/utils/progress-utils.d.ts +1 -12
  126. package/dist/utils/progress-utils.d.ts.map +1 -1
  127. package/dist/utils/progress-utils.js +0 -18
  128. package/dist/utils/progress-utils.js.map +1 -1
  129. package/package.json +3 -3
  130. package/dist/utils/promptGenerator.d.ts +0 -20
  131. package/dist/utils/promptGenerator.d.ts.map +0 -1
  132. package/dist/utils/promptGenerator.js +0 -81
  133. package/dist/utils/promptGenerator.js.map +0 -1
@@ -7,7 +7,7 @@
7
7
  import { readOnly } from "../../../../utils/annotations.js";
8
8
  import { getToolIcons } from "../../../../utils/icons.js";
9
9
  import { formatPostgresError } from "../core/error-helpers.js";
10
- import { parseArrayColumn, qualifiedName } from "./graph.js";
10
+ import { parseArrayColumn, qualifiedName, checkSchemaExists, checkTableExists, } from "./graph.js";
11
11
  import { SchemaSnapshotSchemaBase, SchemaSnapshotSchema, ConstraintAnalysisSchemaBase, ConstraintAnalysisSchema, MigrationRisksSchemaBase, MigrationRisksSchema,
12
12
  // Output schemas
13
13
  SchemaSnapshotOutputSchema, ConstraintAnalysisOutputSchema, MigrationRisksOutputSchema, } from "../../schemas/index.js";
@@ -26,6 +26,10 @@ export function createSchemaSnapshotTool(adapter) {
26
26
  handler: async (params, _context) => {
27
27
  try {
28
28
  const parsed = SchemaSnapshotSchema.parse(params);
29
+ // Validate schema existence when filtering by schema
30
+ const schemaError = await checkSchemaExists(adapter, parsed.schema);
31
+ if (schemaError)
32
+ return schemaError;
29
33
  const includeAll = !parsed.sections || parsed.sections.length === 0;
30
34
  const sections = new Set(parsed.sections ?? []);
31
35
  const snapshot = {};
@@ -59,11 +63,10 @@ export function createSchemaSnapshotTool(adapter) {
59
63
  schemaParams.push(parsed.schema);
60
64
  schemaWhere = `AND n.nspname = $${String(schemaParams.length)}`;
61
65
  }
62
- // Tables + columns (or compact mode without columns)
63
- if (includeAll || sections.has("tables")) {
64
- const columnsSubquery = parsed.compact
65
- ? ""
66
- : `,
66
+ // Build columns subquery for tables section
67
+ const columnsSubquery = parsed.compact
68
+ ? ""
69
+ : `,
67
70
  (SELECT json_agg(json_build_object(
68
71
  'name', a.attname,
69
72
  'type', pg_catalog.format_type(a.atttypid, a.atttypmod),
@@ -77,163 +80,182 @@ export function createSchemaSnapshotTool(adapter) {
77
80
  LEFT JOIN pg_attrdef d ON (a.attrelid, a.attnum) = (d.adrelid, d.adnum)
78
81
  WHERE a.attrelid = c.oid AND a.attnum > 0 AND NOT a.attisdropped
79
82
  ) AS columns`;
80
- const tablesResult = await adapter.executeQuery(`SELECT
81
- n.nspname AS schema, c.relname AS name,
82
- CASE c.relkind WHEN 'r' THEN 'table' WHEN 'p' THEN 'partitioned_table' END AS type,
83
- CASE WHEN c.reltuples = -1 THEN COALESCE(s.n_live_tup, 0) ELSE c.reltuples END::bigint AS row_count,
84
- pg_table_size(c.oid) AS size_bytes,
85
- obj_description(c.oid, 'pg_class') AS comment${columnsSubquery}
86
- FROM pg_class c
87
- JOIN pg_namespace n ON n.oid = c.relnamespace
88
- LEFT JOIN pg_stat_user_tables s ON s.relid = c.oid
89
- WHERE c.relkind IN ('r', 'p')
90
- ${schemaExclude} ${extensionSchemaExclude} ${extOwnedClause("c.oid")} ${schemaWhere}
91
- ORDER BY n.nspname, c.relname`, schemaParams.length > 0 ? schemaParams : undefined);
83
+ const qp = schemaParams.length > 0 ? schemaParams : undefined;
84
+ // Execute all independent section queries in parallel (PERF-P2)
85
+ const [tablesResult, viewsResult, indexesResult, constraintsResult, functionsResult, triggersResult, seqResult, typesResult, extResult,] = await Promise.all([
86
+ // Tables + columns (or compact mode without columns)
87
+ includeAll || sections.has("tables")
88
+ ? adapter.executeQuery(`SELECT
89
+ n.nspname AS schema, c.relname AS name,
90
+ CASE c.relkind WHEN 'r' THEN 'table' WHEN 'p' THEN 'partitioned_table' END AS type,
91
+ CASE WHEN c.reltuples = -1 THEN COALESCE(s.n_live_tup, 0) ELSE c.reltuples END::bigint AS row_count,
92
+ pg_table_size(c.oid) AS size_bytes,
93
+ obj_description(c.oid, 'pg_class') AS comment${columnsSubquery}
94
+ FROM pg_class c
95
+ JOIN pg_namespace n ON n.oid = c.relnamespace
96
+ LEFT JOIN pg_stat_user_tables s ON s.relid = c.oid
97
+ WHERE c.relkind IN ('r', 'p')
98
+ ${schemaExclude} ${extensionSchemaExclude} ${extOwnedClause("c.oid")} ${schemaWhere}
99
+ ORDER BY n.nspname, c.relname`, qp)
100
+ : null,
101
+ // Views
102
+ includeAll || sections.has("views")
103
+ ? adapter.executeQuery(`SELECT
104
+ n.nspname AS schema, c.relname AS name,
105
+ CASE c.relkind WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized_view' END AS type,
106
+ pg_get_viewdef(c.oid, true) AS definition
107
+ FROM pg_class c
108
+ JOIN pg_namespace n ON n.oid = c.relnamespace
109
+ WHERE c.relkind IN ('v', 'm')
110
+ ${schemaExclude} ${extensionSchemaExclude} ${extOwnedClause("c.oid")} ${schemaWhere}
111
+ ORDER BY n.nspname, c.relname`, qp)
112
+ : null,
113
+ // Indexes
114
+ includeAll || sections.has("indexes")
115
+ ? adapter.executeQuery(`SELECT
116
+ i.relname AS name, t.relname AS table_name, n.nspname AS schema,
117
+ am.amname AS type, ix.indisunique AS is_unique,
118
+ pg_get_indexdef(ix.indexrelid) AS definition,
119
+ pg_relation_size(i.oid) AS size_bytes
120
+ FROM pg_index ix
121
+ JOIN pg_class t ON t.oid = ix.indrelid
122
+ JOIN pg_class i ON i.oid = ix.indexrelid
123
+ JOIN pg_namespace n ON n.oid = t.relnamespace
124
+ JOIN pg_am am ON am.oid = i.relam
125
+ WHERE ${parsed.includeSystem ? "true" : "n.nspname NOT IN ('pg_catalog', 'information_schema') AND n.nspname !~ '^pg_toast'"}
126
+ ${extensionSchemaExclude} ${extOwnedClause("t.oid")} ${schemaWhere}
127
+ ORDER BY n.nspname, t.relname, i.relname`, qp)
128
+ : null,
129
+ // Constraints
130
+ includeAll || sections.has("constraints")
131
+ ? adapter.executeQuery(`SELECT
132
+ c.conname AS name, t.relname AS table_name, n.nspname AS schema,
133
+ CASE c.contype WHEN 'p' THEN 'primary_key' WHEN 'f' THEN 'foreign_key'
134
+ WHEN 'u' THEN 'unique' WHEN 'c' THEN 'check' WHEN 'x' THEN 'exclusion' END AS type,
135
+ pg_get_constraintdef(c.oid) AS definition
136
+ FROM pg_constraint c
137
+ JOIN pg_class t ON t.oid = c.conrelid
138
+ JOIN pg_namespace n ON n.oid = t.relnamespace
139
+ WHERE ${parsed.includeSystem ? "true" : "n.nspname NOT IN ('pg_catalog', 'information_schema')"}
140
+ ${extensionSchemaExclude} ${extOwnedClause("t.oid")} ${schemaWhere}
141
+ ORDER BY n.nspname, t.relname, c.conname`, qp)
142
+ : null,
143
+ // Functions
144
+ includeAll || sections.has("functions")
145
+ ? adapter.executeQuery(`SELECT
146
+ n.nspname AS schema, p.proname AS name,
147
+ pg_get_function_arguments(p.oid) AS arguments,
148
+ pg_get_function_result(p.oid) AS return_type,
149
+ l.lanname AS language, p.provolatile AS volatility
150
+ FROM pg_proc p
151
+ JOIN pg_namespace n ON n.oid = p.pronamespace
152
+ JOIN pg_language l ON l.oid = p.prolang
153
+ WHERE ${parsed.includeSystem ? "true" : "n.nspname NOT IN ('pg_catalog', 'information_schema')"}
154
+ ${extensionSchemaExclude} ${extOwnedClause("p.oid")} ${schemaWhere}
155
+ ORDER BY n.nspname, p.proname`, qp)
156
+ : null,
157
+ // Triggers
158
+ includeAll || sections.has("triggers")
159
+ ? adapter.executeQuery(`SELECT
160
+ t.tgname AS name, c.relname AS table_name, n.nspname AS schema,
161
+ CASE WHEN t.tgtype & 2 = 2 THEN 'BEFORE' WHEN t.tgtype & 64 = 64 THEN 'INSTEAD OF' ELSE 'AFTER' END AS timing,
162
+ array_remove(ARRAY[
163
+ CASE WHEN t.tgtype & 4 = 4 THEN 'INSERT' END,
164
+ CASE WHEN t.tgtype & 8 = 8 THEN 'DELETE' END,
165
+ CASE WHEN t.tgtype & 16 = 16 THEN 'UPDATE' END,
166
+ CASE WHEN t.tgtype & 32 = 32 THEN 'TRUNCATE' END
167
+ ], NULL) AS events,
168
+ p.proname AS function_name
169
+ FROM pg_trigger t
170
+ JOIN pg_class c ON c.oid = t.tgrelid
171
+ JOIN pg_namespace n ON n.oid = c.relnamespace
172
+ JOIN pg_proc p ON p.oid = t.tgfoid
173
+ WHERE NOT t.tgisinternal
174
+ ${schemaExclude} ${extensionSchemaExclude} ${extOwnedClause("c.oid")} ${schemaWhere}
175
+ ORDER BY n.nspname, c.relname, t.tgname`, qp)
176
+ : null,
177
+ // Sequences
178
+ includeAll || sections.has("sequences")
179
+ ? adapter.executeQuery(`SELECT
180
+ n.nspname AS schema, c.relname AS name,
181
+ (SELECT tc.relname || '.' || a.attname
182
+ FROM pg_depend d
183
+ JOIN pg_class tc ON tc.oid = d.refobjid
184
+ JOIN pg_attribute a ON a.attrelid = tc.oid AND a.attnum = d.refobjsubid
185
+ WHERE d.objid = c.oid AND d.classid = 'pg_class'::regclass AND d.deptype = 'a'
186
+ LIMIT 1) AS owned_by
187
+ FROM pg_class c
188
+ JOIN pg_namespace n ON n.oid = c.relnamespace
189
+ WHERE c.relkind = 'S'
190
+ ${schemaExclude} ${extensionSchemaExclude} ${extOwnedClause("c.oid")} ${schemaWhere}
191
+ ORDER BY n.nspname, c.relname`, qp)
192
+ : null,
193
+ // Custom types
194
+ includeAll || sections.has("types")
195
+ ? adapter.executeQuery(`SELECT
196
+ n.nspname AS schema, t.typname AS name,
197
+ CASE t.typtype WHEN 'e' THEN 'enum' WHEN 'c' THEN 'composite' WHEN 'd' THEN 'domain' WHEN 'r' THEN 'range' END AS type,
198
+ CASE WHEN t.typtype = 'e' THEN
199
+ (SELECT json_agg(e.enumlabel ORDER BY e.enumsortorder) FROM pg_enum e WHERE e.enumtypid = t.oid)
200
+ END AS values
201
+ FROM pg_type t
202
+ JOIN pg_namespace n ON n.oid = t.typnamespace
203
+ WHERE t.typtype IN ('e', 'c', 'd', 'r')
204
+ AND n.nspname NOT IN ('pg_catalog', 'information_schema')
205
+ ${extensionSchemaExclude} ${extOwnedClause("t.oid")} ${schemaWhere}
206
+ ORDER BY n.nspname, t.typname`, qp)
207
+ : null,
208
+ // Extensions (skip when schema filter is active — extensions are global objects)
209
+ (includeAll || sections.has("extensions")) && !parsed.schema
210
+ ? adapter.executeQuery(`SELECT extname AS name, extversion AS version,
211
+ n.nspname AS schema
212
+ FROM pg_extension e
213
+ JOIN pg_namespace n ON n.oid = e.extnamespace
214
+ ORDER BY e.extname`)
215
+ : null,
216
+ ]);
217
+ // Assign results to snapshot and stats
218
+ if (tablesResult !== null) {
92
219
  snapshot["tables"] = tablesResult.rows ?? [];
93
220
  stats.tables = tablesResult.rows?.length ?? 0;
94
221
  }
95
- // Views
96
- if (includeAll || sections.has("views")) {
97
- const viewsResult = await adapter.executeQuery(`SELECT
98
- n.nspname AS schema, c.relname AS name,
99
- CASE c.relkind WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized_view' END AS type,
100
- pg_get_viewdef(c.oid, true) AS definition
101
- FROM pg_class c
102
- JOIN pg_namespace n ON n.oid = c.relnamespace
103
- WHERE c.relkind IN ('v', 'm')
104
- ${schemaExclude} ${extensionSchemaExclude} ${extOwnedClause("c.oid")} ${schemaWhere}
105
- ORDER BY n.nspname, c.relname`, schemaParams.length > 0 ? schemaParams : undefined);
222
+ if (viewsResult !== null) {
106
223
  snapshot["views"] = viewsResult.rows ?? [];
107
224
  stats.views = viewsResult.rows?.length ?? 0;
108
225
  }
109
- // Indexes
110
- if (includeAll || sections.has("indexes")) {
111
- const indexesResult = await adapter.executeQuery(`SELECT
112
- i.relname AS name, t.relname AS table_name, n.nspname AS schema,
113
- am.amname AS type, ix.indisunique AS is_unique,
114
- pg_get_indexdef(ix.indexrelid) AS definition,
115
- pg_relation_size(i.oid) AS size_bytes
116
- FROM pg_index ix
117
- JOIN pg_class t ON t.oid = ix.indrelid
118
- JOIN pg_class i ON i.oid = ix.indexrelid
119
- JOIN pg_namespace n ON n.oid = t.relnamespace
120
- JOIN pg_am am ON am.oid = i.relam
121
- WHERE ${parsed.includeSystem ? "true" : "n.nspname NOT IN ('pg_catalog', 'information_schema') AND n.nspname !~ '^pg_toast'"}
122
- ${extensionSchemaExclude} ${extOwnedClause("t.oid")} ${schemaWhere}
123
- ORDER BY n.nspname, t.relname, i.relname`, schemaParams.length > 0 ? schemaParams : undefined);
226
+ if (indexesResult !== null) {
124
227
  snapshot["indexes"] = indexesResult.rows ?? [];
125
228
  stats.indexes = indexesResult.rows?.length ?? 0;
126
229
  }
127
- // Constraints
128
- if (includeAll || sections.has("constraints")) {
129
- const constraintsResult = await adapter.executeQuery(`SELECT
130
- c.conname AS name, t.relname AS table_name, n.nspname AS schema,
131
- CASE c.contype WHEN 'p' THEN 'primary_key' WHEN 'f' THEN 'foreign_key'
132
- WHEN 'u' THEN 'unique' WHEN 'c' THEN 'check' WHEN 'x' THEN 'exclusion' END AS type,
133
- pg_get_constraintdef(c.oid) AS definition
134
- FROM pg_constraint c
135
- JOIN pg_class t ON t.oid = c.conrelid
136
- JOIN pg_namespace n ON n.oid = t.relnamespace
137
- WHERE ${parsed.includeSystem ? "true" : "n.nspname NOT IN ('pg_catalog', 'information_schema')"}
138
- ${extensionSchemaExclude} ${extOwnedClause("t.oid")} ${schemaWhere}
139
- ORDER BY n.nspname, t.relname, c.conname`, schemaParams.length > 0 ? schemaParams : undefined);
230
+ if (constraintsResult !== null) {
140
231
  snapshot["constraints"] = constraintsResult.rows ?? [];
141
232
  stats.constraints = constraintsResult.rows?.length ?? 0;
142
233
  }
143
- // Functions
144
- if (includeAll || sections.has("functions")) {
145
- const functionsResult = await adapter.executeQuery(`SELECT
146
- n.nspname AS schema, p.proname AS name,
147
- pg_get_function_arguments(p.oid) AS arguments,
148
- pg_get_function_result(p.oid) AS return_type,
149
- l.lanname AS language, p.provolatile AS volatility
150
- FROM pg_proc p
151
- JOIN pg_namespace n ON n.oid = p.pronamespace
152
- JOIN pg_language l ON l.oid = p.prolang
153
- WHERE ${parsed.includeSystem ? "true" : "n.nspname NOT IN ('pg_catalog', 'information_schema')"}
154
- ${extensionSchemaExclude} ${extOwnedClause("p.oid")} ${schemaWhere}
155
- ORDER BY n.nspname, p.proname`, schemaParams.length > 0 ? schemaParams : undefined);
234
+ if (functionsResult !== null) {
156
235
  snapshot["functions"] = functionsResult.rows ?? [];
157
236
  stats.functions = functionsResult.rows?.length ?? 0;
158
237
  }
159
- // Triggers
160
- if (includeAll || sections.has("triggers")) {
161
- const triggersResult = await adapter.executeQuery(`SELECT
162
- t.tgname AS name, c.relname AS table_name, n.nspname AS schema,
163
- CASE WHEN t.tgtype & 2 = 2 THEN 'BEFORE' WHEN t.tgtype & 64 = 64 THEN 'INSTEAD OF' ELSE 'AFTER' END AS timing,
164
- array_remove(ARRAY[
165
- CASE WHEN t.tgtype & 4 = 4 THEN 'INSERT' END,
166
- CASE WHEN t.tgtype & 8 = 8 THEN 'DELETE' END,
167
- CASE WHEN t.tgtype & 16 = 16 THEN 'UPDATE' END,
168
- CASE WHEN t.tgtype & 32 = 32 THEN 'TRUNCATE' END
169
- ], NULL) AS events,
170
- p.proname AS function_name
171
- FROM pg_trigger t
172
- JOIN pg_class c ON c.oid = t.tgrelid
173
- JOIN pg_namespace n ON n.oid = c.relnamespace
174
- JOIN pg_proc p ON p.oid = t.tgfoid
175
- WHERE NOT t.tgisinternal
176
- ${schemaExclude} ${extensionSchemaExclude} ${extOwnedClause("c.oid")} ${schemaWhere}
177
- ORDER BY n.nspname, c.relname, t.tgname`, schemaParams.length > 0 ? schemaParams : undefined);
238
+ if (triggersResult !== null) {
178
239
  snapshot["triggers"] = triggersResult.rows ?? [];
179
240
  stats.triggers = triggersResult.rows?.length ?? 0;
180
241
  }
181
- // Sequences
182
- if (includeAll || sections.has("sequences")) {
183
- const seqResult = await adapter.executeQuery(`SELECT
184
- n.nspname AS schema, c.relname AS name,
185
- (SELECT tc.relname || '.' || a.attname
186
- FROM pg_depend d
187
- JOIN pg_class tc ON tc.oid = d.refobjid
188
- JOIN pg_attribute a ON a.attrelid = tc.oid AND a.attnum = d.refobjsubid
189
- WHERE d.objid = c.oid AND d.classid = 'pg_class'::regclass AND d.deptype = 'a'
190
- LIMIT 1) AS owned_by
191
- FROM pg_class c
192
- JOIN pg_namespace n ON n.oid = c.relnamespace
193
- WHERE c.relkind = 'S'
194
- ${schemaExclude} ${extensionSchemaExclude} ${extOwnedClause("c.oid")} ${schemaWhere}
195
- ORDER BY n.nspname, c.relname`, schemaParams.length > 0 ? schemaParams : undefined);
242
+ if (seqResult !== null) {
196
243
  snapshot["sequences"] = seqResult.rows ?? [];
197
244
  stats.sequences = seqResult.rows?.length ?? 0;
198
245
  }
199
- // Custom types
200
- if (includeAll || sections.has("types")) {
201
- const typesResult = await adapter.executeQuery(`SELECT
202
- n.nspname AS schema, t.typname AS name,
203
- CASE t.typtype WHEN 'e' THEN 'enum' WHEN 'c' THEN 'composite' WHEN 'd' THEN 'domain' WHEN 'r' THEN 'range' END AS type,
204
- CASE WHEN t.typtype = 'e' THEN
205
- (SELECT json_agg(e.enumlabel ORDER BY e.enumsortorder) FROM pg_enum e WHERE e.enumtypid = t.oid)
206
- END AS values
207
- FROM pg_type t
208
- JOIN pg_namespace n ON n.oid = t.typnamespace
209
- WHERE t.typtype IN ('e', 'c', 'd', 'r')
210
- AND n.nspname NOT IN ('pg_catalog', 'information_schema')
211
- ${extensionSchemaExclude} ${extOwnedClause("t.oid")} ${schemaWhere}
212
- ORDER BY n.nspname, t.typname`, schemaParams.length > 0 ? schemaParams : undefined);
246
+ if (typesResult !== null) {
213
247
  snapshot["types"] = typesResult.rows ?? [];
214
248
  stats.customTypes = typesResult.rows?.length ?? 0;
215
249
  }
216
- // Extensions (skip when schema filter is active — extensions are global objects)
217
- if ((includeAll || sections.has("extensions")) && !parsed.schema) {
218
- const extResult = await adapter.executeQuery(`SELECT extname AS name, extversion AS version,
219
- n.nspname AS schema
220
- FROM pg_extension e
221
- JOIN pg_namespace n ON n.oid = e.extnamespace
222
- ORDER BY e.extname`);
250
+ if (extResult !== null) {
223
251
  snapshot["extensions"] = extResult.rows ?? [];
224
252
  stats.extensions = extResult.rows?.length ?? 0;
225
253
  }
226
- // Add hint for nonexistent/empty schema
227
- const allEmpty = Object.values(stats).every((v) => v === 0);
228
- const hint = parsed.schema !== undefined && allEmpty
229
- ? `Schema '${parsed.schema}' returned no tables. Verify the schema exists with pg_list_schemas.`
230
- : undefined;
231
254
  return {
232
255
  snapshot,
233
256
  stats,
234
257
  generatedAt: new Date().toISOString(),
235
258
  ...(parsed.compact && { compact: true }),
236
- ...(hint !== undefined && { hint }),
237
259
  };
238
260
  }
239
261
  catch (error) {
@@ -262,6 +284,14 @@ export function createConstraintAnalysisTool(adapter) {
262
284
  handler: async (params, _context) => {
263
285
  try {
264
286
  const parsed = ConstraintAnalysisSchema.parse(params);
287
+ // Validate schema existence when filtering by schema
288
+ const schemaError = await checkSchemaExists(adapter, parsed.schema);
289
+ if (schemaError)
290
+ return schemaError;
291
+ // Validate table existence when filtering by table
292
+ const tableError = await checkTableExists(adapter, parsed.table, parsed.schema);
293
+ if (tableError)
294
+ return tableError;
265
295
  const runAll = !parsed.checks || parsed.checks.length === 0;
266
296
  const checks = new Set(parsed.checks ?? []);
267
297
  const findings = [];
@@ -372,10 +402,6 @@ export function createConstraintAnalysisTool(adapter) {
372
402
  byType[f.type] = (byType[f.type] ?? 0) + 1;
373
403
  bySeverity[f.severity] = (bySeverity[f.severity] ?? 0) + 1;
374
404
  }
375
- // Add hint for nonexistent table
376
- const hint = parsed.table !== undefined && findings.length === 0
377
- ? `No findings for table '${parsed.schema ? parsed.schema + "." : "public."}${parsed.table}'. Verify the table exists with pg_list_tables.`
378
- : undefined;
379
405
  return {
380
406
  findings,
381
407
  summary: {
@@ -383,7 +409,6 @@ export function createConstraintAnalysisTool(adapter) {
383
409
  byType,
384
410
  bySeverity,
385
411
  },
386
- ...(hint !== undefined && { hint }),
387
412
  };
388
413
  }
389
414
  catch (error) {
@@ -527,8 +552,9 @@ export function createMigrationRisksTool(adapter) {
527
552
  outputSchema: MigrationRisksOutputSchema,
528
553
  annotations: readOnly("Migration Risks"),
529
554
  icons: getToolIcons("introspection", readOnly("Migration Risks")),
530
- handler: (params, _context) => Promise.resolve().then(() => {
531
- // adapter is available for future enhancements (e.g., checking table existence)
555
+ handler: (params, _context) => Promise.resolve()
556
+ .then(() => {
557
+ // Suppress unused-var — adapter captured by closure per tool factory pattern
532
558
  void adapter;
533
559
  const parsed = MigrationRisksSchema.parse(params);
534
560
  const risks = [];
@@ -568,7 +594,13 @@ export function createMigrationRisksTool(adapter) {
568
594
  estimatedLockImpact: lockImpacts.size > 0 ? [...lockImpacts].join("; ") : "None",
569
595
  },
570
596
  };
571
- }),
597
+ })
598
+ .catch((error) => ({
599
+ success: false,
600
+ error: formatPostgresError(error, {
601
+ tool: "pg_migration_risks",
602
+ }),
603
+ })),
572
604
  };
573
605
  }
574
606
  //# sourceMappingURL=analysis.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/introspection/analysis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/introspection/analysis.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import type { PostgresAdapter } from "../../PostgresAdapter.js";
8
8
  import type { ToolDefinition } from "../../../../types/index.js";
9
- export interface FkEdge {
9
+ interface FkEdge {
10
10
  constraintName: string;
11
11
  fromSchema: string;
12
12
  fromTable: string;
@@ -39,6 +39,22 @@ export declare function parseArrayColumn(value: unknown): string[];
39
39
  * Create qualified table name
40
40
  */
41
41
  export declare function qualifiedName(schema: string, table: string): string;
42
+ /**
43
+ * Check if a schema exists in the database.
44
+ * Returns null if schema exists or no filter specified, or error response if nonexistent.
45
+ */
46
+ export declare function checkSchemaExists(adapter: PostgresAdapter, schemaFilter?: string): Promise<{
47
+ success: false;
48
+ error: string;
49
+ } | null>;
50
+ /**
51
+ * Check if a table exists in the database.
52
+ * Returns null if table exists or no filter specified, or error response if nonexistent.
53
+ */
54
+ export declare function checkTableExists(adapter: PostgresAdapter, tableFilter?: string, schemaFilter?: string): Promise<{
55
+ success: false;
56
+ error: string;
57
+ } | null>;
42
58
  /**
43
59
  * Detect circular dependencies using DFS
44
60
  */
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/introspection/graph.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,4BAA4B,CAAC;AAqBpC,MAAM,WAAW,MAAM;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,SAAS;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,eAAe,EACxB,YAAY,CAAC,EAAE,MAAM,EACrB,uBAAuB,CAAC,EAAE,OAAO,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CA6DnB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,eAAe,EACxB,YAAY,CAAC,EAAE,MAAM,EACrB,uBAAuB,CAAC,EAAE,OAAO,GAChC,OAAO,CAAC,SAAS,EAAE,CAAC,CAsCtB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAQzD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnE;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAkCzE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAChC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GACpB,MAAM,EAAE,GAAG,IAAI,CA2CjB;AAwCD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,GACvB,cAAc,CA2HhB;AAMD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,GACvB,cAAc,CAiJhB;AAMD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,eAAe,GACvB,cAAc,CA0KhB"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/introspection/graph.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,4BAA4B,CAAC;AAqBpC,UAAU,MAAM;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,SAAS;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,eAAe,EACxB,YAAY,CAAC,EAAE,MAAM,EACrB,uBAAuB,CAAC,EAAE,OAAO,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CA6DnB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,eAAe,EACxB,YAAY,CAAC,EAAE,MAAM,EACrB,uBAAuB,CAAC,EAAE,OAAO,GAChC,OAAO,CAAC,SAAS,EAAE,CAAC,CAsCtB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAQzD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,eAAe,EACxB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAanD;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,eAAe,EACxB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAgBnD;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAkCzE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAChC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GACpB,MAAM,EAAE,GAAG,IAAI,CA2CjB;AAwCD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,GACvB,cAAc,CAyHhB;AAMD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,GACvB,cAAc,CAgIhB;AAMD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,eAAe,GACvB,cAAc,CAgKhB"}