@neverinfamous/postgres-mcp 1.0.2 → 1.2.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 (273) hide show
  1. package/README.md +65 -38
  2. package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
  3. package/dist/__tests__/mocks/adapter.js +0 -1
  4. package/dist/__tests__/mocks/adapter.js.map +1 -1
  5. package/dist/__tests__/mocks/pool.d.ts.map +1 -1
  6. package/dist/__tests__/mocks/pool.js +0 -1
  7. package/dist/__tests__/mocks/pool.js.map +1 -1
  8. package/dist/adapters/DatabaseAdapter.d.ts +5 -6
  9. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
  10. package/dist/adapters/DatabaseAdapter.js +74 -53
  11. package/dist/adapters/DatabaseAdapter.js.map +1 -1
  12. package/dist/adapters/postgresql/PostgresAdapter.d.ts +13 -0
  13. package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -1
  14. package/dist/adapters/postgresql/PostgresAdapter.js +73 -8
  15. package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -1
  16. package/dist/adapters/postgresql/prompts/backup.d.ts.map +1 -1
  17. package/dist/adapters/postgresql/prompts/backup.js +2 -3
  18. package/dist/adapters/postgresql/prompts/backup.js.map +1 -1
  19. package/dist/adapters/postgresql/prompts/citext.d.ts.map +1 -1
  20. package/dist/adapters/postgresql/prompts/citext.js +3 -4
  21. package/dist/adapters/postgresql/prompts/citext.js.map +1 -1
  22. package/dist/adapters/postgresql/prompts/extensionSetup.d.ts.map +1 -1
  23. package/dist/adapters/postgresql/prompts/extensionSetup.js +2 -3
  24. package/dist/adapters/postgresql/prompts/extensionSetup.js.map +1 -1
  25. package/dist/adapters/postgresql/prompts/health.d.ts.map +1 -1
  26. package/dist/adapters/postgresql/prompts/health.js +2 -3
  27. package/dist/adapters/postgresql/prompts/health.js.map +1 -1
  28. package/dist/adapters/postgresql/prompts/index.js +20 -27
  29. package/dist/adapters/postgresql/prompts/index.js.map +1 -1
  30. package/dist/adapters/postgresql/prompts/indexTuning.d.ts.map +1 -1
  31. package/dist/adapters/postgresql/prompts/indexTuning.js +2 -3
  32. package/dist/adapters/postgresql/prompts/indexTuning.js.map +1 -1
  33. package/dist/adapters/postgresql/prompts/kcache.d.ts.map +1 -1
  34. package/dist/adapters/postgresql/prompts/kcache.js +3 -4
  35. package/dist/adapters/postgresql/prompts/kcache.js.map +1 -1
  36. package/dist/adapters/postgresql/prompts/ltree.d.ts.map +1 -1
  37. package/dist/adapters/postgresql/prompts/ltree.js +3 -4
  38. package/dist/adapters/postgresql/prompts/ltree.js.map +1 -1
  39. package/dist/adapters/postgresql/prompts/partman.d.ts.map +1 -1
  40. package/dist/adapters/postgresql/prompts/partman.js +2 -3
  41. package/dist/adapters/postgresql/prompts/partman.js.map +1 -1
  42. package/dist/adapters/postgresql/prompts/pgcron.d.ts.map +1 -1
  43. package/dist/adapters/postgresql/prompts/pgcron.js +2 -3
  44. package/dist/adapters/postgresql/prompts/pgcron.js.map +1 -1
  45. package/dist/adapters/postgresql/prompts/pgcrypto.d.ts.map +1 -1
  46. package/dist/adapters/postgresql/prompts/pgcrypto.js +3 -4
  47. package/dist/adapters/postgresql/prompts/pgcrypto.js.map +1 -1
  48. package/dist/adapters/postgresql/prompts/pgvector.d.ts.map +1 -1
  49. package/dist/adapters/postgresql/prompts/pgvector.js +3 -4
  50. package/dist/adapters/postgresql/prompts/pgvector.js.map +1 -1
  51. package/dist/adapters/postgresql/prompts/postgis.d.ts.map +1 -1
  52. package/dist/adapters/postgresql/prompts/postgis.js +2 -3
  53. package/dist/adapters/postgresql/prompts/postgis.js.map +1 -1
  54. package/dist/adapters/postgresql/schemas/admin.d.ts +42 -0
  55. package/dist/adapters/postgresql/schemas/admin.d.ts.map +1 -1
  56. package/dist/adapters/postgresql/schemas/admin.js +61 -0
  57. package/dist/adapters/postgresql/schemas/admin.js.map +1 -1
  58. package/dist/adapters/postgresql/schemas/backup.d.ts +119 -0
  59. package/dist/adapters/postgresql/schemas/backup.d.ts.map +1 -1
  60. package/dist/adapters/postgresql/schemas/backup.js +169 -0
  61. package/dist/adapters/postgresql/schemas/backup.js.map +1 -1
  62. package/dist/adapters/postgresql/schemas/core.d.ts +28 -0
  63. package/dist/adapters/postgresql/schemas/core.d.ts.map +1 -1
  64. package/dist/adapters/postgresql/schemas/core.js +66 -0
  65. package/dist/adapters/postgresql/schemas/core.js.map +1 -1
  66. package/dist/adapters/postgresql/schemas/cron.d.ts +117 -0
  67. package/dist/adapters/postgresql/schemas/cron.d.ts.map +1 -1
  68. package/dist/adapters/postgresql/schemas/cron.js +148 -1
  69. package/dist/adapters/postgresql/schemas/cron.js.map +1 -1
  70. package/dist/adapters/postgresql/schemas/extensions.d.ts +335 -0
  71. package/dist/adapters/postgresql/schemas/extensions.d.ts.map +1 -1
  72. package/dist/adapters/postgresql/schemas/extensions.js +455 -2
  73. package/dist/adapters/postgresql/schemas/extensions.js.map +1 -1
  74. package/dist/adapters/postgresql/schemas/index.d.ts +15 -15
  75. package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -1
  76. package/dist/adapters/postgresql/schemas/index.js +56 -16
  77. package/dist/adapters/postgresql/schemas/index.js.map +1 -1
  78. package/dist/adapters/postgresql/schemas/jsonb.d.ts +408 -21
  79. package/dist/adapters/postgresql/schemas/jsonb.d.ts.map +1 -1
  80. package/dist/adapters/postgresql/schemas/jsonb.js +544 -23
  81. package/dist/adapters/postgresql/schemas/jsonb.js.map +1 -1
  82. package/dist/adapters/postgresql/schemas/monitoring.d.ts +179 -0
  83. package/dist/adapters/postgresql/schemas/monitoring.d.ts.map +1 -1
  84. package/dist/adapters/postgresql/schemas/monitoring.js +240 -0
  85. package/dist/adapters/postgresql/schemas/monitoring.js.map +1 -1
  86. package/dist/adapters/postgresql/schemas/partitioning.d.ts +60 -0
  87. package/dist/adapters/postgresql/schemas/partitioning.d.ts.map +1 -1
  88. package/dist/adapters/postgresql/schemas/partitioning.js +89 -2
  89. package/dist/adapters/postgresql/schemas/partitioning.js.map +1 -1
  90. package/dist/adapters/postgresql/schemas/partman.d.ts +156 -0
  91. package/dist/adapters/postgresql/schemas/partman.d.ts.map +1 -1
  92. package/dist/adapters/postgresql/schemas/partman.js +203 -0
  93. package/dist/adapters/postgresql/schemas/partman.js.map +1 -1
  94. package/dist/adapters/postgresql/schemas/performance.d.ts +124 -0
  95. package/dist/adapters/postgresql/schemas/performance.d.ts.map +1 -1
  96. package/dist/adapters/postgresql/schemas/performance.js +220 -0
  97. package/dist/adapters/postgresql/schemas/performance.js.map +1 -1
  98. package/dist/adapters/postgresql/schemas/postgis.d.ts +173 -0
  99. package/dist/adapters/postgresql/schemas/postgis.d.ts.map +1 -1
  100. package/dist/adapters/postgresql/schemas/postgis.js +279 -3
  101. package/dist/adapters/postgresql/schemas/postgis.js.map +1 -1
  102. package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts +100 -0
  103. package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts.map +1 -1
  104. package/dist/adapters/postgresql/schemas/schema-mgmt.js +133 -0
  105. package/dist/adapters/postgresql/schemas/schema-mgmt.js.map +1 -1
  106. package/dist/adapters/postgresql/schemas/stats.d.ts +248 -4
  107. package/dist/adapters/postgresql/schemas/stats.d.ts.map +1 -1
  108. package/dist/adapters/postgresql/schemas/stats.js +362 -0
  109. package/dist/adapters/postgresql/schemas/stats.js.map +1 -1
  110. package/dist/adapters/postgresql/schemas/text-search.d.ts +47 -0
  111. package/dist/adapters/postgresql/schemas/text-search.d.ts.map +1 -1
  112. package/dist/adapters/postgresql/schemas/text-search.js +66 -1
  113. package/dist/adapters/postgresql/schemas/text-search.js.map +1 -1
  114. package/dist/adapters/postgresql/schemas/vector.d.ts +252 -0
  115. package/dist/adapters/postgresql/schemas/vector.d.ts.map +1 -1
  116. package/dist/adapters/postgresql/schemas/vector.js +373 -0
  117. package/dist/adapters/postgresql/schemas/vector.js.map +1 -1
  118. package/dist/adapters/postgresql/tools/admin.d.ts.map +1 -1
  119. package/dist/adapters/postgresql/tools/admin.js +37 -7
  120. package/dist/adapters/postgresql/tools/admin.js.map +1 -1
  121. package/dist/adapters/postgresql/tools/backup/dump.d.ts.map +1 -1
  122. package/dist/adapters/postgresql/tools/backup/dump.js +64 -52
  123. package/dist/adapters/postgresql/tools/backup/dump.js.map +1 -1
  124. package/dist/adapters/postgresql/tools/backup/planning.d.ts.map +1 -1
  125. package/dist/adapters/postgresql/tools/backup/planning.js +181 -172
  126. package/dist/adapters/postgresql/tools/backup/planning.js.map +1 -1
  127. package/dist/adapters/postgresql/tools/citext.d.ts.map +1 -1
  128. package/dist/adapters/postgresql/tools/citext.js +9 -1
  129. package/dist/adapters/postgresql/tools/citext.js.map +1 -1
  130. package/dist/adapters/postgresql/tools/codemode/index.d.ts +11 -0
  131. package/dist/adapters/postgresql/tools/codemode/index.d.ts.map +1 -1
  132. package/dist/adapters/postgresql/tools/codemode/index.js +33 -0
  133. package/dist/adapters/postgresql/tools/codemode/index.js.map +1 -1
  134. package/dist/adapters/postgresql/tools/core/convenience.d.ts.map +1 -1
  135. package/dist/adapters/postgresql/tools/core/convenience.js +31 -5
  136. package/dist/adapters/postgresql/tools/core/convenience.js.map +1 -1
  137. package/dist/adapters/postgresql/tools/core/health.d.ts.map +1 -1
  138. package/dist/adapters/postgresql/tools/core/health.js +12 -4
  139. package/dist/adapters/postgresql/tools/core/health.js.map +1 -1
  140. package/dist/adapters/postgresql/tools/core/indexes.d.ts.map +1 -1
  141. package/dist/adapters/postgresql/tools/core/indexes.js +4 -0
  142. package/dist/adapters/postgresql/tools/core/indexes.js.map +1 -1
  143. package/dist/adapters/postgresql/tools/core/objects.d.ts.map +1 -1
  144. package/dist/adapters/postgresql/tools/core/objects.js +4 -1
  145. package/dist/adapters/postgresql/tools/core/objects.js.map +1 -1
  146. package/dist/adapters/postgresql/tools/core/query.d.ts.map +1 -1
  147. package/dist/adapters/postgresql/tools/core/query.js +6 -3
  148. package/dist/adapters/postgresql/tools/core/query.js.map +1 -1
  149. package/dist/adapters/postgresql/tools/core/schemas.d.ts +165 -0
  150. package/dist/adapters/postgresql/tools/core/schemas.d.ts.map +1 -1
  151. package/dist/adapters/postgresql/tools/core/schemas.js +242 -0
  152. package/dist/adapters/postgresql/tools/core/schemas.js.map +1 -1
  153. package/dist/adapters/postgresql/tools/core/tables.d.ts.map +1 -1
  154. package/dist/adapters/postgresql/tools/core/tables.js +11 -2
  155. package/dist/adapters/postgresql/tools/core/tables.js.map +1 -1
  156. package/dist/adapters/postgresql/tools/cron.d.ts.map +1 -1
  157. package/dist/adapters/postgresql/tools/cron.js +12 -2
  158. package/dist/adapters/postgresql/tools/cron.js.map +1 -1
  159. package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts.map +1 -1
  160. package/dist/adapters/postgresql/tools/jsonb/advanced.js +56 -46
  161. package/dist/adapters/postgresql/tools/jsonb/advanced.js.map +1 -1
  162. package/dist/adapters/postgresql/tools/jsonb/basic.d.ts.map +1 -1
  163. package/dist/adapters/postgresql/tools/jsonb/basic.js +114 -72
  164. package/dist/adapters/postgresql/tools/jsonb/basic.js.map +1 -1
  165. package/dist/adapters/postgresql/tools/kcache.d.ts.map +1 -1
  166. package/dist/adapters/postgresql/tools/kcache.js +55 -16
  167. package/dist/adapters/postgresql/tools/kcache.js.map +1 -1
  168. package/dist/adapters/postgresql/tools/ltree.d.ts.map +1 -1
  169. package/dist/adapters/postgresql/tools/ltree.js +16 -1
  170. package/dist/adapters/postgresql/tools/ltree.js.map +1 -1
  171. package/dist/adapters/postgresql/tools/monitoring.d.ts.map +1 -1
  172. package/dist/adapters/postgresql/tools/monitoring.js +19 -7
  173. package/dist/adapters/postgresql/tools/monitoring.js.map +1 -1
  174. package/dist/adapters/postgresql/tools/partitioning.d.ts.map +1 -1
  175. package/dist/adapters/postgresql/tools/partitioning.js +80 -1
  176. package/dist/adapters/postgresql/tools/partitioning.js.map +1 -1
  177. package/dist/adapters/postgresql/tools/partman/management.d.ts.map +1 -1
  178. package/dist/adapters/postgresql/tools/partman/management.js +9 -2
  179. package/dist/adapters/postgresql/tools/partman/management.js.map +1 -1
  180. package/dist/adapters/postgresql/tools/partman/operations.d.ts.map +1 -1
  181. package/dist/adapters/postgresql/tools/partman/operations.js +11 -4
  182. package/dist/adapters/postgresql/tools/partman/operations.js.map +1 -1
  183. package/dist/adapters/postgresql/tools/performance/analysis.d.ts.map +1 -1
  184. package/dist/adapters/postgresql/tools/performance/analysis.js +4 -0
  185. package/dist/adapters/postgresql/tools/performance/analysis.js.map +1 -1
  186. package/dist/adapters/postgresql/tools/performance/explain.d.ts.map +1 -1
  187. package/dist/adapters/postgresql/tools/performance/explain.js +4 -1
  188. package/dist/adapters/postgresql/tools/performance/explain.js.map +1 -1
  189. package/dist/adapters/postgresql/tools/performance/monitoring.d.ts.map +1 -1
  190. package/dist/adapters/postgresql/tools/performance/monitoring.js +10 -8
  191. package/dist/adapters/postgresql/tools/performance/monitoring.js.map +1 -1
  192. package/dist/adapters/postgresql/tools/performance/optimization.d.ts.map +1 -1
  193. package/dist/adapters/postgresql/tools/performance/optimization.js +4 -0
  194. package/dist/adapters/postgresql/tools/performance/optimization.js.map +1 -1
  195. package/dist/adapters/postgresql/tools/performance/stats.d.ts.map +1 -1
  196. package/dist/adapters/postgresql/tools/performance/stats.js +13 -1
  197. package/dist/adapters/postgresql/tools/performance/stats.js.map +1 -1
  198. package/dist/adapters/postgresql/tools/pgcrypto.d.ts.map +1 -1
  199. package/dist/adapters/postgresql/tools/pgcrypto.js +18 -9
  200. package/dist/adapters/postgresql/tools/pgcrypto.js.map +1 -1
  201. package/dist/adapters/postgresql/tools/postgis/advanced.d.ts.map +1 -1
  202. package/dist/adapters/postgresql/tools/postgis/advanced.js +41 -6
  203. package/dist/adapters/postgresql/tools/postgis/advanced.js.map +1 -1
  204. package/dist/adapters/postgresql/tools/postgis/basic.d.ts.map +1 -1
  205. package/dist/adapters/postgresql/tools/postgis/basic.js +13 -3
  206. package/dist/adapters/postgresql/tools/postgis/basic.js.map +1 -1
  207. package/dist/adapters/postgresql/tools/postgis/standalone.d.ts.map +1 -1
  208. package/dist/adapters/postgresql/tools/postgis/standalone.js +6 -1
  209. package/dist/adapters/postgresql/tools/postgis/standalone.js.map +1 -1
  210. package/dist/adapters/postgresql/tools/schema.d.ts.map +1 -1
  211. package/dist/adapters/postgresql/tools/schema.js +33 -3
  212. package/dist/adapters/postgresql/tools/schema.js.map +1 -1
  213. package/dist/adapters/postgresql/tools/stats/advanced.d.ts.map +1 -1
  214. package/dist/adapters/postgresql/tools/stats/advanced.js +59 -20
  215. package/dist/adapters/postgresql/tools/stats/advanced.js.map +1 -1
  216. package/dist/adapters/postgresql/tools/stats/basic.d.ts.map +1 -1
  217. package/dist/adapters/postgresql/tools/stats/basic.js +35 -13
  218. package/dist/adapters/postgresql/tools/stats/basic.js.map +1 -1
  219. package/dist/adapters/postgresql/tools/text.d.ts.map +1 -1
  220. package/dist/adapters/postgresql/tools/text.js +54 -33
  221. package/dist/adapters/postgresql/tools/text.js.map +1 -1
  222. package/dist/adapters/postgresql/tools/transactions.d.ts.map +1 -1
  223. package/dist/adapters/postgresql/tools/transactions.js +10 -1
  224. package/dist/adapters/postgresql/tools/transactions.js.map +1 -1
  225. package/dist/adapters/postgresql/tools/vector/advanced.d.ts.map +1 -1
  226. package/dist/adapters/postgresql/tools/vector/advanced.js +81 -43
  227. package/dist/adapters/postgresql/tools/vector/advanced.js.map +1 -1
  228. package/dist/adapters/postgresql/tools/vector/basic.d.ts +8 -0
  229. package/dist/adapters/postgresql/tools/vector/basic.d.ts.map +1 -1
  230. package/dist/adapters/postgresql/tools/vector/basic.js +175 -57
  231. package/dist/adapters/postgresql/tools/vector/basic.js.map +1 -1
  232. package/dist/cli/args.d.ts +2 -0
  233. package/dist/cli/args.d.ts.map +1 -1
  234. package/dist/cli/args.js +15 -0
  235. package/dist/cli/args.js.map +1 -1
  236. package/dist/cli.js +7 -6
  237. package/dist/cli.js.map +1 -1
  238. package/dist/codemode/api.d.ts.map +1 -1
  239. package/dist/codemode/api.js +7 -2
  240. package/dist/codemode/api.js.map +1 -1
  241. package/dist/constants/ServerInstructions.d.ts +1 -1
  242. package/dist/constants/ServerInstructions.d.ts.map +1 -1
  243. package/dist/constants/ServerInstructions.js +45 -35
  244. package/dist/constants/ServerInstructions.js.map +1 -1
  245. package/dist/filtering/ToolConstants.d.ts +29 -13
  246. package/dist/filtering/ToolConstants.d.ts.map +1 -1
  247. package/dist/filtering/ToolConstants.js +45 -27
  248. package/dist/filtering/ToolConstants.js.map +1 -1
  249. package/dist/types/adapters.d.ts +2 -0
  250. package/dist/types/adapters.d.ts.map +1 -1
  251. package/dist/types/oauth.d.ts +4 -0
  252. package/dist/types/oauth.d.ts.map +1 -1
  253. package/dist/utils/fts-config.d.ts +38 -0
  254. package/dist/utils/fts-config.d.ts.map +1 -0
  255. package/dist/utils/fts-config.js +64 -0
  256. package/dist/utils/fts-config.js.map +1 -0
  257. package/dist/utils/identifiers.d.ts +21 -0
  258. package/dist/utils/identifiers.d.ts.map +1 -1
  259. package/dist/utils/identifiers.js +48 -0
  260. package/dist/utils/identifiers.js.map +1 -1
  261. package/dist/utils/logger.d.ts +22 -1
  262. package/dist/utils/logger.d.ts.map +1 -1
  263. package/dist/utils/logger.js +73 -16
  264. package/dist/utils/logger.js.map +1 -1
  265. package/dist/utils/progress-utils.d.ts +44 -0
  266. package/dist/utils/progress-utils.d.ts.map +1 -0
  267. package/dist/utils/progress-utils.js +75 -0
  268. package/dist/utils/progress-utils.js.map +1 -0
  269. package/dist/utils/where-clause.d.ts +39 -0
  270. package/dist/utils/where-clause.d.ts.map +1 -0
  271. package/dist/utils/where-clause.js +123 -0
  272. package/dist/utils/where-clause.js.map +1 -0
  273. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"advanced.js","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/vector/advanced.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"advanced.js","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/vector/advanced.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,14 @@ export declare function truncateVector(vec: number[] | null | undefined, maxDisp
12
12
  dimensions: number;
13
13
  truncated: boolean;
14
14
  };
15
+ /**
16
+ * Two-step existence check: table first, then column.
17
+ * Returns null if both exist, or {error, suggestion} if either is missing.
18
+ */
19
+ export declare function checkTableAndColumn(adapter: PostgresAdapter, table: string, column: string, schema: string): Promise<{
20
+ error: string;
21
+ suggestion: string;
22
+ } | null>;
15
23
  export declare function createVectorExtensionTool(adapter: PostgresAdapter): ToolDefinition;
16
24
  export declare function createVectorAddColumnTool(adapter: PostgresAdapter): ToolDefinition;
17
25
  export declare function createVectorInsertTool(adapter: PostgresAdapter): ToolDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/vector/basic.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,4BAA4B,CAAC;AA+BpC;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,EAChC,UAAU,SAAK,GACd;IACD,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB,CAWA;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,GACvB,cAAc,CAahB;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,GACvB,cAAc,CA6FhB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,GACvB,cAAc,CAoMhB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,GACvB,cAAc,CA6IhB;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,eAAe,GACvB,cAAc,CAoIhB;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,eAAe,GACvB,cAAc,CAgDhB;AAED,wBAAgB,yBAAyB,IAAI,cAAc,CAmC1D;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,GACvB,cAAc,CAkNhB;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,eAAe,GACvB,cAAc,CAuGhB;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,eAAe,GACvB,cAAc,CA2IhB"}
1
+ {"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/vector/basic.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,4BAA4B,CAAC;AA0CpC;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,EAChC,UAAU,SAAK,GACd;IACD,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB,CAWA;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAyBvD;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,GACvB,cAAc,CAchB;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,GACvB,cAAc,CA+GhB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,GACvB,cAAc,CAoOhB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,GACvB,cAAc,CAkJhB;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,eAAe,GACvB,cAAc,CAgJhB;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,eAAe,GACvB,cAAc,CAiDhB;AAED,wBAAgB,yBAAyB,IAAI,cAAc,CAmC1D;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,GACvB,cAAc,CAyNhB;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,eAAe,GACvB,cAAc,CAkHhB;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,eAAe,GACvB,cAAc,CAwKhB"}
@@ -5,11 +5,14 @@ import { z } from "zod";
5
5
  import { readOnly, write } from "../../../../utils/annotations.js";
6
6
  import { getToolIcons } from "../../../../utils/icons.js";
7
7
  import { sanitizeIdentifier, sanitizeTableName, } from "../../../../utils/identifiers.js";
8
+ import { sanitizeWhereClause } from "../../../../utils/where-clause.js";
8
9
  import {
9
10
  // Base schemas for MCP visibility (Split Schema pattern)
10
11
  VectorSearchSchemaBase, VectorCreateIndexSchemaBase,
11
12
  // Transformed schemas for handler validation
12
- VectorSearchSchema, VectorCreateIndexSchema, } from "../../schemas/index.js";
13
+ VectorSearchSchema, VectorCreateIndexSchema,
14
+ // Output schemas
15
+ VectorCreateExtensionOutputSchema, VectorAddColumnOutputSchema, VectorInsertOutputSchema, VectorSearchOutputSchema, VectorCreateIndexOutputSchema, VectorDistanceOutputSchema, VectorNormalizeOutputSchema, VectorAggregateOutputSchema, VectorValidateOutputSchema, } from "../../schemas/index.js";
13
16
  /**
14
17
  * Parse a PostgreSQL vector string to a number array.
15
18
  * Handles formats like "[0.1,0.2,0.3]" or "(0.1,0.2,0.3)"
@@ -41,12 +44,43 @@ export function truncateVector(vec, maxDisplay = 10) {
41
44
  const preview = [...vec.slice(0, half), ...vec.slice(-half)];
42
45
  return { preview, dimensions: vec.length, truncated: true };
43
46
  }
47
+ /**
48
+ * Two-step existence check: table first, then column.
49
+ * Returns null if both exist, or {error, suggestion} if either is missing.
50
+ */
51
+ export async function checkTableAndColumn(adapter, table, column, schema) {
52
+ // Step 1: check column existence (fast path — covers the common success case)
53
+ const colSql = `
54
+ SELECT 1 FROM information_schema.columns
55
+ WHERE table_schema = $1 AND table_name = $2 AND column_name = $3
56
+ `;
57
+ const colResult = await adapter.executeQuery(colSql, [schema, table, column]);
58
+ if ((colResult.rows?.length ?? 0) > 0)
59
+ return null; // both exist
60
+ // Step 2: disambiguate — is it the table or the column?
61
+ const tblSql = `
62
+ SELECT 1 FROM information_schema.tables
63
+ WHERE table_schema = $1 AND table_name = $2
64
+ `;
65
+ const tblResult = await adapter.executeQuery(tblSql, [schema, table]);
66
+ if ((tblResult.rows?.length ?? 0) === 0) {
67
+ return {
68
+ error: `Table '${table}' does not exist in schema '${schema}'`,
69
+ suggestion: "Use pg_list_tables to find available tables",
70
+ };
71
+ }
72
+ return {
73
+ error: `Column '${column}' does not exist in table '${table}'`,
74
+ suggestion: "Use pg_describe_table to find available columns",
75
+ };
76
+ }
44
77
  export function createVectorExtensionTool(adapter) {
45
78
  return {
46
79
  name: "pg_vector_create_extension",
47
80
  description: "Enable the pgvector extension for vector similarity search.",
48
81
  group: "vector",
49
82
  inputSchema: z.object({}),
83
+ outputSchema: VectorCreateExtensionOutputSchema,
50
84
  annotations: write("Create Vector Extension"),
51
85
  icons: getToolIcons("vector", write("Create Vector Extension")),
52
86
  handler: async (_params, _context) => {
@@ -85,6 +119,7 @@ export function createVectorAddColumnTool(adapter) {
85
119
  group: "vector",
86
120
  // Use base schema for MCP visibility
87
121
  inputSchema: AddColumnSchemaBase,
122
+ outputSchema: VectorAddColumnOutputSchema,
88
123
  annotations: write("Add Vector Column"),
89
124
  icons: getToolIcons("vector", write("Add Vector Column")),
90
125
  handler: async (params, _context) => {
@@ -104,15 +139,31 @@ export function createVectorAddColumnTool(adapter) {
104
139
  requiredParams: ["table", "column", "dimensions"],
105
140
  };
106
141
  }
142
+ const schemaName = parsed.schema ?? "public";
107
143
  const tableName = sanitizeTableName(parsed.table, parsed.schema);
108
144
  const columnName = sanitizeIdentifier(parsed.column);
145
+ // Verify table exists before ALTER TABLE
146
+ const tblCheckSql = `
147
+ SELECT 1 FROM information_schema.tables
148
+ WHERE table_schema = $1 AND table_name = $2
149
+ `;
150
+ const tblCheckResult = await adapter.executeQuery(tblCheckSql, [
151
+ schemaName,
152
+ parsed.table,
153
+ ]);
154
+ if ((tblCheckResult.rows?.length ?? 0) === 0) {
155
+ return {
156
+ success: false,
157
+ error: `Table '${parsed.table}' does not exist in schema '${schemaName}'`,
158
+ suggestion: "Use pg_list_tables to find available tables",
159
+ };
160
+ }
109
161
  // Check if column exists when ifNotExists is true
110
162
  if (parsed.ifNotExists) {
111
- const schemaName = parsed.schema ?? "public";
112
163
  const checkSql = `
113
- SELECT 1 FROM information_schema.columns
114
- WHERE table_schema = $1 AND table_name = $2 AND column_name = $3
115
- `;
164
+ SELECT 1 FROM information_schema.columns
165
+ WHERE table_schema = $1 AND table_name = $2 AND column_name = $3
166
+ `;
116
167
  const checkResult = await adapter.executeQuery(checkSql, [
117
168
  schemaName,
118
169
  parsed.table,
@@ -143,45 +194,63 @@ export function createVectorAddColumnTool(adapter) {
143
194
  };
144
195
  }
145
196
  export function createVectorInsertTool(adapter) {
197
+ // Base schema for MCP visibility (Split Schema pattern)
198
+ const VectorInsertSchemaBase = z.object({
199
+ table: z.string().optional().describe("Table name"),
200
+ tableName: z.string().optional().describe("Alias for table"),
201
+ column: z.string().optional().describe("Column name"),
202
+ col: z.string().optional().describe("Alias for column"),
203
+ vector: z.array(z.number()),
204
+ additionalColumns: z.record(z.string(), z.unknown()).optional(),
205
+ schema: z.string().optional(),
206
+ updateExisting: z
207
+ .boolean()
208
+ .optional()
209
+ .describe("Update vector on existing row (requires conflictColumn and conflictValue)"),
210
+ conflictColumn: z
211
+ .string()
212
+ .optional()
213
+ .describe("Column to match for updates (e.g., id)"),
214
+ conflictValue: z
215
+ .union([z.string(), z.number()])
216
+ .optional()
217
+ .describe("Value of conflictColumn to match (e.g., 123)"),
218
+ });
219
+ // Transformed schema with alias resolution for handler
220
+ const VectorInsertSchema = VectorInsertSchemaBase.transform((data) => ({
221
+ table: data.table ?? data.tableName ?? "",
222
+ column: data.column ?? data.col ?? "",
223
+ vector: data.vector,
224
+ additionalColumns: data.additionalColumns,
225
+ schema: data.schema,
226
+ updateExisting: data.updateExisting,
227
+ conflictColumn: data.conflictColumn,
228
+ conflictValue: data.conflictValue,
229
+ }));
146
230
  return {
147
231
  name: "pg_vector_insert",
148
232
  description: "Insert a vector into a table, or update an existing row's vector. For upsert: use updateExisting + conflictColumn + conflictValue to UPDATE existing rows (avoids NOT NULL issues).",
149
233
  group: "vector",
150
- inputSchema: z.object({
151
- table: z.string(),
152
- column: z.string(),
153
- vector: z.array(z.number()),
154
- additionalColumns: z.record(z.string(), z.unknown()).optional(),
155
- schema: z.string().optional(),
156
- updateExisting: z
157
- .boolean()
158
- .optional()
159
- .describe("Update vector on existing row (requires conflictColumn and conflictValue)"),
160
- conflictColumn: z
161
- .string()
162
- .optional()
163
- .describe("Column to match for updates (e.g., id)"),
164
- conflictValue: z
165
- .union([z.string(), z.number()])
166
- .optional()
167
- .describe("Value of conflictColumn to match (e.g., 123)"),
168
- }),
234
+ // Use base schema for MCP visibility
235
+ inputSchema: VectorInsertSchemaBase,
236
+ outputSchema: VectorInsertOutputSchema,
169
237
  annotations: write("Insert Vector"),
170
238
  icons: getToolIcons("vector", write("Insert Vector")),
171
239
  handler: async (params, _context) => {
172
- const parsed = params;
240
+ // Use transformed schema for alias resolution
241
+ const parsed = VectorInsertSchema.parse(params);
173
242
  // Validate required params with clear errors
174
- if (parsed.table === undefined || parsed.table === "") {
243
+ if (parsed.table === "") {
175
244
  return {
176
245
  success: false,
177
- error: "table parameter is required",
246
+ error: "table (or tableName) parameter is required",
178
247
  requiredParams: ["table", "column", "vector"],
179
248
  };
180
249
  }
181
- if (parsed.column === undefined || parsed.column === "") {
250
+ if (parsed.column === "") {
182
251
  return {
183
252
  success: false,
184
- error: "column parameter is required",
253
+ error: "column (or col) parameter is required",
185
254
  requiredParams: ["table", "column", "vector"],
186
255
  };
187
256
  }
@@ -214,9 +283,15 @@ export function createVectorInsertTool(adapter) {
214
283
  resolvedSchema = parts[0] ?? parsed.schema ?? "public";
215
284
  resolvedTable = parts[1] ?? parsed.table;
216
285
  }
286
+ const insertSchemaName = resolvedSchema ?? "public";
217
287
  const tableName = sanitizeTableName(resolvedTable, resolvedSchema);
218
288
  const columnName = sanitizeIdentifier(parsed.column);
219
289
  const vectorStr = `[${parsed.vector.join(",")}]`;
290
+ // Pre-validate table and column exist
291
+ const missing = await checkTableAndColumn(adapter, resolvedTable, parsed.column, insertSchemaName);
292
+ if (missing) {
293
+ return { success: false, ...missing };
294
+ }
220
295
  // Use direct UPDATE for updateExisting mode (avoids NOT NULL constraint issues)
221
296
  if (parsed.updateExisting === true &&
222
297
  parsed.conflictColumn !== undefined &&
@@ -291,6 +366,14 @@ export function createVectorInsertTool(adapter) {
291
366
  suggestion: "Table has NOT NULL columns that require values. Use additionalColumns param or updateExisting mode to update existing rows.",
292
367
  };
293
368
  }
369
+ // Catch relation/column not found from UPDATE path
370
+ if (error.message.includes("does not exist")) {
371
+ return {
372
+ success: false,
373
+ error: error.message,
374
+ suggestion: "Verify the table and column names using pg_list_tables and pg_describe_table",
375
+ };
376
+ }
294
377
  }
295
378
  throw error;
296
379
  }
@@ -304,6 +387,7 @@ export function createVectorSearchTool(adapter) {
304
387
  group: "vector",
305
388
  // Use base schema for MCP visibility (Split Schema pattern)
306
389
  inputSchema: VectorSearchSchemaBase,
390
+ outputSchema: VectorSearchOutputSchema,
307
391
  annotations: readOnly("Vector Search"),
308
392
  icons: getToolIcons("vector", readOnly("Vector Search")),
309
393
  handler: async (params, _context) => {
@@ -327,23 +411,21 @@ export function createVectorSearchTool(adapter) {
327
411
  const tableName = sanitizeTableName(table, schema);
328
412
  const columnName = sanitizeIdentifier(column);
329
413
  const schemaName = schema ?? "public";
414
+ // Two-step existence check: table first, then column
415
+ const existenceCheck = await checkTableAndColumn(adapter, table, column, schemaName);
416
+ if (existenceCheck) {
417
+ return { success: false, ...existenceCheck };
418
+ }
330
419
  // Validate column is actually a vector type
331
420
  const typeCheckSql = `
332
- SELECT udt_name FROM information_schema.columns
333
- WHERE table_schema = $1 AND table_name = $2 AND column_name = $3
334
- `;
421
+ SELECT udt_name FROM information_schema.columns
422
+ WHERE table_schema = $1 AND table_name = $2 AND column_name = $3
423
+ `;
335
424
  const typeResult = await adapter.executeQuery(typeCheckSql, [
336
425
  schemaName,
337
426
  table,
338
427
  column,
339
428
  ]);
340
- if ((typeResult.rows?.length ?? 0) === 0) {
341
- return {
342
- success: false,
343
- error: `Column '${column}' does not exist in table '${table}'`,
344
- suggestion: "Use pg_describe_table to find available columns",
345
- };
346
- }
347
429
  const udtName = typeResult.rows?.[0]?.["udt_name"];
348
430
  if (udtName !== "vector") {
349
431
  return {
@@ -357,7 +439,7 @@ export function createVectorSearchTool(adapter) {
357
439
  const selectCols = select !== undefined && select.length > 0
358
440
  ? select.map((c) => sanitizeIdentifier(c)).join(", ") + ", "
359
441
  : "";
360
- const whereClause = where ? ` AND ${where}` : "";
442
+ const whereClause = where ? ` AND ${sanitizeWhereClause(where)}` : "";
361
443
  const { excludeNull } = VectorSearchSchema.parse(params);
362
444
  const nullFilter = excludeNull === true ? ` AND ${columnName} IS NOT NULL` : "";
363
445
  let distanceExpr;
@@ -425,6 +507,7 @@ export function createVectorCreateIndexTool(adapter) {
425
507
  group: "vector",
426
508
  // Use base schema for MCP visibility (Split Schema pattern)
427
509
  inputSchema: VectorCreateIndexSchemaBase,
510
+ outputSchema: VectorCreateIndexOutputSchema,
428
511
  annotations: write("Create Vector Index"),
429
512
  icons: getToolIcons("vector", write("Create Vector Index")),
430
513
  handler: async (params, _context) => {
@@ -445,6 +528,11 @@ export function createVectorCreateIndexTool(adapter) {
445
528
  requiredParams: ["table", "column", "type"],
446
529
  };
447
530
  }
531
+ // P154: Verify table and column exist before attempting index creation
532
+ const existenceError = await checkTableAndColumn(adapter, table, column, schema ?? "public");
533
+ if (existenceError !== null) {
534
+ return { success: false, ...existenceError };
535
+ }
448
536
  const tableName = sanitizeTableName(table, schema);
449
537
  const columnName = sanitizeIdentifier(column);
450
538
  // Include metric in index name to allow multiple indexes with different metrics
@@ -544,6 +632,7 @@ export function createVectorDistanceTool(adapter) {
544
632
  description: "Calculate distance between two vectors. Valid metrics: l2 (default), cosine, inner_product.",
545
633
  group: "vector",
546
634
  inputSchema: DistanceSchema,
635
+ outputSchema: VectorDistanceOutputSchema,
547
636
  annotations: readOnly("Vector Distance"),
548
637
  icons: getToolIcons("vector", readOnly("Vector Distance")),
549
638
  handler: async (params, _context) => {
@@ -585,23 +674,23 @@ export function createVectorNormalizeTool() {
585
674
  description: "Normalize a vector to unit length.",
586
675
  group: "vector",
587
676
  inputSchema: NormalizeSchema,
677
+ outputSchema: VectorNormalizeOutputSchema,
588
678
  annotations: readOnly("Normalize Vector"),
589
679
  icons: getToolIcons("vector", readOnly("Normalize Vector")),
590
- // eslint-disable-next-line @typescript-eslint/require-await
591
- handler: async (params, _context) => {
680
+ handler: (params, _context) => {
592
681
  const parsed = NormalizeSchema.parse(params ?? {});
593
682
  const magnitude = Math.sqrt(parsed.vector.reduce((sum, x) => sum + x * x, 0));
594
683
  // Check for zero vector
595
684
  if (magnitude === 0) {
596
- return {
685
+ return Promise.resolve({
597
686
  success: false,
598
687
  error: "Cannot normalize a zero vector (all values are 0)",
599
688
  suggestion: "Provide a vector with at least one non-zero value",
600
689
  magnitude: 0,
601
- };
690
+ });
602
691
  }
603
692
  const normalized = parsed.vector.map((x) => x / magnitude);
604
- return { normalized, magnitude };
693
+ return Promise.resolve({ normalized, magnitude });
605
694
  },
606
695
  };
607
696
  }
@@ -639,6 +728,7 @@ export function createVectorAggregateTool(adapter) {
639
728
  description: "Calculate average vector. Requires: table, column. Optional: groupBy, where.",
640
729
  group: "vector",
641
730
  inputSchema: AggregateSchemaBase,
731
+ outputSchema: VectorAggregateOutputSchema,
642
732
  annotations: readOnly("Vector Aggregate"),
643
733
  icons: getToolIcons("vector", readOnly("Vector Aggregate")),
644
734
  handler: async (params, _context) => {
@@ -667,23 +757,21 @@ export function createVectorAggregateTool(adapter) {
667
757
  resolvedTable = parts[1] ?? parsed.table;
668
758
  }
669
759
  const schemaName = resolvedSchema ?? "public";
760
+ // Two-step existence check: table first, then column
761
+ const existenceCheck = await checkTableAndColumn(adapter, resolvedTable, parsed.column, schemaName);
762
+ if (existenceCheck) {
763
+ return { success: false, ...existenceCheck };
764
+ }
670
765
  // Validate column is actually a vector type
671
766
  const typeCheckSql = `
672
- SELECT udt_name FROM information_schema.columns
673
- WHERE table_schema = $1 AND table_name = $2 AND column_name = $3
674
- `;
767
+ SELECT udt_name FROM information_schema.columns
768
+ WHERE table_schema = $1 AND table_name = $2 AND column_name = $3
769
+ `;
675
770
  const typeResult = await adapter.executeQuery(typeCheckSql, [
676
771
  schemaName,
677
772
  resolvedTable,
678
773
  parsed.column,
679
774
  ]);
680
- if ((typeResult.rows?.length ?? 0) === 0) {
681
- return {
682
- success: false,
683
- error: `Column '${parsed.column}' does not exist in table '${parsed.table}'`,
684
- suggestion: "Use pg_describe_table to find available columns",
685
- };
686
- }
687
775
  const udtName = typeResult.rows?.[0]?.["udt_name"];
688
776
  if (udtName !== "vector") {
689
777
  return {
@@ -692,7 +780,9 @@ export function createVectorAggregateTool(adapter) {
692
780
  suggestion: "Use a column with vector type, or use pg_vector_add_column to create one",
693
781
  };
694
782
  }
695
- const whereClause = parsed.where !== undefined ? ` WHERE ${parsed.where} ` : "";
783
+ const whereClause = parsed.where !== undefined
784
+ ? ` WHERE ${sanitizeWhereClause(parsed.where)} `
785
+ : "";
696
786
  const tableName = sanitizeTableName(resolvedTable, resolvedSchema);
697
787
  const columnName = sanitizeIdentifier(parsed.column);
698
788
  // Handle groupBy mode
@@ -828,6 +918,11 @@ export function createVectorBatchInsertTool(adapter) {
828
918
  }
829
919
  const tableName = sanitizeTableName(resolvedTable, resolvedSchema);
830
920
  const columnName = sanitizeIdentifier(parsed.column);
921
+ // P154: Pre-validate table and column exist
922
+ const existenceError = await checkTableAndColumn(adapter, resolvedTable, parsed.column, resolvedSchema ?? "public");
923
+ if (existenceError !== null) {
924
+ return { success: false, ...existenceError };
925
+ }
831
926
  if (parsed.vectors.length === 0) {
832
927
  return {
833
928
  success: true,
@@ -898,10 +993,33 @@ export function createVectorValidateTool(adapter) {
898
993
  description: "Returns `{valid: bool, vectorDimensions}`. Validate vector dimensions against a column or check a vector before operations. Empty vector `[]` returns `{valid: true, vectorDimensions: 0}`.",
899
994
  group: "vector",
900
995
  inputSchema: ValidateSchemaBase,
996
+ outputSchema: VectorValidateOutputSchema,
901
997
  annotations: readOnly("Validate Vector"),
902
998
  icons: getToolIcons("vector", readOnly("Validate Vector")),
903
999
  handler: async (params, _context) => {
904
- const parsed = ValidateSchema.parse(params);
1000
+ // Wrap validation in try-catch for user-friendly errors
1001
+ let parsed;
1002
+ try {
1003
+ parsed = ValidateSchema.parse(params);
1004
+ }
1005
+ catch (error) {
1006
+ // Return user-friendly error for invalid input types
1007
+ if (error instanceof z.ZodError) {
1008
+ const firstIssue = error.issues[0];
1009
+ if (firstIssue) {
1010
+ const path = firstIssue.path.join(".");
1011
+ const message = firstIssue.message;
1012
+ return {
1013
+ valid: false,
1014
+ error: `Invalid ${path || "input"}: ${message}`,
1015
+ suggestion: path === "vector"
1016
+ ? "Ensure vector is an array of numbers, e.g., [0.1, 0.2, 0.3]"
1017
+ : "Check the parameter types and try again",
1018
+ };
1019
+ }
1020
+ }
1021
+ throw error;
1022
+ }
905
1023
  // Get column dimensions if table/column specified
906
1024
  let columnDimensions;
907
1025
  if (parsed.table !== "" && parsed.column !== "") {