pg-dump-parser 1.1.1 → 1.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.
- package/README.md +22 -22
- package/dist/parsePgDump.test.js +111 -2
- package/dist/parsePgDump.test.js.map +1 -1
- package/dist/scopeSchemaObject.d.ts.map +1 -1
- package/dist/scopeSchemaObject.js +45 -4
- package/dist/scopeSchemaObject.js.map +1 -1
- package/package.json +1 -1
- package/src/parsePgDump.test.ts +119 -4
- package/src/scopeSchemaObject.ts +61 -2
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
|
-
> [!
|
|
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
|
package/dist/parsePgDump.test.js
CHANGED
|
@@ -61,6 +61,13 @@ CREATE TYPE public.status AS ENUM (
|
|
|
61
61
|
|
|
62
62
|
ALTER TYPE public.status OWNER TO postgres;
|
|
63
63
|
|
|
64
|
+
--
|
|
65
|
+
-- Name: TYPE status; Type: COMMENT; Schema: public; Owner: postgres
|
|
66
|
+
--
|
|
67
|
+
|
|
68
|
+
COMMENT ON TYPE public.status IS 'Type comment x';
|
|
69
|
+
|
|
70
|
+
|
|
64
71
|
--
|
|
65
72
|
-- Name: CAST (text AS integer); Type: CAST; Schema: -; Owner: -
|
|
66
73
|
--
|
|
@@ -83,6 +90,13 @@ $$;
|
|
|
83
90
|
|
|
84
91
|
ALTER FUNCTION public.add_two_numbers(a integer, b integer) OWNER TO postgres;
|
|
85
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
|
+
|
|
86
100
|
--
|
|
87
101
|
-- Name: notify_foo_insert(); Type: FUNCTION; Schema: public; Owner: postgres
|
|
88
102
|
--
|
|
@@ -114,6 +128,13 @@ $$;
|
|
|
114
128
|
|
|
115
129
|
ALTER PROCEDURE public.say_hello(IN name_param character varying) OWNER TO postgres;
|
|
116
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
|
+
|
|
117
138
|
--
|
|
118
139
|
-- Name: my_sum(integer); Type: AGGREGATE; Schema: public; Owner: postgres
|
|
119
140
|
--
|
|
@@ -126,6 +147,13 @@ CREATE AGGREGATE public.my_sum(integer) (
|
|
|
126
147
|
|
|
127
148
|
ALTER AGGREGATE public.my_sum(integer) OWNER TO postgres;
|
|
128
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
|
+
|
|
129
157
|
SET default_tablespace = '';
|
|
130
158
|
|
|
131
159
|
SET default_table_access_method = heap;
|
|
@@ -299,6 +327,13 @@ CREATE UNIQUE INDEX bar_uid_idx ON public.bar USING btree (uid);
|
|
|
299
327
|
COMMENT ON INDEX public.foo_pkey IS 'Index comment x';
|
|
300
328
|
|
|
301
329
|
|
|
330
|
+
--
|
|
331
|
+
-- Name: qux_name_idx; Type: INDEX; Schema: public; Owner: postgres
|
|
332
|
+
--
|
|
333
|
+
|
|
334
|
+
CREATE INDEX qux_name_idx ON public.qux USING btree (name);
|
|
335
|
+
|
|
336
|
+
|
|
302
337
|
--
|
|
303
338
|
-- Name: foo foo_insert_trigger; Type: TRIGGER; Schema: public; Owner: postgres
|
|
304
339
|
--
|
|
@@ -334,14 +369,16 @@ GRANT SELECT(name) ON TABLE public.foo TO postgres;
|
|
|
334
369
|
-- PostgreSQL database dump complete
|
|
335
370
|
--
|
|
336
371
|
`;
|
|
337
|
-
const omit = (object, keys) =>
|
|
372
|
+
const omit = (object, keys) =>
|
|
373
|
+
// @ts-expect-error - Object.fromEntries is not typed
|
|
374
|
+
Object.fromEntries(Object.entries(object).filter(([key]) => !keys.includes(key)));
|
|
338
375
|
const expectSchemeObject = (expectedSchemaObject) => {
|
|
339
376
|
const schemaObjects = (0, parsePgDump_1.parsePgDump)(dump);
|
|
340
377
|
(0, vitest_1.expect)(schemaObjects).toContainEqual(omit(expectedSchemaObject, ['scope']));
|
|
341
378
|
if (typeof expectedSchemaObject.scope === 'undefined') {
|
|
342
379
|
return;
|
|
343
380
|
}
|
|
344
|
-
(0, vitest_1.expect)((0, scopeSchemaObject_1.scopeSchemaObject)(schemaObjects, expectedSchemaObject)).toEqual(expectedSchemaObject.scope);
|
|
381
|
+
(0, vitest_1.expect)((0, scopeSchemaObject_1.scopeSchemaObject)(schemaObjects, omit(expectedSchemaObject, ['scope']))).toEqual(expectedSchemaObject.scope);
|
|
345
382
|
};
|
|
346
383
|
(0, vitest_1.test)('extracts SEQUENCE', async () => {
|
|
347
384
|
expectSchemeObject({
|
|
@@ -480,6 +517,78 @@ const expectSchemeObject = (expectedSchemaObject) => {
|
|
|
480
517
|
`,
|
|
481
518
|
});
|
|
482
519
|
});
|
|
520
|
+
(0, vitest_1.test)('extracts COMMENT on TYPE', async () => {
|
|
521
|
+
expectSchemeObject({
|
|
522
|
+
header: {
|
|
523
|
+
Name: 'TYPE status',
|
|
524
|
+
Owner: 'postgres',
|
|
525
|
+
Schema: 'public',
|
|
526
|
+
Type: 'COMMENT',
|
|
527
|
+
},
|
|
528
|
+
scope: {
|
|
529
|
+
name: 'status',
|
|
530
|
+
schema: 'public',
|
|
531
|
+
type: 'TYPE',
|
|
532
|
+
},
|
|
533
|
+
sql: (0, multiline_ts_1.default) `
|
|
534
|
+
COMMENT ON TYPE public.status IS 'Type comment x';
|
|
535
|
+
`,
|
|
536
|
+
});
|
|
537
|
+
});
|
|
538
|
+
(0, vitest_1.test)('extracts COMMENT on FUNCTION', async () => {
|
|
539
|
+
expectSchemeObject({
|
|
540
|
+
header: {
|
|
541
|
+
Name: 'FUNCTION add_two_numbers(a integer, b integer)',
|
|
542
|
+
Owner: 'postgres',
|
|
543
|
+
Schema: 'public',
|
|
544
|
+
Type: 'COMMENT',
|
|
545
|
+
},
|
|
546
|
+
scope: {
|
|
547
|
+
name: 'add_two_numbers',
|
|
548
|
+
schema: 'public',
|
|
549
|
+
type: 'FUNCTION',
|
|
550
|
+
},
|
|
551
|
+
sql: (0, multiline_ts_1.default) `
|
|
552
|
+
COMMENT ON FUNCTION public.add_two_numbers(a integer, b integer) IS 'Function comment x';
|
|
553
|
+
`,
|
|
554
|
+
});
|
|
555
|
+
});
|
|
556
|
+
(0, vitest_1.test)('extracts COMMENT on AGGREGATE', async () => {
|
|
557
|
+
expectSchemeObject({
|
|
558
|
+
header: {
|
|
559
|
+
Name: 'AGGREGATE my_sum(integer)',
|
|
560
|
+
Owner: 'postgres',
|
|
561
|
+
Schema: 'public',
|
|
562
|
+
Type: 'COMMENT',
|
|
563
|
+
},
|
|
564
|
+
scope: {
|
|
565
|
+
name: 'my_sum',
|
|
566
|
+
schema: 'public',
|
|
567
|
+
type: 'AGGREGATE',
|
|
568
|
+
},
|
|
569
|
+
sql: (0, multiline_ts_1.default) `
|
|
570
|
+
COMMENT ON AGGREGATE public.my_sum(integer) IS 'Aggregate comment x';
|
|
571
|
+
`,
|
|
572
|
+
});
|
|
573
|
+
});
|
|
574
|
+
(0, vitest_1.test)('extracts COMMENT on PROCEDURE', async () => {
|
|
575
|
+
expectSchemeObject({
|
|
576
|
+
header: {
|
|
577
|
+
Name: 'PROCEDURE say_hello(IN name_param character varying)',
|
|
578
|
+
Owner: 'postgres',
|
|
579
|
+
Schema: 'public',
|
|
580
|
+
Type: 'COMMENT',
|
|
581
|
+
},
|
|
582
|
+
scope: {
|
|
583
|
+
name: 'say_hello',
|
|
584
|
+
schema: 'public',
|
|
585
|
+
type: 'PROCEDURE',
|
|
586
|
+
},
|
|
587
|
+
sql: (0, multiline_ts_1.default) `
|
|
588
|
+
COMMENT ON PROCEDURE public.say_hello(IN name_param character varying) IS 'Procedure comment x';
|
|
589
|
+
`,
|
|
590
|
+
});
|
|
591
|
+
});
|
|
483
592
|
(0, vitest_1.test)('extracts PUBLICATION', async () => {
|
|
484
593
|
expectSchemeObject({
|
|
485
594
|
header: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsePgDump.test.js","sourceRoot":"","sources":["../src/parsePgDump.test.ts"],"names":[],"mappings":";;;;;AACA,+CAA4C;AAC5C,2DAAgF;AAChF,gEAAqC;AACrC,mCAAsC;AAEtC,MAAM,IAAI,GAAG,IAAA,sBAAS,EAAA
|
|
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;
|
|
1
|
+
{"version":3,"file":"scopeSchemaObject.d.ts","sourceRoot":"","sources":["../src/scopeSchemaObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAyKzE,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;AAkRN,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>
|
|
101
|
+
const { target, type } = (_b = (_a = fragment.match(/COMMENT ON (?<type>AGGREGATE|COLUMN|EXTENSION|FUNCTION|INDEX|PROCEDURE|SEQUENCE|TABLE|TYPE)\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
|
}
|
|
@@ -102,7 +112,7 @@ const extractCommentOnTarget = (fragment) => {
|
|
|
102
112
|
};
|
|
103
113
|
// eslint-disable-next-line complexity
|
|
104
114
|
const scopeAttributedSchemaObject = (schemaObjects, subject) => {
|
|
105
|
-
var _a, _b, _c, _d, _e, _f;
|
|
115
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
106
116
|
if (subject.header.Type === 'FUNCTION') {
|
|
107
117
|
return {
|
|
108
118
|
name: subject.header.Name.split('(')[0],
|
|
@@ -262,6 +272,37 @@ const scopeAttributedSchemaObject = (schemaObjects, subject) => {
|
|
|
262
272
|
type: 'TABLE',
|
|
263
273
|
};
|
|
264
274
|
}
|
|
275
|
+
if (target.type === 'TYPE') {
|
|
276
|
+
const [, typeName] = zod_1.z
|
|
277
|
+
.tuple([zod_1.z.string(), zod_1.z.string()])
|
|
278
|
+
.parse(subject.header.Name.split(' '));
|
|
279
|
+
return {
|
|
280
|
+
name: typeName,
|
|
281
|
+
schema: (_g = subject.header.Schema) !== null && _g !== void 0 ? _g : 'public',
|
|
282
|
+
type: 'TYPE',
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
if (target.type === 'FUNCTION') {
|
|
286
|
+
return {
|
|
287
|
+
name: extractFunctionLikeName(subject.header.Name),
|
|
288
|
+
schema: (_h = subject.header.Schema) !== null && _h !== void 0 ? _h : 'public',
|
|
289
|
+
type: 'FUNCTION',
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
if (target.type === 'AGGREGATE') {
|
|
293
|
+
return {
|
|
294
|
+
name: extractFunctionLikeName(subject.header.Name),
|
|
295
|
+
schema: (_j = subject.header.Schema) !== null && _j !== void 0 ? _j : 'public',
|
|
296
|
+
type: 'AGGREGATE',
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
if (target.type === 'PROCEDURE') {
|
|
300
|
+
return {
|
|
301
|
+
name: extractFunctionLikeName(subject.header.Name),
|
|
302
|
+
schema: (_k = subject.header.Schema) !== null && _k !== void 0 ? _k : 'public',
|
|
303
|
+
type: 'PROCEDURE',
|
|
304
|
+
};
|
|
305
|
+
}
|
|
265
306
|
}
|
|
266
307
|
try {
|
|
267
308
|
const target = extractOwnedByTarget(subject.sql);
|
|
@@ -271,7 +312,7 @@ const scopeAttributedSchemaObject = (schemaObjects, subject) => {
|
|
|
271
312
|
type: 'TABLE',
|
|
272
313
|
};
|
|
273
314
|
}
|
|
274
|
-
catch (
|
|
315
|
+
catch (_l) {
|
|
275
316
|
// ignore
|
|
276
317
|
}
|
|
277
318
|
try {
|
|
@@ -282,7 +323,7 @@ const scopeAttributedSchemaObject = (schemaObjects, subject) => {
|
|
|
282
323
|
type: 'TABLE',
|
|
283
324
|
};
|
|
284
325
|
}
|
|
285
|
-
catch (
|
|
326
|
+
catch (_m) {
|
|
286
327
|
// ignore
|
|
287
328
|
}
|
|
288
329
|
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
package/src/parsePgDump.test.ts
CHANGED
|
@@ -58,6 +58,13 @@ CREATE TYPE public.status AS ENUM (
|
|
|
58
58
|
|
|
59
59
|
ALTER TYPE public.status OWNER TO postgres;
|
|
60
60
|
|
|
61
|
+
--
|
|
62
|
+
-- Name: TYPE status; Type: COMMENT; Schema: public; Owner: postgres
|
|
63
|
+
--
|
|
64
|
+
|
|
65
|
+
COMMENT ON TYPE public.status IS 'Type comment x';
|
|
66
|
+
|
|
67
|
+
|
|
61
68
|
--
|
|
62
69
|
-- Name: CAST (text AS integer); Type: CAST; Schema: -; Owner: -
|
|
63
70
|
--
|
|
@@ -80,6 +87,13 @@ $$;
|
|
|
80
87
|
|
|
81
88
|
ALTER FUNCTION public.add_two_numbers(a integer, b integer) OWNER TO postgres;
|
|
82
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
|
+
|
|
83
97
|
--
|
|
84
98
|
-- Name: notify_foo_insert(); Type: FUNCTION; Schema: public; Owner: postgres
|
|
85
99
|
--
|
|
@@ -111,6 +125,13 @@ $$;
|
|
|
111
125
|
|
|
112
126
|
ALTER PROCEDURE public.say_hello(IN name_param character varying) OWNER TO postgres;
|
|
113
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
|
+
|
|
114
135
|
--
|
|
115
136
|
-- Name: my_sum(integer); Type: AGGREGATE; Schema: public; Owner: postgres
|
|
116
137
|
--
|
|
@@ -123,6 +144,13 @@ CREATE AGGREGATE public.my_sum(integer) (
|
|
|
123
144
|
|
|
124
145
|
ALTER AGGREGATE public.my_sum(integer) OWNER TO postgres;
|
|
125
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
|
+
|
|
126
154
|
SET default_tablespace = '';
|
|
127
155
|
|
|
128
156
|
SET default_table_access_method = heap;
|
|
@@ -296,6 +324,13 @@ CREATE UNIQUE INDEX bar_uid_idx ON public.bar USING btree (uid);
|
|
|
296
324
|
COMMENT ON INDEX public.foo_pkey IS 'Index comment x';
|
|
297
325
|
|
|
298
326
|
|
|
327
|
+
--
|
|
328
|
+
-- Name: qux_name_idx; Type: INDEX; Schema: public; Owner: postgres
|
|
329
|
+
--
|
|
330
|
+
|
|
331
|
+
CREATE INDEX qux_name_idx ON public.qux USING btree (name);
|
|
332
|
+
|
|
333
|
+
|
|
299
334
|
--
|
|
300
335
|
-- Name: foo foo_insert_trigger; Type: TRIGGER; Schema: public; Owner: postgres
|
|
301
336
|
--
|
|
@@ -332,7 +367,11 @@ GRANT SELECT(name) ON TABLE public.foo TO postgres;
|
|
|
332
367
|
--
|
|
333
368
|
`;
|
|
334
369
|
|
|
335
|
-
const omit = <T extends Record<string, unknown>>(
|
|
370
|
+
const omit = <T extends Record<string, unknown>>(
|
|
371
|
+
object: T,
|
|
372
|
+
keys: string[],
|
|
373
|
+
): T =>
|
|
374
|
+
// @ts-expect-error - Object.fromEntries is not typed
|
|
336
375
|
Object.fromEntries(
|
|
337
376
|
Object.entries(object).filter(([key]) => !keys.includes(key)),
|
|
338
377
|
);
|
|
@@ -348,9 +387,9 @@ const expectSchemeObject = (
|
|
|
348
387
|
return;
|
|
349
388
|
}
|
|
350
389
|
|
|
351
|
-
expect(
|
|
352
|
-
expectedSchemaObject
|
|
353
|
-
);
|
|
390
|
+
expect(
|
|
391
|
+
scopeSchemaObject(schemaObjects, omit(expectedSchemaObject, ['scope'])),
|
|
392
|
+
).toEqual(expectedSchemaObject.scope);
|
|
354
393
|
};
|
|
355
394
|
|
|
356
395
|
test('extracts SEQUENCE', async () => {
|
|
@@ -497,6 +536,82 @@ test('extracts COMMENT on SEQUENCE', async () => {
|
|
|
497
536
|
});
|
|
498
537
|
});
|
|
499
538
|
|
|
539
|
+
test('extracts COMMENT on TYPE', async () => {
|
|
540
|
+
expectSchemeObject({
|
|
541
|
+
header: {
|
|
542
|
+
Name: 'TYPE status',
|
|
543
|
+
Owner: 'postgres',
|
|
544
|
+
Schema: 'public',
|
|
545
|
+
Type: 'COMMENT',
|
|
546
|
+
},
|
|
547
|
+
scope: {
|
|
548
|
+
name: 'status',
|
|
549
|
+
schema: 'public',
|
|
550
|
+
type: 'TYPE',
|
|
551
|
+
},
|
|
552
|
+
sql: multiline`
|
|
553
|
+
COMMENT ON TYPE public.status IS 'Type comment x';
|
|
554
|
+
`,
|
|
555
|
+
});
|
|
556
|
+
});
|
|
557
|
+
|
|
558
|
+
test('extracts COMMENT on FUNCTION', async () => {
|
|
559
|
+
expectSchemeObject({
|
|
560
|
+
header: {
|
|
561
|
+
Name: 'FUNCTION add_two_numbers(a integer, b integer)',
|
|
562
|
+
Owner: 'postgres',
|
|
563
|
+
Schema: 'public',
|
|
564
|
+
Type: 'COMMENT',
|
|
565
|
+
},
|
|
566
|
+
scope: {
|
|
567
|
+
name: 'add_two_numbers',
|
|
568
|
+
schema: 'public',
|
|
569
|
+
type: 'FUNCTION',
|
|
570
|
+
},
|
|
571
|
+
sql: multiline`
|
|
572
|
+
COMMENT ON FUNCTION public.add_two_numbers(a integer, b integer) IS 'Function comment x';
|
|
573
|
+
`,
|
|
574
|
+
});
|
|
575
|
+
});
|
|
576
|
+
|
|
577
|
+
test('extracts COMMENT on AGGREGATE', async () => {
|
|
578
|
+
expectSchemeObject({
|
|
579
|
+
header: {
|
|
580
|
+
Name: 'AGGREGATE my_sum(integer)',
|
|
581
|
+
Owner: 'postgres',
|
|
582
|
+
Schema: 'public',
|
|
583
|
+
Type: 'COMMENT',
|
|
584
|
+
},
|
|
585
|
+
scope: {
|
|
586
|
+
name: 'my_sum',
|
|
587
|
+
schema: 'public',
|
|
588
|
+
type: 'AGGREGATE',
|
|
589
|
+
},
|
|
590
|
+
sql: multiline`
|
|
591
|
+
COMMENT ON AGGREGATE public.my_sum(integer) IS 'Aggregate comment x';
|
|
592
|
+
`,
|
|
593
|
+
});
|
|
594
|
+
});
|
|
595
|
+
|
|
596
|
+
test('extracts COMMENT on PROCEDURE', async () => {
|
|
597
|
+
expectSchemeObject({
|
|
598
|
+
header: {
|
|
599
|
+
Name: 'PROCEDURE say_hello(IN name_param character varying)',
|
|
600
|
+
Owner: 'postgres',
|
|
601
|
+
Schema: 'public',
|
|
602
|
+
Type: 'COMMENT',
|
|
603
|
+
},
|
|
604
|
+
scope: {
|
|
605
|
+
name: 'say_hello',
|
|
606
|
+
schema: 'public',
|
|
607
|
+
type: 'PROCEDURE',
|
|
608
|
+
},
|
|
609
|
+
sql: multiline`
|
|
610
|
+
COMMENT ON PROCEDURE public.say_hello(IN name_param character varying) IS 'Procedure comment x';
|
|
611
|
+
`,
|
|
612
|
+
});
|
|
613
|
+
});
|
|
614
|
+
|
|
500
615
|
test('extracts PUBLICATION', async () => {
|
|
501
616
|
expectSchemeObject({
|
|
502
617
|
header: {
|
package/src/scopeSchemaObject.ts
CHANGED
|
@@ -119,15 +119,38 @@ 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:
|
|
138
|
+
type:
|
|
139
|
+
| 'AGGREGATE'
|
|
140
|
+
| 'COLUMN'
|
|
141
|
+
| 'EXTENSION'
|
|
142
|
+
| 'FUNCTION'
|
|
143
|
+
| 'INDEX'
|
|
144
|
+
| 'PROCEDURE'
|
|
145
|
+
| 'SEQUENCE'
|
|
146
|
+
| 'TABLE'
|
|
147
|
+
| 'TYPE';
|
|
125
148
|
};
|
|
126
149
|
|
|
127
150
|
const extractCommentOnTarget = (fragment: string): CommentOnTarget => {
|
|
128
151
|
const { target, type } =
|
|
129
152
|
fragment.match(
|
|
130
|
-
/COMMENT ON (?<type>
|
|
153
|
+
/COMMENT ON (?<type>AGGREGATE|COLUMN|EXTENSION|FUNCTION|INDEX|PROCEDURE|SEQUENCE|TABLE|TYPE)\s(?<target>.+?) IS/u,
|
|
131
154
|
)?.groups ?? {};
|
|
132
155
|
|
|
133
156
|
if (!target) {
|
|
@@ -370,6 +393,42 @@ const scopeAttributedSchemaObject = (
|
|
|
370
393
|
type: 'TABLE',
|
|
371
394
|
};
|
|
372
395
|
}
|
|
396
|
+
|
|
397
|
+
if (target.type === 'TYPE') {
|
|
398
|
+
const [, typeName] = z
|
|
399
|
+
.tuple([z.string(), z.string()])
|
|
400
|
+
.parse(subject.header.Name.split(' '));
|
|
401
|
+
|
|
402
|
+
return {
|
|
403
|
+
name: typeName,
|
|
404
|
+
schema: subject.header.Schema ?? 'public',
|
|
405
|
+
type: 'TYPE',
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
if (target.type === 'FUNCTION') {
|
|
410
|
+
return {
|
|
411
|
+
name: extractFunctionLikeName(subject.header.Name),
|
|
412
|
+
schema: subject.header.Schema ?? 'public',
|
|
413
|
+
type: 'FUNCTION',
|
|
414
|
+
};
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
if (target.type === 'AGGREGATE') {
|
|
418
|
+
return {
|
|
419
|
+
name: extractFunctionLikeName(subject.header.Name),
|
|
420
|
+
schema: subject.header.Schema ?? 'public',
|
|
421
|
+
type: 'AGGREGATE',
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
if (target.type === 'PROCEDURE') {
|
|
426
|
+
return {
|
|
427
|
+
name: extractFunctionLikeName(subject.header.Name),
|
|
428
|
+
schema: subject.header.Schema ?? 'public',
|
|
429
|
+
type: 'PROCEDURE',
|
|
430
|
+
};
|
|
431
|
+
}
|
|
373
432
|
}
|
|
374
433
|
|
|
375
434
|
try {
|