pg-dump-parser 1.2.0 → 1.4.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.
package/README.md CHANGED
@@ -28,31 +28,31 @@ The output is an array of objects, each representing a schema object in the dump
28
28
  ```json
29
29
  [
30
30
  {
31
- "header": {
32
- "Name": "bar",
33
- "Owner": "postgres",
34
- "Schema": "public",
35
- "Type": "TABLE"
36
- },
37
- "sql": "CREATE TABLE public.bar (\n id integer NOT NULL,\n uid text NOT NULL,\n foo_id integer\n);"
31
+ "header": {
32
+ "Name": "bar",
33
+ "Owner": "postgres",
34
+ "Schema": "public",
35
+ "Type": "TABLE"
36
+ },
37
+ "sql": "CREATE TABLE public.bar (\n id integer NOT NULL,\n uid text NOT NULL,\n foo_id integer\n);"
38
38
  },
39
39
  {
40
- "header": {
41
- "Name": "bar",
42
- "Owner": "postgres",
43
- "Schema": "public",
44
- "Type": "TABLE"
45
- },
46
- "sql": "ALTER TABLE public.bar OWNER TO postgres;"
40
+ "header": {
41
+ "Name": "bar",
42
+ "Owner": "postgres",
43
+ "Schema": "public",
44
+ "Type": "TABLE"
45
+ },
46
+ "sql": "ALTER TABLE public.bar OWNER TO postgres;"
47
47
  },
48
48
  {
49
- "header": {
50
- "Name": "bar_id_seq",
51
- "Owner": "postgres",
52
- "Schema": "public",
53
- "Type": "SEQUENCE"
54
- },
55
- "sql": "ALTER TABLE public.bar ALTER COLUMN id ADD GENERATED ALWAYS AS IDENTITY (\n SEQUENCE NAME public.bar_id_seq\n START WITH 1\n INCREMENT BY 1\n NO MINVALUE\n NO MAXVALUE\n CACHE 1\n);"
49
+ "header": {
50
+ "Name": "bar_id_seq",
51
+ "Owner": "postgres",
52
+ "Schema": "public",
53
+ "Type": "SEQUENCE"
54
+ },
55
+ "sql": "ALTER TABLE public.bar ALTER COLUMN id ADD GENERATED ALWAYS AS IDENTITY (\n SEQUENCE NAME public.bar_id_seq\n START WITH 1\n INCREMENT BY 1\n NO MINVALUE\n NO MAXVALUE\n CACHE 1\n);"
56
56
  }
57
57
  ]
58
58
  ```
@@ -92,7 +92,7 @@ const schemaObjectScope = groupSchemaObjects(schemaObjects);
92
92
  }
93
93
  ```
94
94
 
95
- > [!DANGER]
95
+ > [!WARNING]
96
96
  > The implementation behind `groupSchemaObjects` is _super_ scrappy. It relies on a lot of pattern matching. Use at your own risk.
97
97
 
98
98
  ## Alternatives
@@ -90,6 +90,13 @@ $$;
90
90
 
91
91
  ALTER FUNCTION public.add_two_numbers(a integer, b integer) OWNER TO postgres;
92
92
 
93
+ --
94
+ -- Name: FUNCTION add_two_numbers(a integer, b integer); Type: COMMENT; Schema: public; Owner: postgres
95
+ --
96
+
97
+ COMMENT ON FUNCTION public.add_two_numbers(a integer, b integer) IS 'Function comment x';
98
+
99
+
93
100
  --
94
101
  -- Name: notify_foo_insert(); Type: FUNCTION; Schema: public; Owner: postgres
95
102
  --
@@ -121,6 +128,13 @@ $$;
121
128
 
122
129
  ALTER PROCEDURE public.say_hello(IN name_param character varying) OWNER TO postgres;
123
130
 
131
+ --
132
+ -- Name: PROCEDURE say_hello(IN name_param character varying); Type: COMMENT; Schema: public; Owner: postgres
133
+ --
134
+
135
+ COMMENT ON PROCEDURE public.say_hello(IN name_param character varying) IS 'Procedure comment x';
136
+
137
+
124
138
  --
125
139
  -- Name: my_sum(integer); Type: AGGREGATE; Schema: public; Owner: postgres
126
140
  --
@@ -133,6 +147,13 @@ CREATE AGGREGATE public.my_sum(integer) (
133
147
 
134
148
  ALTER AGGREGATE public.my_sum(integer) OWNER TO postgres;
135
149
 
150
+ --
151
+ -- Name: AGGREGATE my_sum(integer); Type: COMMENT; Schema: public; Owner: postgres
152
+ --
153
+
154
+ COMMENT ON AGGREGATE public.my_sum(integer) IS 'Aggregate comment x';
155
+
156
+
136
157
  SET default_tablespace = '';
137
158
 
138
159
  SET default_table_access_method = heap;
@@ -176,6 +197,13 @@ CREATE VIEW public.baz AS
176
197
 
177
198
  ALTER VIEW public.baz OWNER TO postgres;
178
199
 
200
+ --
201
+ -- Name: VIEW baz; Type: COMMENT; Schema: public; Owner: postgres
202
+ --
203
+
204
+ COMMENT ON VIEW public.baz IS 'View comment x';
205
+
206
+
179
207
  --
180
208
  -- Name: corge; Type: TABLE; Schema: public; Owner: postgres
181
209
  --
@@ -269,6 +297,13 @@ CREATE MATERIALIZED VIEW public.qux AS
269
297
 
270
298
  ALTER MATERIALIZED VIEW public.qux OWNER TO postgres;
271
299
 
300
+ --
301
+ -- Name: MATERIALIZED VIEW qux; Type: COMMENT; Schema: public; Owner: postgres
302
+ --
303
+
304
+ COMMENT ON MATERIALIZED VIEW public.qux IS 'Materialized view comment x';
305
+
306
+
272
307
  --
273
308
  -- Name: corge id; Type: DEFAULT; Schema: public; Owner: postgres
274
309
  --
@@ -348,14 +383,16 @@ GRANT SELECT(name) ON TABLE public.foo TO postgres;
348
383
  -- PostgreSQL database dump complete
349
384
  --
350
385
  `;
351
- const omit = (object, keys) => Object.fromEntries(Object.entries(object).filter(([key]) => !keys.includes(key)));
386
+ const omit = (object, keys) =>
387
+ // @ts-expect-error - Object.fromEntries is not typed
388
+ Object.fromEntries(Object.entries(object).filter(([key]) => !keys.includes(key)));
352
389
  const expectSchemeObject = (expectedSchemaObject) => {
353
390
  const schemaObjects = (0, parsePgDump_1.parsePgDump)(dump);
354
391
  (0, vitest_1.expect)(schemaObjects).toContainEqual(omit(expectedSchemaObject, ['scope']));
355
392
  if (typeof expectedSchemaObject.scope === 'undefined') {
356
393
  return;
357
394
  }
358
- (0, vitest_1.expect)((0, scopeSchemaObject_1.scopeSchemaObject)(schemaObjects, expectedSchemaObject)).toEqual(expectedSchemaObject.scope);
395
+ (0, vitest_1.expect)((0, scopeSchemaObject_1.scopeSchemaObject)(schemaObjects, omit(expectedSchemaObject, ['scope']))).toEqual(expectedSchemaObject.scope);
359
396
  };
360
397
  (0, vitest_1.test)('extracts SEQUENCE', async () => {
361
398
  expectSchemeObject({
@@ -440,6 +477,42 @@ const expectSchemeObject = (expectedSchemaObject) => {
440
477
  `,
441
478
  });
442
479
  });
480
+ (0, vitest_1.test)('extracts COMMENT on VIEW', async () => {
481
+ expectSchemeObject({
482
+ header: {
483
+ Name: 'VIEW baz',
484
+ Owner: 'postgres',
485
+ Schema: 'public',
486
+ Type: 'COMMENT',
487
+ },
488
+ scope: {
489
+ name: 'baz',
490
+ schema: 'public',
491
+ type: 'VIEW',
492
+ },
493
+ sql: (0, multiline_ts_1.default) `
494
+ COMMENT ON VIEW public.baz IS 'View comment x';
495
+ `,
496
+ });
497
+ });
498
+ (0, vitest_1.test)('extracts COMMENT on MATERIALIZED VIEW', async () => {
499
+ expectSchemeObject({
500
+ header: {
501
+ Name: 'MATERIALIZED VIEW qux',
502
+ Owner: 'postgres',
503
+ Schema: 'public',
504
+ Type: 'COMMENT',
505
+ },
506
+ scope: {
507
+ name: 'qux',
508
+ schema: 'public',
509
+ type: 'MATERIALIZED VIEW',
510
+ },
511
+ sql: (0, multiline_ts_1.default) `
512
+ COMMENT ON MATERIALIZED VIEW public.qux IS 'Materialized view comment x';
513
+ `,
514
+ });
515
+ });
443
516
  (0, vitest_1.test)('extracts COMMENT on COLUMN', async () => {
444
517
  expectSchemeObject({
445
518
  header: {
@@ -512,6 +585,60 @@ const expectSchemeObject = (expectedSchemaObject) => {
512
585
  `,
513
586
  });
514
587
  });
588
+ (0, vitest_1.test)('extracts COMMENT on FUNCTION', async () => {
589
+ expectSchemeObject({
590
+ header: {
591
+ Name: 'FUNCTION add_two_numbers(a integer, b integer)',
592
+ Owner: 'postgres',
593
+ Schema: 'public',
594
+ Type: 'COMMENT',
595
+ },
596
+ scope: {
597
+ name: 'add_two_numbers',
598
+ schema: 'public',
599
+ type: 'FUNCTION',
600
+ },
601
+ sql: (0, multiline_ts_1.default) `
602
+ COMMENT ON FUNCTION public.add_two_numbers(a integer, b integer) IS 'Function comment x';
603
+ `,
604
+ });
605
+ });
606
+ (0, vitest_1.test)('extracts COMMENT on AGGREGATE', async () => {
607
+ expectSchemeObject({
608
+ header: {
609
+ Name: 'AGGREGATE my_sum(integer)',
610
+ Owner: 'postgres',
611
+ Schema: 'public',
612
+ Type: 'COMMENT',
613
+ },
614
+ scope: {
615
+ name: 'my_sum',
616
+ schema: 'public',
617
+ type: 'AGGREGATE',
618
+ },
619
+ sql: (0, multiline_ts_1.default) `
620
+ COMMENT ON AGGREGATE public.my_sum(integer) IS 'Aggregate comment x';
621
+ `,
622
+ });
623
+ });
624
+ (0, vitest_1.test)('extracts COMMENT on PROCEDURE', async () => {
625
+ expectSchemeObject({
626
+ header: {
627
+ Name: 'PROCEDURE say_hello(IN name_param character varying)',
628
+ Owner: 'postgres',
629
+ Schema: 'public',
630
+ Type: 'COMMENT',
631
+ },
632
+ scope: {
633
+ name: 'say_hello',
634
+ schema: 'public',
635
+ type: 'PROCEDURE',
636
+ },
637
+ sql: (0, multiline_ts_1.default) `
638
+ COMMENT ON PROCEDURE public.say_hello(IN name_param character varying) IS 'Procedure comment x';
639
+ `,
640
+ });
641
+ });
515
642
  (0, vitest_1.test)('extracts PUBLICATION', async () => {
516
643
  expectSchemeObject({
517
644
  header: {
@@ -1 +1 @@
1
- {"version":3,"file":"parsePgDump.test.js","sourceRoot":"","sources":["../src/parsePgDump.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parsePgDump.test.js","sourceRoot":"","sources":["../src/parsePgDump.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scopeSchemaObject.d.ts","sourceRoot":"","sources":["../src/scopeSchemaObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAkJzE,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;CACnB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EACA,WAAW,GACX,UAAU,GACV,mBAAmB,GACnB,WAAW,GACX,OAAO,GACP,MAAM,GACN,MAAM,CAAC;CACZ,CAAC;AA0PN,eAAO,MAAM,iBAAiB,kBACb,YAAY,EAAE,WACpB,YAAY,KACpB,iBAAiB,GAAG,IAatB,CAAC"}
1
+ {"version":3,"file":"scopeSchemaObject.d.ts","sourceRoot":"","sources":["../src/scopeSchemaObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AA2KzE,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;CACnB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EACA,WAAW,GACX,UAAU,GACV,mBAAmB,GACnB,WAAW,GACX,OAAO,GACP,MAAM,GACN,MAAM,CAAC;CACZ,CAAC;AA6SN,eAAO,MAAM,iBAAiB,kBACb,YAAY,EAAE,WACpB,YAAY,KACpB,iBAAiB,GAAG,IAatB,CAAC"}
@@ -86,9 +86,19 @@ const extractAlterTableTarget = (fragment) => {
86
86
  schema,
87
87
  };
88
88
  };
89
+ const extractFunctionLikeName = (fragment) => {
90
+ var _a, _b;
91
+ const { name } = (_b = (_a = fragment.match(
92
+ // eslint-disable-next-line unicorn/no-unsafe-regex
93
+ /(?:AGGREGATE|FUNCTION|PROCEDURE)\s+(?:(?<schema>\S+)\.)?(?<name>\w+)\s*\(/u)) === null || _a === void 0 ? void 0 : _a.groups) !== null && _b !== void 0 ? _b : {};
94
+ if (!name) {
95
+ throw new Error('Invalid FUNCTION name');
96
+ }
97
+ return name;
98
+ };
89
99
  const extractCommentOnTarget = (fragment) => {
90
100
  var _a, _b;
91
- const { target, type } = (_b = (_a = fragment.match(/COMMENT ON (?<type>TABLE|EXTENSION|COLUMN|SEQUENCE|INDEX|TYPE)\s(?<target>\S+)/u)) === null || _a === void 0 ? void 0 : _a.groups) !== null && _b !== void 0 ? _b : {};
101
+ const { target, type } = (_b = (_a = fragment.match(/COMMENT ON (?<type>AGGREGATE|COLUMN|EXTENSION|FUNCTION|INDEX|MATERIALIZED VIEW|PROCEDURE|SEQUENCE|TABLE|TYPE|VIEW)\s(?<target>.+?) IS/u)) === null || _a === void 0 ? void 0 : _a.groups) !== null && _b !== void 0 ? _b : {};
92
102
  if (!target) {
93
103
  throw new Error('Invalid COMMENT ON target (missing target)');
94
104
  }
@@ -100,9 +110,138 @@ const extractCommentOnTarget = (fragment) => {
100
110
  type: type,
101
111
  };
102
112
  };
113
+ const scopeComment = (schemaObjects, subject) => {
114
+ var _a, _b, _c, _d, _e;
115
+ const target = extractCommentOnTarget(subject.sql);
116
+ if (target.type === 'AGGREGATE') {
117
+ return {
118
+ name: extractFunctionLikeName(subject.header.Name),
119
+ schema: (_a = subject.header.Schema) !== null && _a !== void 0 ? _a : 'public',
120
+ type: 'AGGREGATE',
121
+ };
122
+ }
123
+ if (target.type === 'COLUMN') {
124
+ const [schema, name] = zod_1.z
125
+ .tuple([zod_1.z.string(), zod_1.z.string(), zod_1.z.string()])
126
+ .parse(target.target.split('.'));
127
+ return {
128
+ name,
129
+ schema,
130
+ type: 'TABLE',
131
+ };
132
+ }
133
+ if (target.type === 'EXTENSION') {
134
+ return {
135
+ name: target.target,
136
+ schema: null,
137
+ type: 'EXTENSION',
138
+ };
139
+ }
140
+ if (target.type === 'FUNCTION') {
141
+ return {
142
+ name: extractFunctionLikeName(subject.header.Name),
143
+ schema: (_b = subject.header.Schema) !== null && _b !== void 0 ? _b : 'public',
144
+ type: 'FUNCTION',
145
+ };
146
+ }
147
+ if (target.type === 'INDEX') {
148
+ const [schema, indexName] = zod_1.z
149
+ .tuple([zod_1.z.string(), zod_1.z.string()])
150
+ .parse(target.target.split('.'));
151
+ const indexSchemaObject = schemaObjects.find((schemaObject) => {
152
+ if (schemaObject.header.Type !== 'INDEX') {
153
+ return false;
154
+ }
155
+ return schemaObject.header.Name === indexName;
156
+ });
157
+ if (indexSchemaObject) {
158
+ throw new Error('Not implemented');
159
+ }
160
+ const constraintSchemaObject = schemaObjects.find((schemaObject) => {
161
+ if (schemaObject.header.Type !== 'CONSTRAINT') {
162
+ return false;
163
+ }
164
+ return schemaObject.header.Name.split(' ')[1] === indexName;
165
+ });
166
+ if (constraintSchemaObject) {
167
+ const [tableName] = constraintSchemaObject.header.Name.split(' ');
168
+ return {
169
+ name: tableName,
170
+ schema,
171
+ type: 'TABLE',
172
+ };
173
+ }
174
+ }
175
+ if (target.type === 'MATERIALIZED VIEW') {
176
+ return {
177
+ name: subject.header.Name.replace('MATERIALIZED VIEW ', ''),
178
+ schema: (_c = subject.header.Schema) !== null && _c !== void 0 ? _c : 'public',
179
+ type: 'MATERIALIZED VIEW',
180
+ };
181
+ }
182
+ if (target.type === 'PROCEDURE') {
183
+ return {
184
+ name: extractFunctionLikeName(subject.header.Name),
185
+ schema: (_d = subject.header.Schema) !== null && _d !== void 0 ? _d : 'public',
186
+ type: 'PROCEDURE',
187
+ };
188
+ }
189
+ if (target.type === 'SEQUENCE') {
190
+ const [schemaName, sequenceName] = zod_1.z
191
+ .tuple([zod_1.z.string(), zod_1.z.string()])
192
+ .parse(target.target.split('.'));
193
+ const sequenceSchemaObject = schemaObjects.find((schemaObject) => {
194
+ if (schemaObject.header.Type !== 'SEQUENCE') {
195
+ return false;
196
+ }
197
+ return (schemaObject.header.Name === sequenceName &&
198
+ schemaObject.header.Schema === schemaName);
199
+ });
200
+ if (!sequenceSchemaObject) {
201
+ throw new Error('Sequence not found');
202
+ }
203
+ const alterTableTarget = extractAlterTableTarget(sequenceSchemaObject.sql);
204
+ return {
205
+ name: alterTableTarget.name,
206
+ schema: alterTableTarget.schema,
207
+ type: 'TABLE',
208
+ };
209
+ }
210
+ if (target.type === 'TABLE') {
211
+ const [schema, name] = zod_1.z
212
+ .tuple([zod_1.z.string(), zod_1.z.string()])
213
+ .parse(target.target.split('.'));
214
+ return {
215
+ name,
216
+ schema,
217
+ type: 'TABLE',
218
+ };
219
+ }
220
+ if (target.type === 'VIEW') {
221
+ const [schema, name] = zod_1.z
222
+ .tuple([zod_1.z.string(), zod_1.z.string()])
223
+ .parse(target.target.split('.'));
224
+ return {
225
+ name,
226
+ schema,
227
+ type: 'VIEW',
228
+ };
229
+ }
230
+ if (target.type === 'TYPE') {
231
+ const [, typeName] = zod_1.z
232
+ .tuple([zod_1.z.string(), zod_1.z.string()])
233
+ .parse(subject.header.Name.split(' '));
234
+ return {
235
+ name: typeName,
236
+ schema: (_e = subject.header.Schema) !== null && _e !== void 0 ? _e : 'public',
237
+ type: 'TYPE',
238
+ };
239
+ }
240
+ return null;
241
+ };
103
242
  // eslint-disable-next-line complexity
104
243
  const scopeAttributedSchemaObject = (schemaObjects, subject) => {
105
- var _a, _b, _c, _d, _e, _f, _g;
244
+ var _a, _b, _c, _d, _e, _f;
106
245
  if (subject.header.Type === 'FUNCTION') {
107
246
  return {
108
247
  name: subject.header.Name.split('(')[0],
@@ -185,93 +324,7 @@ const scopeAttributedSchemaObject = (schemaObjects, subject) => {
185
324
  };
186
325
  }
187
326
  if (subject.sql.startsWith('COMMENT ON ')) {
188
- const target = extractCommentOnTarget(subject.sql);
189
- if (target.type === 'EXTENSION') {
190
- return {
191
- name: target.target,
192
- schema: null,
193
- type: 'EXTENSION',
194
- };
195
- }
196
- if (target.type === 'TABLE') {
197
- const [schema, name] = zod_1.z
198
- .tuple([zod_1.z.string(), zod_1.z.string()])
199
- .parse(target.target.split('.'));
200
- return {
201
- name,
202
- schema,
203
- type: 'TABLE',
204
- };
205
- }
206
- if (target.type === 'COLUMN') {
207
- const [schema, name] = zod_1.z
208
- .tuple([zod_1.z.string(), zod_1.z.string(), zod_1.z.string()])
209
- .parse(target.target.split('.'));
210
- return {
211
- name,
212
- schema,
213
- type: 'TABLE',
214
- };
215
- }
216
- if (target.type === 'INDEX') {
217
- const [schema, indexName] = zod_1.z
218
- .tuple([zod_1.z.string(), zod_1.z.string()])
219
- .parse(target.target.split('.'));
220
- const indexSchemaObject = schemaObjects.find((schemaObject) => {
221
- if (schemaObject.header.Type !== 'INDEX') {
222
- return false;
223
- }
224
- return schemaObject.header.Name === indexName;
225
- });
226
- if (indexSchemaObject) {
227
- throw new Error('Not implemented');
228
- }
229
- const constraintSchemaObject = schemaObjects.find((schemaObject) => {
230
- if (schemaObject.header.Type !== 'CONSTRAINT') {
231
- return false;
232
- }
233
- return schemaObject.header.Name.split(' ')[1] === indexName;
234
- });
235
- if (constraintSchemaObject) {
236
- const [tableName] = constraintSchemaObject.header.Name.split(' ');
237
- return {
238
- name: tableName,
239
- schema,
240
- type: 'TABLE',
241
- };
242
- }
243
- }
244
- if (target.type === 'SEQUENCE') {
245
- const [schemaName, sequenceName] = zod_1.z
246
- .tuple([zod_1.z.string(), zod_1.z.string()])
247
- .parse(target.target.split('.'));
248
- const sequenceSchemaObject = schemaObjects.find((schemaObject) => {
249
- if (schemaObject.header.Type !== 'SEQUENCE') {
250
- return false;
251
- }
252
- return (schemaObject.header.Name === sequenceName &&
253
- schemaObject.header.Schema === schemaName);
254
- });
255
- if (!sequenceSchemaObject) {
256
- throw new Error('Sequence not found');
257
- }
258
- const alterTableTarget = extractAlterTableTarget(sequenceSchemaObject.sql);
259
- return {
260
- name: alterTableTarget.name,
261
- schema: alterTableTarget.schema,
262
- type: 'TABLE',
263
- };
264
- }
265
- if (target.type === 'TYPE') {
266
- const [, typeName] = zod_1.z
267
- .tuple([zod_1.z.string(), zod_1.z.string()])
268
- .parse(subject.header.Name.split(' '));
269
- return {
270
- name: typeName,
271
- schema: (_g = subject.header.Schema) !== null && _g !== void 0 ? _g : 'public',
272
- type: 'TYPE',
273
- };
274
- }
327
+ return scopeComment(schemaObjects, subject);
275
328
  }
276
329
  try {
277
330
  const target = extractOwnedByTarget(subject.sql);
@@ -281,7 +334,7 @@ const scopeAttributedSchemaObject = (schemaObjects, subject) => {
281
334
  type: 'TABLE',
282
335
  };
283
336
  }
284
- catch (_h) {
337
+ catch (_g) {
285
338
  // ignore
286
339
  }
287
340
  try {
@@ -292,7 +345,7 @@ const scopeAttributedSchemaObject = (schemaObjects, subject) => {
292
345
  type: 'TABLE',
293
346
  };
294
347
  }
295
- catch (_j) {
348
+ catch (_h) {
296
349
  // ignore
297
350
  }
298
351
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"scopeSchemaObject.js","sourceRoot":"","sources":["../src/scopeSchemaObject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scopeSchemaObject.js","sourceRoot":"","sources":["../src/scopeSchemaObject.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -56,5 +56,5 @@
56
56
  "test:vitest": "vitest --run --passWithNoTests"
57
57
  },
58
58
  "types": "./dist/index.d.ts",
59
- "version": "1.2.0"
59
+ "version": "1.4.0"
60
60
  }
@@ -87,6 +87,13 @@ $$;
87
87
 
88
88
  ALTER FUNCTION public.add_two_numbers(a integer, b integer) OWNER TO postgres;
89
89
 
90
+ --
91
+ -- Name: FUNCTION add_two_numbers(a integer, b integer); Type: COMMENT; Schema: public; Owner: postgres
92
+ --
93
+
94
+ COMMENT ON FUNCTION public.add_two_numbers(a integer, b integer) IS 'Function comment x';
95
+
96
+
90
97
  --
91
98
  -- Name: notify_foo_insert(); Type: FUNCTION; Schema: public; Owner: postgres
92
99
  --
@@ -118,6 +125,13 @@ $$;
118
125
 
119
126
  ALTER PROCEDURE public.say_hello(IN name_param character varying) OWNER TO postgres;
120
127
 
128
+ --
129
+ -- Name: PROCEDURE say_hello(IN name_param character varying); Type: COMMENT; Schema: public; Owner: postgres
130
+ --
131
+
132
+ COMMENT ON PROCEDURE public.say_hello(IN name_param character varying) IS 'Procedure comment x';
133
+
134
+
121
135
  --
122
136
  -- Name: my_sum(integer); Type: AGGREGATE; Schema: public; Owner: postgres
123
137
  --
@@ -130,6 +144,13 @@ CREATE AGGREGATE public.my_sum(integer) (
130
144
 
131
145
  ALTER AGGREGATE public.my_sum(integer) OWNER TO postgres;
132
146
 
147
+ --
148
+ -- Name: AGGREGATE my_sum(integer); Type: COMMENT; Schema: public; Owner: postgres
149
+ --
150
+
151
+ COMMENT ON AGGREGATE public.my_sum(integer) IS 'Aggregate comment x';
152
+
153
+
133
154
  SET default_tablespace = '';
134
155
 
135
156
  SET default_table_access_method = heap;
@@ -173,6 +194,13 @@ CREATE VIEW public.baz AS
173
194
 
174
195
  ALTER VIEW public.baz OWNER TO postgres;
175
196
 
197
+ --
198
+ -- Name: VIEW baz; Type: COMMENT; Schema: public; Owner: postgres
199
+ --
200
+
201
+ COMMENT ON VIEW public.baz IS 'View comment x';
202
+
203
+
176
204
  --
177
205
  -- Name: corge; Type: TABLE; Schema: public; Owner: postgres
178
206
  --
@@ -266,6 +294,13 @@ CREATE MATERIALIZED VIEW public.qux AS
266
294
 
267
295
  ALTER MATERIALIZED VIEW public.qux OWNER TO postgres;
268
296
 
297
+ --
298
+ -- Name: MATERIALIZED VIEW qux; Type: COMMENT; Schema: public; Owner: postgres
299
+ --
300
+
301
+ COMMENT ON MATERIALIZED VIEW public.qux IS 'Materialized view comment x';
302
+
303
+
269
304
  --
270
305
  -- Name: corge id; Type: DEFAULT; Schema: public; Owner: postgres
271
306
  --
@@ -346,7 +381,11 @@ GRANT SELECT(name) ON TABLE public.foo TO postgres;
346
381
  --
347
382
  `;
348
383
 
349
- const omit = <T extends Record<string, unknown>>(object: T, keys: string[]) =>
384
+ const omit = <T extends Record<string, unknown>>(
385
+ object: T,
386
+ keys: string[],
387
+ ): T =>
388
+ // @ts-expect-error - Object.fromEntries is not typed
350
389
  Object.fromEntries(
351
390
  Object.entries(object).filter(([key]) => !keys.includes(key)),
352
391
  );
@@ -362,9 +401,9 @@ const expectSchemeObject = (
362
401
  return;
363
402
  }
364
403
 
365
- expect(scopeSchemaObject(schemaObjects, expectedSchemaObject)).toEqual(
366
- expectedSchemaObject.scope,
367
- );
404
+ expect(
405
+ scopeSchemaObject(schemaObjects, omit(expectedSchemaObject, ['scope'])),
406
+ ).toEqual(expectedSchemaObject.scope);
368
407
  };
369
408
 
370
409
  test('extracts SEQUENCE', async () => {
@@ -454,6 +493,44 @@ test('extracts COMMENT on TABLE', async () => {
454
493
  });
455
494
  });
456
495
 
496
+ test('extracts COMMENT on VIEW', async () => {
497
+ expectSchemeObject({
498
+ header: {
499
+ Name: 'VIEW baz',
500
+ Owner: 'postgres',
501
+ Schema: 'public',
502
+ Type: 'COMMENT',
503
+ },
504
+ scope: {
505
+ name: 'baz',
506
+ schema: 'public',
507
+ type: 'VIEW',
508
+ },
509
+ sql: multiline`
510
+ COMMENT ON VIEW public.baz IS 'View comment x';
511
+ `,
512
+ });
513
+ });
514
+
515
+ test('extracts COMMENT on MATERIALIZED VIEW', async () => {
516
+ expectSchemeObject({
517
+ header: {
518
+ Name: 'MATERIALIZED VIEW qux',
519
+ Owner: 'postgres',
520
+ Schema: 'public',
521
+ Type: 'COMMENT',
522
+ },
523
+ scope: {
524
+ name: 'qux',
525
+ schema: 'public',
526
+ type: 'MATERIALIZED VIEW',
527
+ },
528
+ sql: multiline`
529
+ COMMENT ON MATERIALIZED VIEW public.qux IS 'Materialized view comment x';
530
+ `,
531
+ });
532
+ });
533
+
457
534
  test('extracts COMMENT on COLUMN', async () => {
458
535
  expectSchemeObject({
459
536
  header: {
@@ -530,6 +607,63 @@ test('extracts COMMENT on TYPE', async () => {
530
607
  });
531
608
  });
532
609
 
610
+ test('extracts COMMENT on FUNCTION', async () => {
611
+ expectSchemeObject({
612
+ header: {
613
+ Name: 'FUNCTION add_two_numbers(a integer, b integer)',
614
+ Owner: 'postgres',
615
+ Schema: 'public',
616
+ Type: 'COMMENT',
617
+ },
618
+ scope: {
619
+ name: 'add_two_numbers',
620
+ schema: 'public',
621
+ type: 'FUNCTION',
622
+ },
623
+ sql: multiline`
624
+ COMMENT ON FUNCTION public.add_two_numbers(a integer, b integer) IS 'Function comment x';
625
+ `,
626
+ });
627
+ });
628
+
629
+ test('extracts COMMENT on AGGREGATE', async () => {
630
+ expectSchemeObject({
631
+ header: {
632
+ Name: 'AGGREGATE my_sum(integer)',
633
+ Owner: 'postgres',
634
+ Schema: 'public',
635
+ Type: 'COMMENT',
636
+ },
637
+ scope: {
638
+ name: 'my_sum',
639
+ schema: 'public',
640
+ type: 'AGGREGATE',
641
+ },
642
+ sql: multiline`
643
+ COMMENT ON AGGREGATE public.my_sum(integer) IS 'Aggregate comment x';
644
+ `,
645
+ });
646
+ });
647
+
648
+ test('extracts COMMENT on PROCEDURE', async () => {
649
+ expectSchemeObject({
650
+ header: {
651
+ Name: 'PROCEDURE say_hello(IN name_param character varying)',
652
+ Owner: 'postgres',
653
+ Schema: 'public',
654
+ Type: 'COMMENT',
655
+ },
656
+ scope: {
657
+ name: 'say_hello',
658
+ schema: 'public',
659
+ type: 'PROCEDURE',
660
+ },
661
+ sql: multiline`
662
+ COMMENT ON PROCEDURE public.say_hello(IN name_param character varying) IS 'Procedure comment x';
663
+ `,
664
+ });
665
+ });
666
+
533
667
  test('extracts PUBLICATION', async () => {
534
668
  expectSchemeObject({
535
669
  header: {
@@ -119,15 +119,40 @@ const extractAlterTableTarget = (fragment: string): TableTarget => {
119
119
  };
120
120
  };
121
121
 
122
+ const extractFunctionLikeName = (fragment: string): string => {
123
+ const { name } =
124
+ fragment.match(
125
+ // eslint-disable-next-line unicorn/no-unsafe-regex
126
+ /(?:AGGREGATE|FUNCTION|PROCEDURE)\s+(?:(?<schema>\S+)\.)?(?<name>\w+)\s*\(/u,
127
+ )?.groups ?? {};
128
+
129
+ if (!name) {
130
+ throw new Error('Invalid FUNCTION name');
131
+ }
132
+
133
+ return name;
134
+ };
135
+
122
136
  type CommentOnTarget = {
123
137
  target: string;
124
- type: 'COLUMN' | 'EXTENSION' | 'INDEX' | 'SEQUENCE' | 'TABLE' | 'TYPE';
138
+ type:
139
+ | 'AGGREGATE'
140
+ | 'COLUMN'
141
+ | 'EXTENSION'
142
+ | 'FUNCTION'
143
+ | 'INDEX'
144
+ | 'MATERIALIZED VIEW'
145
+ | 'PROCEDURE'
146
+ | 'SEQUENCE'
147
+ | 'TABLE'
148
+ | 'TYPE'
149
+ | 'VIEW';
125
150
  };
126
151
 
127
152
  const extractCommentOnTarget = (fragment: string): CommentOnTarget => {
128
153
  const { target, type } =
129
154
  fragment.match(
130
- /COMMENT ON (?<type>TABLE|EXTENSION|COLUMN|SEQUENCE|INDEX|TYPE)\s(?<target>\S+)/u,
155
+ /COMMENT ON (?<type>AGGREGATE|COLUMN|EXTENSION|FUNCTION|INDEX|MATERIALIZED VIEW|PROCEDURE|SEQUENCE|TABLE|TYPE|VIEW)\s(?<target>.+?) IS/u,
131
156
  )?.groups ?? {};
132
157
 
133
158
  if (!target) {
@@ -168,6 +193,168 @@ type AttributedSchemaObject = {
168
193
  sql: string;
169
194
  };
170
195
 
196
+ const scopeComment = (
197
+ schemaObjects: AttributedSchemaObject[],
198
+ subject: AttributedSchemaObject,
199
+ ): SchemaObjectScope | null => {
200
+ const target = extractCommentOnTarget(subject.sql);
201
+
202
+ if (target.type === 'AGGREGATE') {
203
+ return {
204
+ name: extractFunctionLikeName(subject.header.Name),
205
+ schema: subject.header.Schema ?? 'public',
206
+ type: 'AGGREGATE',
207
+ };
208
+ }
209
+
210
+ if (target.type === 'COLUMN') {
211
+ const [schema, name] = z
212
+ .tuple([z.string(), z.string(), z.string()])
213
+ .parse(target.target.split('.'));
214
+
215
+ return {
216
+ name,
217
+ schema,
218
+ type: 'TABLE',
219
+ };
220
+ }
221
+
222
+ if (target.type === 'EXTENSION') {
223
+ return {
224
+ name: target.target,
225
+ schema: null,
226
+ type: 'EXTENSION',
227
+ };
228
+ }
229
+
230
+ if (target.type === 'FUNCTION') {
231
+ return {
232
+ name: extractFunctionLikeName(subject.header.Name),
233
+ schema: subject.header.Schema ?? 'public',
234
+ type: 'FUNCTION',
235
+ };
236
+ }
237
+
238
+ if (target.type === 'INDEX') {
239
+ const [schema, indexName] = z
240
+ .tuple([z.string(), z.string()])
241
+ .parse(target.target.split('.'));
242
+
243
+ const indexSchemaObject = schemaObjects.find((schemaObject) => {
244
+ if (schemaObject.header.Type !== 'INDEX') {
245
+ return false;
246
+ }
247
+
248
+ return schemaObject.header.Name === indexName;
249
+ });
250
+
251
+ if (indexSchemaObject) {
252
+ throw new Error('Not implemented');
253
+ }
254
+
255
+ const constraintSchemaObject = schemaObjects.find((schemaObject) => {
256
+ if (schemaObject.header.Type !== 'CONSTRAINT') {
257
+ return false;
258
+ }
259
+
260
+ return schemaObject.header.Name.split(' ')[1] === indexName;
261
+ });
262
+
263
+ if (constraintSchemaObject) {
264
+ const [tableName] = constraintSchemaObject.header.Name.split(' ');
265
+
266
+ return {
267
+ name: tableName,
268
+ schema,
269
+ type: 'TABLE',
270
+ };
271
+ }
272
+ }
273
+
274
+ if (target.type === 'MATERIALIZED VIEW') {
275
+ return {
276
+ name: subject.header.Name.replace('MATERIALIZED VIEW ', ''),
277
+ schema: subject.header.Schema ?? 'public',
278
+ type: 'MATERIALIZED VIEW',
279
+ };
280
+ }
281
+
282
+ if (target.type === 'PROCEDURE') {
283
+ return {
284
+ name: extractFunctionLikeName(subject.header.Name),
285
+ schema: subject.header.Schema ?? 'public',
286
+ type: 'PROCEDURE',
287
+ };
288
+ }
289
+
290
+ if (target.type === 'SEQUENCE') {
291
+ const [schemaName, sequenceName] = z
292
+ .tuple([z.string(), z.string()])
293
+ .parse(target.target.split('.'));
294
+
295
+ const sequenceSchemaObject = schemaObjects.find((schemaObject) => {
296
+ if (schemaObject.header.Type !== 'SEQUENCE') {
297
+ return false;
298
+ }
299
+
300
+ return (
301
+ schemaObject.header.Name === sequenceName &&
302
+ schemaObject.header.Schema === schemaName
303
+ );
304
+ });
305
+
306
+ if (!sequenceSchemaObject) {
307
+ throw new Error('Sequence not found');
308
+ }
309
+
310
+ const alterTableTarget = extractAlterTableTarget(sequenceSchemaObject.sql);
311
+
312
+ return {
313
+ name: alterTableTarget.name,
314
+ schema: alterTableTarget.schema,
315
+ type: 'TABLE',
316
+ };
317
+ }
318
+
319
+ if (target.type === 'TABLE') {
320
+ const [schema, name] = z
321
+ .tuple([z.string(), z.string()])
322
+ .parse(target.target.split('.'));
323
+
324
+ return {
325
+ name,
326
+ schema,
327
+ type: 'TABLE',
328
+ };
329
+ }
330
+
331
+ if (target.type === 'VIEW') {
332
+ const [schema, name] = z
333
+ .tuple([z.string(), z.string()])
334
+ .parse(target.target.split('.'));
335
+
336
+ return {
337
+ name,
338
+ schema,
339
+ type: 'VIEW',
340
+ };
341
+ }
342
+
343
+ if (target.type === 'TYPE') {
344
+ const [, typeName] = z
345
+ .tuple([z.string(), z.string()])
346
+ .parse(subject.header.Name.split(' '));
347
+
348
+ return {
349
+ name: typeName,
350
+ schema: subject.header.Schema ?? 'public',
351
+ type: 'TYPE',
352
+ };
353
+ }
354
+
355
+ return null;
356
+ };
357
+
171
358
  // eslint-disable-next-line complexity
172
359
  const scopeAttributedSchemaObject = (
173
360
  schemaObjects: AttributedSchemaObject[],
@@ -270,118 +457,7 @@ const scopeAttributedSchemaObject = (
270
457
  }
271
458
 
272
459
  if (subject.sql.startsWith('COMMENT ON ')) {
273
- const target = extractCommentOnTarget(subject.sql);
274
-
275
- if (target.type === 'EXTENSION') {
276
- return {
277
- name: target.target,
278
- schema: null,
279
- type: 'EXTENSION',
280
- };
281
- }
282
-
283
- if (target.type === 'TABLE') {
284
- const [schema, name] = z
285
- .tuple([z.string(), z.string()])
286
- .parse(target.target.split('.'));
287
-
288
- return {
289
- name,
290
- schema,
291
- type: 'TABLE',
292
- };
293
- }
294
-
295
- if (target.type === 'COLUMN') {
296
- const [schema, name] = z
297
- .tuple([z.string(), z.string(), z.string()])
298
- .parse(target.target.split('.'));
299
-
300
- return {
301
- name,
302
- schema,
303
- type: 'TABLE',
304
- };
305
- }
306
-
307
- if (target.type === 'INDEX') {
308
- const [schema, indexName] = z
309
- .tuple([z.string(), z.string()])
310
- .parse(target.target.split('.'));
311
-
312
- const indexSchemaObject = schemaObjects.find((schemaObject) => {
313
- if (schemaObject.header.Type !== 'INDEX') {
314
- return false;
315
- }
316
-
317
- return schemaObject.header.Name === indexName;
318
- });
319
-
320
- if (indexSchemaObject) {
321
- throw new Error('Not implemented');
322
- }
323
-
324
- const constraintSchemaObject = schemaObjects.find((schemaObject) => {
325
- if (schemaObject.header.Type !== 'CONSTRAINT') {
326
- return false;
327
- }
328
-
329
- return schemaObject.header.Name.split(' ')[1] === indexName;
330
- });
331
-
332
- if (constraintSchemaObject) {
333
- const [tableName] = constraintSchemaObject.header.Name.split(' ');
334
-
335
- return {
336
- name: tableName,
337
- schema,
338
- type: 'TABLE',
339
- };
340
- }
341
- }
342
-
343
- if (target.type === 'SEQUENCE') {
344
- const [schemaName, sequenceName] = z
345
- .tuple([z.string(), z.string()])
346
- .parse(target.target.split('.'));
347
-
348
- const sequenceSchemaObject = schemaObjects.find((schemaObject) => {
349
- if (schemaObject.header.Type !== 'SEQUENCE') {
350
- return false;
351
- }
352
-
353
- return (
354
- schemaObject.header.Name === sequenceName &&
355
- schemaObject.header.Schema === schemaName
356
- );
357
- });
358
-
359
- if (!sequenceSchemaObject) {
360
- throw new Error('Sequence not found');
361
- }
362
-
363
- const alterTableTarget = extractAlterTableTarget(
364
- sequenceSchemaObject.sql,
365
- );
366
-
367
- return {
368
- name: alterTableTarget.name,
369
- schema: alterTableTarget.schema,
370
- type: 'TABLE',
371
- };
372
- }
373
-
374
- if (target.type === 'TYPE') {
375
- const [, typeName] = z
376
- .tuple([z.string(), z.string()])
377
- .parse(subject.header.Name.split(' '));
378
-
379
- return {
380
- name: typeName,
381
- schema: subject.header.Schema ?? 'public',
382
- type: 'TYPE',
383
- };
384
- }
460
+ return scopeComment(schemaObjects, subject);
385
461
  }
386
462
 
387
463
  try {