@memberjunction/codegen-lib 5.30.0 → 5.31.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 +2 -0
- package/dist/Angular/angular-codegen.js +3 -3
- package/dist/Angular/angular-codegen.js.map +1 -1
- package/dist/Angular/related-entity-components.js +1 -1
- package/dist/Angular/related-entity-components.js.map +1 -1
- package/dist/Config/config.js +1 -1
- package/dist/Config/config.js.map +1 -1
- package/dist/Database/codeGenDatabaseProvider.d.ts +266 -12
- package/dist/Database/codeGenDatabaseProvider.d.ts.map +1 -1
- package/dist/Database/codeGenDatabaseProvider.js +352 -0
- package/dist/Database/codeGenDatabaseProvider.js.map +1 -1
- package/dist/Database/manage-metadata.d.ts.map +1 -1
- package/dist/Database/manage-metadata.js +86 -87
- package/dist/Database/manage-metadata.js.map +1 -1
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.d.ts +105 -17
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.d.ts.map +1 -1
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.js +324 -94
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.js.map +1 -1
- package/dist/Database/providers/postgresql/viewDependencyCapture.d.ts +99 -0
- package/dist/Database/providers/postgresql/viewDependencyCapture.d.ts.map +1 -0
- package/dist/Database/providers/postgresql/viewDependencyCapture.js +170 -0
- package/dist/Database/providers/postgresql/viewDependencyCapture.js.map +1 -0
- package/dist/Database/providers/postgresql/viewFallback.d.ts +75 -0
- package/dist/Database/providers/postgresql/viewFallback.d.ts.map +1 -0
- package/dist/Database/providers/postgresql/viewFallback.js +172 -0
- package/dist/Database/providers/postgresql/viewFallback.js.map +1 -0
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.d.ts +0 -25
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.d.ts.map +1 -1
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.js +9 -113
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.js.map +1 -1
- package/dist/Database/providers/sqlserver/__tests__/SQLServerCodeGenProvider.test.d.ts +2 -0
- package/dist/Database/providers/sqlserver/__tests__/SQLServerCodeGenProvider.test.d.ts.map +1 -0
- package/dist/Database/providers/sqlserver/__tests__/SQLServerCodeGenProvider.test.js +207 -0
- package/dist/Database/providers/sqlserver/__tests__/SQLServerCodeGenProvider.test.js.map +1 -0
- package/dist/Database/sql.d.ts +9 -1
- package/dist/Database/sql.d.ts.map +1 -1
- package/dist/Database/sql.js +41 -7
- package/dist/Database/sql.js.map +1 -1
- package/dist/Database/sql_codegen.d.ts +30 -0
- package/dist/Database/sql_codegen.d.ts.map +1 -1
- package/dist/Database/sql_codegen.js +205 -44
- package/dist/Database/sql_codegen.js.map +1 -1
- package/dist/Misc/advanced_generation.js +1 -1
- package/dist/Misc/advanced_generation.js.map +1 -1
- package/dist/Misc/createNewUser.js +2 -2
- package/dist/Misc/createNewUser.js.map +1 -1
- package/dist/Misc/entity_subclasses_codegen.js +5 -5
- package/dist/Misc/entity_subclasses_codegen.js.map +1 -1
- package/dist/Misc/graphql_server_codegen.js +6 -6
- package/dist/Misc/graphql_server_codegen.js.map +1 -1
- package/dist/Misc/sql_logging.d.ts.map +1 -1
- package/dist/Misc/sql_logging.js +14 -4
- package/dist/Misc/sql_logging.js.map +1 -1
- package/dist/runCodeGen.d.ts.map +1 -1
- package/dist/runCodeGen.js +66 -2
- package/dist/runCodeGen.js.map +1 -1
- package/package.json +18 -18
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EntityInfo, EntityFieldInfo } from '@memberjunction/core';
|
|
2
|
-
import { CodeGenDatabaseProvider, CRUDType, BaseViewGenerationContext, CascadeDeleteContext, FullTextSearchResult } from '../../codeGenDatabaseProvider.js';
|
|
2
|
+
import { CodeGenDatabaseProvider, CRUDType, BaseViewGenerationContext, CascadeDeleteContext, FullTextSearchResult, PhasedExecutionResult } from '../../codeGenDatabaseProvider.js';
|
|
3
3
|
import { DatabasePlatform, SQLDialect } from '@memberjunction/sql-dialect';
|
|
4
4
|
/**
|
|
5
5
|
* PostgreSQL implementation of the CodeGen database provider.
|
|
@@ -21,8 +21,35 @@ export declare class PostgreSQLCodeGenProvider extends CodeGenDatabaseProvider {
|
|
|
21
21
|
* Generates a PostgreSQL `CREATE OR REPLACE VIEW` statement for an entity's base view.
|
|
22
22
|
* Includes all base table columns, parent/related field joins, and root field lateral
|
|
23
23
|
* joins. Applies a soft-delete `WHERE` filter when the entity uses soft deletes.
|
|
24
|
+
*
|
|
25
|
+
* **Non-destructive strategy.** Historically this method emitted
|
|
26
|
+
* `DROP VIEW IF EXISTS ... CASCADE;` before the CREATE, which let it handle every
|
|
27
|
+
* column-signature change — but also silently destroyed any dependent view, function,
|
|
28
|
+
* trigger, or GRANT on the view. When a later statement (or subsequent entity in the
|
|
29
|
+
* same run) failed, half the database's objects could be gone with no error surfaced.
|
|
30
|
+
*
|
|
31
|
+
* We now emit just `CREATE OR REPLACE VIEW`, which PostgreSQL accepts when the new
|
|
32
|
+
* column list is a prefix of the existing one plus optional trailing additions. Any
|
|
33
|
+
* incompatible change (rename, reorder, type change, removed column) fails with
|
|
34
|
+
* SQLSTATE `42P16 invalid_table_definition`. That error is intentionally allowed to
|
|
35
|
+
* propagate up through `executeSQLFileViaShell` → the per-entity batch loop → and is
|
|
36
|
+
* surfaced as a real regeneration failure. A follow-up pass will add a capture-drop-
|
|
37
|
+
* restore fallback for 42P16 that preserves dependents via `pg_depend` and
|
|
38
|
+
* `pg_get_viewdef` / `pg_get_functiondef`. Until that lands, 42P16 on PG is loud and
|
|
39
|
+
* actionable instead of silent and destructive.
|
|
40
|
+
*
|
|
41
|
+
* Permissions are handled separately by sql_codegen.ts via generateViewPermissions().
|
|
24
42
|
*/
|
|
25
43
|
generateBaseView(context: BaseViewGenerationContext): string;
|
|
44
|
+
/**
|
|
45
|
+
* Emits a `DO` block that drops every existing overload of `<schema>.<fnName>`.
|
|
46
|
+
* Run before each `CREATE OR REPLACE FUNCTION` to prevent PG's "function name is
|
|
47
|
+
* not unique" error when the parameter list grows (e.g. a new column adds a new
|
|
48
|
+
* `DEFAULT NULL` parameter — old + new overloads become call-ambiguous and PG
|
|
49
|
+
* refuses both `CREATE OR REPLACE` and any caller dispatch). Iterating overloads
|
|
50
|
+
* via `pg_proc` is the only way to drop without knowing the exact prior signature.
|
|
51
|
+
*/
|
|
52
|
+
private generateDropAllOverloadsBlock;
|
|
26
53
|
/**
|
|
27
54
|
* Generates a PostgreSQL `CREATE OR REPLACE FUNCTION` for inserting a new record.
|
|
28
55
|
* The function accepts typed parameters for each writable field, performs an `INSERT`
|
|
@@ -30,6 +57,9 @@ export declare class PostgreSQLCodeGenProvider extends CodeGenDatabaseProvider {
|
|
|
30
57
|
* `RETURN QUERY SELECT`. Handles auto-increment PKs (using `RETURNING ... INTO`),
|
|
31
58
|
* UUID PKs (with `COALESCE` to gen_random_uuid()), and composite PKs. Also emits
|
|
32
59
|
* `GRANT EXECUTE` permissions for authorized roles.
|
|
60
|
+
*
|
|
61
|
+
* Prepends a DROP-all-overloads block (see `generateDropAllOverloadsBlock`) so
|
|
62
|
+
* adding/removing a column doesn't trigger PG's overload-ambiguity error.
|
|
33
63
|
*/
|
|
34
64
|
generateCRUDCreate(entity: EntityInfo): string;
|
|
35
65
|
/**
|
|
@@ -119,17 +149,37 @@ export declare class PostgreSQLCodeGenProvider extends CodeGenDatabaseProvider {
|
|
|
119
149
|
* to allow optional arguments, and PostgreSQL's requirement that all subsequent
|
|
120
150
|
* parameters also have defaults once the first default appears is respected.
|
|
121
151
|
*/
|
|
152
|
+
/**
|
|
153
|
+
* PostgreSQL parameter types are mapped from the entity field's
|
|
154
|
+
* T-SQL `SQLFullType` (the metadata is canonically T-SQL) into the
|
|
155
|
+
* equivalent PostgreSQL type. SQL Server's base-class default would
|
|
156
|
+
* pass the type through unchanged, which would emit invalid PG
|
|
157
|
+
* function signatures.
|
|
158
|
+
*/
|
|
159
|
+
protected renderParameterType(ef: EntityFieldInfo): string;
|
|
160
|
+
/**
|
|
161
|
+
* PostgreSQL override: same tolerant-SP shape as the base class, but
|
|
162
|
+
* with PG's "all params after the first DEFAULT must also have DEFAULTs"
|
|
163
|
+
* rule enforced. Once any parameter becomes optional (or a `_Clear`
|
|
164
|
+
* companion is emitted), every subsequent parameter is forced to
|
|
165
|
+
* `DEFAULT NULL` even if it would otherwise be required, because PG
|
|
166
|
+
* function signatures don't allow gaps between defaulted params.
|
|
167
|
+
*
|
|
168
|
+
* All decision logic and dialect-syntax bits route through the same
|
|
169
|
+
* base-class helpers / dialect methods used by SQL Server — the only
|
|
170
|
+
* thing that differs is the sticky-defaults walk.
|
|
171
|
+
*/
|
|
122
172
|
generateCRUDParamString(entityFields: EntityFieldInfo[], isUpdate: boolean): string;
|
|
123
173
|
/**
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
174
|
+
* PostgreSQL override of the INSERT default-value renderer to handle
|
|
175
|
+
* the BIT→BOOLEAN type-strictness gap. The base implementation passes
|
|
176
|
+
* the SQL Server-style default through unchanged, but PG's strict
|
|
177
|
+
* typing means `COALESCE(boolean_param, 0)` fails with "operator does
|
|
178
|
+
* not exist: boolean = integer". This override remaps `BIT` defaults
|
|
179
|
+
* (`0`/`1`) to `BOOLEAN` literals (`FALSE`/`TRUE`) when the field's
|
|
180
|
+
* underlying type is bit/boolean.
|
|
129
181
|
*/
|
|
130
|
-
|
|
131
|
-
/** @inheritdoc */
|
|
132
|
-
generateUpdateFieldString(entityFields: EntityFieldInfo[]): string;
|
|
182
|
+
protected formatInsertDefaultValue(ef: EntityFieldInfo): string;
|
|
133
183
|
/** @inheritdoc */
|
|
134
184
|
getCRUDRoutineName(entity: EntityInfo, type: CRUDType): string;
|
|
135
185
|
/** @inheritdoc */
|
|
@@ -244,6 +294,45 @@ export declare class PostgreSQLCodeGenProvider extends CodeGenDatabaseProvider {
|
|
|
244
294
|
* `PG_PASSWORD`) with fallback to `configInfo` values.
|
|
245
295
|
*/
|
|
246
296
|
executeSQLFileViaShell(filePath: string): Promise<boolean>;
|
|
297
|
+
/** @inheritdoc */
|
|
298
|
+
getRoutineNamesBySchemaSQL(schemas: string[]): string;
|
|
299
|
+
/**
|
|
300
|
+
* PG-specific base-view regeneration with 42P16 recovery.
|
|
301
|
+
*
|
|
302
|
+
* Runs the provided `CREATE OR REPLACE VIEW` SQL through `executeWithFallback`
|
|
303
|
+
* on a dedicated connection: happy path issues the CREATE OR REPLACE directly,
|
|
304
|
+
* and only on SQLSTATE 42P16 does the capture/drop/recreate/restore dance fire
|
|
305
|
+
* inside a transaction that preserves every dependent view, function, grant,
|
|
306
|
+
* comment, and owner. See `viewFallback.ts` for the contract.
|
|
307
|
+
*
|
|
308
|
+
* `willRegenerate` is passed through so dependents CodeGen is about to rebuild
|
|
309
|
+
* in the same run are skipped at restore time (avoids restoring a stale
|
|
310
|
+
* captured definition against a newly-regenerated target).
|
|
311
|
+
*/
|
|
312
|
+
regenerateBaseView(entity: EntityInfo, viewSQL: string, willRegenerate?: Set<string>): Promise<void>;
|
|
313
|
+
/**
|
|
314
|
+
* Phased per-entity execution for PG. Runs view → CRUD functions → view
|
|
315
|
+
* permissions against the target DB, guaranteeing phase 2 is skipped if
|
|
316
|
+
* phase 1 failed (so we never leave `fn_create_*` functions pointing at
|
|
317
|
+
* a missing or stale view's rowtype).
|
|
318
|
+
*
|
|
319
|
+
* Phase 1 routes through `executeWithFallback` so a 42P16 triggers the
|
|
320
|
+
* capture/drop/recreate/restore flow rather than blowing up. Phase 2 runs
|
|
321
|
+
* each CRUD function's CREATE individually — we do NOT concatenate them
|
|
322
|
+
* because node-pg's simple query protocol would then abort the whole
|
|
323
|
+
* batch on the first failure; running them separately gives a per-routine
|
|
324
|
+
* error signal. Phase 3 applies view-level GRANTs.
|
|
325
|
+
*/
|
|
326
|
+
executeEntityPhased(opts: {
|
|
327
|
+
entity: EntityInfo;
|
|
328
|
+
tvfSQL: string;
|
|
329
|
+
viewSQL: string;
|
|
330
|
+
crudCreateSQL: string;
|
|
331
|
+
crudUpdateSQL: string;
|
|
332
|
+
crudDeleteSQL: string;
|
|
333
|
+
viewPermSQL: string;
|
|
334
|
+
willRegenerate?: Set<string>;
|
|
335
|
+
}): Promise<PhasedExecutionResult>;
|
|
247
336
|
/**
|
|
248
337
|
* Converts a PascalCase or camelCase string to snake_case.
|
|
249
338
|
* Handles consecutive uppercase letters (e.g., "ID" → "id", "HTMLParser" → "html_parser").
|
|
@@ -261,14 +350,13 @@ export declare class PostgreSQLCodeGenProvider extends CodeGenDatabaseProvider {
|
|
|
261
350
|
private buildBaseViewSelectParts;
|
|
262
351
|
/** Assembles the FROM/JOIN parts for a base view */
|
|
263
352
|
private buildBaseViewFromParts;
|
|
264
|
-
/**
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
private getParameterInsertValue;
|
|
353
|
+
/**
|
|
354
|
+
* Like formatDefaultValue, but maps SQL Server BIT defaults (0/1) to PG
|
|
355
|
+
* BOOLEAN literals (FALSE/TRUE) when the field type is bit/boolean.
|
|
356
|
+
* COALESCE() in PG is type-strict — passing `COALESCE(boolean_param, 0)`
|
|
357
|
+
* fails with "types boolean and integer cannot be matched".
|
|
358
|
+
*/
|
|
359
|
+
private formatBooleanCompatibleDefault;
|
|
272
360
|
/** Builds a WHERE clause using primary key fields with a parameter prefix */
|
|
273
361
|
private buildPrimaryKeyWhereClause;
|
|
274
362
|
/** Builds the INSERT strategy for CREATE function based on PK type */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostgreSQLCodeGenProvider.d.ts","sourceRoot":"","sources":["../../../../src/Database/providers/postgresql/PostgreSQLCodeGenProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAwB,MAAM,sBAAsB,CAAC;AAEzF,OAAO,EACH,uBAAuB,EACvB,QAAQ,EACR,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"PostgreSQLCodeGenProvider.d.ts","sourceRoot":"","sources":["../../../../src/Database/providers/postgresql/PostgreSQLCodeGenProvider.ts"],"names":[],"mappings":"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"}
|