@memberjunction/codegen-lib 5.47.0 → 5.49.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/dist/Config/config.d.ts +55 -2
- package/dist/Config/config.d.ts.map +1 -1
- package/dist/Config/config.js +40 -3
- package/dist/Config/config.js.map +1 -1
- package/dist/Database/codeGenDatabaseProvider.d.ts +65 -2
- package/dist/Database/codeGenDatabaseProvider.d.ts.map +1 -1
- package/dist/Database/codeGenDatabaseProvider.js +69 -0
- package/dist/Database/codeGenDatabaseProvider.js.map +1 -1
- package/dist/Database/manage-metadata.d.ts +43 -2
- package/dist/Database/manage-metadata.d.ts.map +1 -1
- package/dist/Database/manage-metadata.js +186 -18
- package/dist/Database/manage-metadata.js.map +1 -1
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.d.ts +29 -1
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.d.ts.map +1 -1
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.js +62 -76
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.js.map +1 -1
- package/dist/Database/providers/postgresql/metadataSupportObjects.js +73 -8
- package/dist/Database/providers/postgresql/metadataSupportObjects.js.map +1 -1
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.d.ts +3 -1
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.d.ts.map +1 -1
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.js +19 -15
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.js.map +1 -1
- package/dist/Database/providers/sqlserver/__tests__/SQLServerCodeGenProvider.test.js +143 -0
- package/dist/Database/providers/sqlserver/__tests__/SQLServerCodeGenProvider.test.js.map +1 -1
- package/dist/Manifest/GenerateClassRegistrationsManifest.d.ts.map +1 -1
- package/dist/Manifest/GenerateClassRegistrationsManifest.js +62 -15
- package/dist/Manifest/GenerateClassRegistrationsManifest.js.map +1 -1
- package/dist/Misc/advanced_generation.d.ts +25 -0
- package/dist/Misc/advanced_generation.d.ts.map +1 -1
- package/dist/Misc/advanced_generation.js +75 -0
- package/dist/Misc/advanced_generation.js.map +1 -1
- package/package.json +27 -27
|
@@ -226,6 +226,15 @@ LANGUAGE plpgsql AS $func$
|
|
|
226
226
|
DECLARE
|
|
227
227
|
v_is_scoped BOOLEAN := FALSE;
|
|
228
228
|
BEGIN
|
|
229
|
+
-- [Large Schema Series] Force hash/merge joins for the catalog-introspection
|
|
230
|
+
-- reconciliation below. In the scoped Pass-2 codegen path this SP runs AFTER
|
|
231
|
+
-- the SQL-generation phase has created thousands of base views + functions,
|
|
232
|
+
-- when pg_catalog stats are stale and the introspection view is misestimated
|
|
233
|
+
-- at rows=1 → nested-loop catalog re-scans. See the matching guard + rationale
|
|
234
|
+
-- in spDeleteUnneededEntityFields. SET LOCAL scopes it to this call only and
|
|
235
|
+
-- needs no ANALYZE privileges on pg_catalog.
|
|
236
|
+
SET LOCAL enable_nestloop = off;
|
|
237
|
+
|
|
229
238
|
DROP TABLE IF EXISTS _uef_excluded;
|
|
230
239
|
CREATE TEMP TABLE _uef_excluded AS
|
|
231
240
|
SELECT TRIM(s) AS schema_name
|
|
@@ -239,6 +248,33 @@ BEGIN
|
|
|
239
248
|
WHERE TRIM(v) ~* '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$';
|
|
240
249
|
v_is_scoped := EXISTS (SELECT 1 FROM _uef_scope);
|
|
241
250
|
|
|
251
|
+
-- [Large Schema Series] Materialize the catalog-introspection views into
|
|
252
|
+
-- ANALYZE'd temp tables BEFORE the reconciliation join below. These views are
|
|
253
|
+
-- function-based scans over pg_catalog (vwSQLColumnsAndEntityFields computes
|
|
254
|
+
-- col_description/pg_get_expr/regex per column; the FK/PK/UK views scan
|
|
255
|
+
-- pg_index/pg_constraint), so the planner has NO row statistics for them and
|
|
256
|
+
-- defaults every join estimate to rows=1 → a cascade of nested loops that
|
|
257
|
+
-- re-scan the whole catalog per outer row. Measured on a 600-table schema:
|
|
258
|
+
-- one call to this function = ~78s, and it grows super-linearly (O(N^2)) as
|
|
259
|
+
-- codegen adds objects mid-run. Materializing each view exactly once + ANALYZE
|
|
260
|
+
-- gives the planner real cardinalities so the reconciliation join hash-joins
|
|
261
|
+
-- instead of nested-looping.
|
|
262
|
+
DROP TABLE IF EXISTS _uef_cols;
|
|
263
|
+
CREATE TEMP TABLE _uef_cols AS SELECT * FROM __mj."vwSQLColumnsAndEntityFields";
|
|
264
|
+
ANALYZE _uef_cols;
|
|
265
|
+
|
|
266
|
+
DROP TABLE IF EXISTS _uef_fk;
|
|
267
|
+
CREATE TEMP TABLE _uef_fk AS SELECT * FROM __mj."vwForeignKeys";
|
|
268
|
+
ANALYZE _uef_fk;
|
|
269
|
+
|
|
270
|
+
DROP TABLE IF EXISTS _uef_pk;
|
|
271
|
+
CREATE TEMP TABLE _uef_pk AS SELECT * FROM __mj."vwTablePrimaryKeys";
|
|
272
|
+
ANALYZE _uef_pk;
|
|
273
|
+
|
|
274
|
+
DROP TABLE IF EXISTS _uef_uk;
|
|
275
|
+
CREATE TEMP TABLE _uef_uk AS SELECT * FROM __mj."vwTableUniqueKeys";
|
|
276
|
+
ANALYZE _uef_uk;
|
|
277
|
+
|
|
242
278
|
DROP TABLE IF EXISTS _uef_filtered;
|
|
243
279
|
CREATE TEMP TABLE _uef_filtered AS
|
|
244
280
|
SELECT * FROM (
|
|
@@ -290,8 +326,12 @@ BEGIN
|
|
|
290
326
|
OR COALESCE(ef."RelatedEntityID", '00000000-0000-0000-0000-000000000000'::uuid) <>
|
|
291
327
|
COALESCE(re."ID", '00000000-0000-0000-0000-000000000000'::uuid)
|
|
292
328
|
OR COALESCE(TRIM(ef."RelatedEntityFieldName"), '') <> COALESCE(TRIM(fk."referenced_column"::text), '')
|
|
293
|
-
|
|
294
|
-
|
|
329
|
+
-- U2 — soft-PK guard: a soft primary key (IsSoftPrimaryKey, set from additionalSchemaInfo)
|
|
330
|
+
-- has NO physical PK/unique constraint, so the physical-schema comparison would flag it as
|
|
331
|
+
-- "changed" on EVERY run and the UPDATE below would wipe it. Soft-PK rows are excluded from
|
|
332
|
+
-- the PK/unique material-change predicate and their flags are frozen in the UPDATE.
|
|
333
|
+
OR (NOT ef."IsSoftPrimaryKey" AND ef."IsPrimaryKey" <> (pk."ColumnName" IS NOT NULL))
|
|
334
|
+
OR (NOT ef."IsSoftPrimaryKey" AND ef."IsUnique" <> (pk."ColumnName" IS NOT NULL OR uk."ColumnName" IS NOT NULL))
|
|
295
335
|
OR (ef."AllowUpdateAPI" = TRUE AND sq."IsVirtual" <> 0 AND ef."IsVirtual" = FALSE)
|
|
296
336
|
) AS is_material_change,
|
|
297
337
|
-- A pure Sequence renumber: persisted by the UPDATE below (renumbering is real) but NOT
|
|
@@ -299,16 +339,18 @@ BEGIN
|
|
|
299
339
|
-- sequence" while the modified-entity RETURN stays material-only.
|
|
300
340
|
(ef."Sequence" <> sq."Sequence") AS is_sequence_change
|
|
301
341
|
FROM __mj."EntityField" ef
|
|
302
|
-
|
|
342
|
+
-- [Large Schema Series] joins repointed from the catalog views to the ANALYZE'd
|
|
343
|
+
-- temp tables materialized above (identical column sets via SELECT *).
|
|
344
|
+
INNER JOIN _uef_cols sq
|
|
303
345
|
ON ef."EntityID" = sq."EntityID" AND ef."Name"::text = sq."FieldName"::text
|
|
304
346
|
INNER JOIN __mj."Entity" e ON ef."EntityID" = e."ID"
|
|
305
|
-
LEFT JOIN
|
|
347
|
+
LEFT JOIN _uef_fk fk
|
|
306
348
|
ON ef."Name"::text = fk."column"::text AND e."BaseTable"::text = fk."table"::text AND e."SchemaName"::text = fk."schema_name"::text
|
|
307
349
|
LEFT JOIN __mj."Entity" re
|
|
308
350
|
ON re."BaseTable"::text = fk."referenced_table"::text AND re."SchemaName"::text = fk."referenced_schema"::text
|
|
309
|
-
LEFT JOIN
|
|
351
|
+
LEFT JOIN _uef_pk pk
|
|
310
352
|
ON e."BaseTable"::text = pk."TableName"::text AND ef."Name"::text = pk."ColumnName"::text AND e."SchemaName"::text = pk."SchemaName"::text
|
|
311
|
-
LEFT JOIN
|
|
353
|
+
LEFT JOIN _uef_uk uk
|
|
312
354
|
ON e."BaseTable"::text = uk."TableName"::text AND ef."Name"::text = uk."ColumnName"::text AND e."SchemaName"::text = uk."SchemaName"::text
|
|
313
355
|
LEFT JOIN _uef_excluded ex ON e."SchemaName"::text = ex.schema_name
|
|
314
356
|
WHERE e."VirtualEntity" = FALSE
|
|
@@ -345,8 +387,9 @@ BEGIN
|
|
|
345
387
|
"Sequence" = fr.new_sequence,
|
|
346
388
|
"RelatedEntityID" = CASE WHEN tgt."AutoUpdateRelatedEntityInfo" THEN fr.related_entity_id ELSE tgt."RelatedEntityID" END,
|
|
347
389
|
"RelatedEntityFieldName" = CASE WHEN tgt."AutoUpdateRelatedEntityInfo" THEN fr.related_entity_field_name ELSE tgt."RelatedEntityFieldName" END,
|
|
348
|
-
|
|
349
|
-
"
|
|
390
|
+
-- U2 — soft-PK guard: never let the physical-schema sync wipe a soft PK's flags
|
|
391
|
+
"IsPrimaryKey" = CASE WHEN tgt."IsSoftPrimaryKey" THEN tgt."IsPrimaryKey" ELSE fr.new_is_primary_key END,
|
|
392
|
+
"IsUnique" = CASE WHEN tgt."IsSoftPrimaryKey" THEN tgt."IsUnique" ELSE fr.new_is_unique END,
|
|
350
393
|
-- when a field transitions to virtual it can no longer be written to
|
|
351
394
|
"AllowUpdateAPI" = CASE WHEN fr.new_is_virtual AND NOT tgt."IsVirtual" THEN FALSE ELSE tgt."AllowUpdateAPI" END,
|
|
352
395
|
"__mj_UpdatedAt" = now()
|
|
@@ -445,6 +488,21 @@ LANGUAGE plpgsql AS $func$
|
|
|
445
488
|
DECLARE
|
|
446
489
|
v_is_scoped BOOLEAN := FALSE;
|
|
447
490
|
BEGIN
|
|
491
|
+
-- [Large Schema Series] Force hash/merge joins for this reconciliation.
|
|
492
|
+
-- This SP runs in codegen Pass 2, immediately AFTER the SQL-generation phase
|
|
493
|
+
-- has created thousands of base views + CRUD functions. At that moment PG's
|
|
494
|
+
-- pg_catalog statistics are stale (autoanalyze hasn't caught up), so the
|
|
495
|
+
-- catalog-introspection view (vwSQLColumnsAndEntityFields → pg_class/pg_attribute)
|
|
496
|
+
-- is estimated at rows=1 and the planner picks a cascade of nested loops that
|
|
497
|
+
-- re-scan the freshly-ballooned catalog per row — measured at ~500s on a
|
|
498
|
+
-- 2,000-table schema, even though the same call runs in <1s once stats settle.
|
|
499
|
+
-- enable_nestloop=off sidesteps the stale-stats misestimate directly (the
|
|
500
|
+
-- correct strategy here is always hash/merge over these large introspection
|
|
501
|
+
-- scans). SET LOCAL scopes it to this call's transaction only. This does NOT
|
|
502
|
+
-- require ANALYZE privileges on pg_catalog (which a codegen role may lack on
|
|
503
|
+
-- managed PostgreSQL).
|
|
504
|
+
SET LOCAL enable_nestloop = off;
|
|
505
|
+
|
|
448
506
|
DROP TABLE IF EXISTS _del_scope;
|
|
449
507
|
CREATE TEMP TABLE _del_scope AS
|
|
450
508
|
SELECT DISTINCT TRIM(v)::uuid AS entity_id
|
|
@@ -484,6 +542,9 @@ BEGIN
|
|
|
484
542
|
AND ef."EntityID" NOT IN (SELECT entity_id FROM _del_ext_entities) -- exclude external-data-source entities (see note above)
|
|
485
543
|
AND ex.v IS NULL
|
|
486
544
|
AND (NOT v_is_scoped OR ef."EntityID" IN (SELECT s.entity_id FROM _del_scope s));
|
|
545
|
+
-- [Large Schema Series] ANALYZE so the planner has real cardinalities for the
|
|
546
|
+
-- orphan join below. Without stats it estimates rows=1 and nested-loops.
|
|
547
|
+
ANALYZE _del_ef;
|
|
487
548
|
|
|
488
549
|
-- actual columns present in the database
|
|
489
550
|
DROP TABLE IF EXISTS _del_actual;
|
|
@@ -491,6 +552,10 @@ BEGIN
|
|
|
491
552
|
SELECT sq."EntityID" AS entity_id, sq."FieldName"::text AS field_name
|
|
492
553
|
FROM __mj."vwSQLColumnsAndEntityFields" sq
|
|
493
554
|
WHERE (NOT v_is_scoped OR sq."EntityID" IN (SELECT s.entity_id FROM _del_scope s));
|
|
555
|
+
-- [Large Schema Series] _del_actual is a single materialization of the heavy
|
|
556
|
+
-- function-based introspection view; ANALYZE it before the orphan join so the
|
|
557
|
+
-- LEFT JOIN below hash-joins instead of re-scanning the catalog per row.
|
|
558
|
+
ANALYZE _del_actual;
|
|
494
559
|
|
|
495
560
|
-- orphans: metadata field with no matching DB column
|
|
496
561
|
DROP TABLE IF EXISTS _del_deleted;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadataSupportObjects.js","sourceRoot":"","sources":["../../../../src/Database/providers/postgresql/metadataSupportObjects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,8BAA8B,CAAC,YAAoB;IAC/D,OAAO,4BAA4B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACzE,CAAC;AACD,MAAM,4BAA4B,GAAW,MAAM,CAAC,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"metadataSupportObjects.js","sourceRoot":"","sources":["../../../../src/Database/providers/postgresql/metadataSupportObjects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,8BAA8B,CAAC,YAAoB;IAC/D,OAAO,4BAA4B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACzE,CAAC;AACD,MAAM,4BAA4B,GAAW,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8tBtD,CAAC"}
|
|
@@ -90,7 +90,9 @@ export declare class SQLServerCodeGenProvider extends CodeGenDatabaseProvider {
|
|
|
90
90
|
* to 128 characters (SQL Server's identifier length limit). Wraps each statement in an
|
|
91
91
|
* `IF NOT EXISTS` check against `sys.indexes` to avoid duplicate index creation.
|
|
92
92
|
*/
|
|
93
|
-
|
|
93
|
+
protected tableToken(entity: EntityInfo): string;
|
|
94
|
+
protected columnToken(f: EntityFieldInfo): string;
|
|
95
|
+
protected formatIndexStatement(entity: EntityInfo, f: EntityFieldInfo, indexName: string): string;
|
|
94
96
|
/**
|
|
95
97
|
* Generates SQL Server full-text search infrastructure for an entity, conditionally
|
|
96
98
|
* producing up to three components based on entity metadata flags:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLServerCodeGenProvider.d.ts","sourceRoot":"","sources":["../../../../src/Database/providers/sqlserver/SQLServerCodeGenProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"SQLServerCodeGenProvider.d.ts","sourceRoot":"","sources":["../../../../src/Database/providers/sqlserver/SQLServerCodeGenProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { EntityInfo, CodeNameFromString } from '@memberjunction/core';
|
|
7
|
+
import { EntityInfo, CodeNameFromString, ResolveStartupMode } from '@memberjunction/core';
|
|
8
8
|
import { CodeGenDatabaseProvider, } from '../../codeGenDatabaseProvider.js';
|
|
9
9
|
import { SQLServerDialect } from '@memberjunction/sql-dialect';
|
|
10
10
|
import { RegisterClass } from '@memberjunction/global';
|
|
11
11
|
import { sortBySequenceAndCreatedAt } from '../../../Misc/util.js';
|
|
12
|
-
import { dbDatabase, mj_core_schema } from '../../../Config/config.js';
|
|
12
|
+
import { configInfo, dbDatabase, mj_core_schema } from '../../../Config/config.js';
|
|
13
13
|
import { MSSQLConnection, getSqlConfig } from '../../../Config/db-connection.js';
|
|
14
14
|
import { logError, logWarning, startSpinner, succeedSpinner } from '../../../Misc/status_logging.js';
|
|
15
15
|
import { SQLServerProviderConfigData, UserCache, setupSQLServerClient, } from '@memberjunction/sqlserver-dataprovider';
|
|
@@ -52,7 +52,10 @@ let SQLServerCodeGenProvider = class SQLServerCodeGenProvider extends CodeGenDat
|
|
|
52
52
|
startSpinner('Initializing database connection...');
|
|
53
53
|
const pool = await MSSQLConnection();
|
|
54
54
|
const config = new SQLServerProviderConfigData(pool, mj_core_schema());
|
|
55
|
-
|
|
55
|
+
// CodeGen is a short-lived process ⇒ 'task' entry-point default: skip engine
|
|
56
|
+
// pre-warm; MJ_STARTUP_MODE or mj.config.cjs startup.mode can override
|
|
57
|
+
const startupMode = ResolveStartupMode({ configValue: configInfo.startup?.mode, defaultMode: 'task' });
|
|
58
|
+
const provider = await setupSQLServerClient(config, { mode: startupMode.mode });
|
|
56
59
|
const conn = new SQLServerCodeGenConnection(pool);
|
|
57
60
|
// `getSqlConfig()` returns the config that was built lazily by
|
|
58
61
|
// MSSQLConnection() above. The non-null assertion is safe because the
|
|
@@ -463,24 +466,25 @@ GO`;
|
|
|
463
466
|
* to 128 characters (SQL Server's identifier length limit). Wraps each statement in an
|
|
464
467
|
* `IF NOT EXISTS` check against `sys.indexes` to avoid duplicate index creation.
|
|
465
468
|
*/
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
469
|
+
tableToken(entity) {
|
|
470
|
+
return entity.BaseTableCodeName;
|
|
471
|
+
}
|
|
472
|
+
columnToken(f) {
|
|
473
|
+
return f.CodeName;
|
|
474
|
+
}
|
|
475
|
+
formatIndexStatement(entity, f, indexName) {
|
|
476
|
+
// NOTE: the trailing space after the index name below is intentional — it reproduces
|
|
477
|
+
// the historical output byte-for-byte. `writeFileIfChanged` compares generated file
|
|
478
|
+
// content, so altering even insignificant whitespace would rewrite every entity's
|
|
479
|
+
// .index.generated.sql on the next run for no functional gain.
|
|
480
|
+
return `-- Index for foreign key ${f.Name} in table ${entity.BaseTable}
|
|
474
481
|
IF NOT EXISTS (
|
|
475
482
|
SELECT 1
|
|
476
483
|
FROM sys.indexes
|
|
477
484
|
WHERE name = '${indexName}'
|
|
478
485
|
AND object_id = OBJECT_ID('[${entity.SchemaName}].[${entity.BaseTable}]')
|
|
479
486
|
)
|
|
480
|
-
CREATE INDEX ${indexName} ON [${entity.SchemaName}].[${entity.BaseTable}] ([${f.Name}])
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
return indexes;
|
|
487
|
+
CREATE INDEX ${indexName} ON [${entity.SchemaName}].[${entity.BaseTable}] ([${f.Name}]);`;
|
|
484
488
|
}
|
|
485
489
|
// ─── FULL-TEXT SEARCH ────────────────────────────────────────────────
|
|
486
490
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLServerCodeGenProvider.js","sourceRoot":"","sources":["../../../../src/Database/providers/sqlserver/SQLServerCodeGenProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SQLServerCodeGenProvider.js","sourceRoot":"","sources":["../../../../src/Database/providers/sqlserver/SQLServerCodeGenProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -501,4 +501,147 @@ describe('SQLServerCodeGenProvider — tolerant SP signatures', () => {
|
|
|
501
501
|
});
|
|
502
502
|
});
|
|
503
503
|
});
|
|
504
|
+
/** Shorthand for a normal, indexable FK field. */
|
|
505
|
+
function fkField(name, extra = {}) {
|
|
506
|
+
return {
|
|
507
|
+
ID: `fk-${name}`,
|
|
508
|
+
Name: name,
|
|
509
|
+
Type: 'uniqueidentifier',
|
|
510
|
+
Length: 16,
|
|
511
|
+
IsPrimaryKey: false,
|
|
512
|
+
AllowsNull: true,
|
|
513
|
+
AllowUpdateAPI: true,
|
|
514
|
+
IsVirtual: false,
|
|
515
|
+
AutoIncrement: false,
|
|
516
|
+
DefaultValue: '',
|
|
517
|
+
RelatedEntityID: 'related-entity-id',
|
|
518
|
+
...extra,
|
|
519
|
+
};
|
|
520
|
+
}
|
|
521
|
+
const pkField = {
|
|
522
|
+
ID: 'pk-1',
|
|
523
|
+
Name: 'ID',
|
|
524
|
+
Type: 'uniqueidentifier',
|
|
525
|
+
Length: 16,
|
|
526
|
+
IsPrimaryKey: true,
|
|
527
|
+
AllowsNull: false,
|
|
528
|
+
AllowUpdateAPI: true,
|
|
529
|
+
IsVirtual: false,
|
|
530
|
+
AutoIncrement: false,
|
|
531
|
+
DefaultValue: '',
|
|
532
|
+
RelatedEntityID: null,
|
|
533
|
+
};
|
|
534
|
+
/**
|
|
535
|
+
* FK auto-index generation. The dialect-independent parts of this (which fields
|
|
536
|
+
* qualify, and how the name is composed/truncated) live in CodeGenDatabaseProvider
|
|
537
|
+
* as a template method; SQL Server contributes only the token spelling and the
|
|
538
|
+
* statement format. These tests pin the SQL Server-visible behavior.
|
|
539
|
+
*/
|
|
540
|
+
describe('SQLServerCodeGenProvider — foreign key indexes', () => {
|
|
541
|
+
let provider;
|
|
542
|
+
beforeEach(() => {
|
|
543
|
+
provider = new SQLServerCodeGenProvider();
|
|
544
|
+
});
|
|
545
|
+
describe('name composition', () => {
|
|
546
|
+
it('names the index IDX_AUTO_MJ_FKEY_{BaseTableCodeName}_{CodeName}', () => {
|
|
547
|
+
const entity = createMockEntity({}, [pkField, fkField('CategoryID')]);
|
|
548
|
+
const indexes = provider.generateForeignKeyIndexes(entity);
|
|
549
|
+
expect(indexes.length).toBe(1);
|
|
550
|
+
expect(indexes[0]).toContain('CREATE INDEX IDX_AUTO_MJ_FKEY_TestEntity_CategoryID');
|
|
551
|
+
});
|
|
552
|
+
it('builds the NAME from code names while indexing the REAL column name', () => {
|
|
553
|
+
// BaseTable and the field Name contain spaces. The index name uses the code-name
|
|
554
|
+
// spelling (CodeNameFromString maps invalid identifier chars to '_'), while the
|
|
555
|
+
// indexed column and the table reference use the real, spaced names.
|
|
556
|
+
const entity = createMockEntity({ BaseTable: 'Odd Name Table', BaseTableCodeName: 'OddNameTable' }, [
|
|
557
|
+
fkField('Weird Column ID'),
|
|
558
|
+
]);
|
|
559
|
+
const indexes = provider.generateForeignKeyIndexes(entity);
|
|
560
|
+
expect(indexes.length).toBe(1);
|
|
561
|
+
expect(indexes[0]).toContain('CREATE INDEX IDX_AUTO_MJ_FKEY_OddNameTable_Weird_Column_ID');
|
|
562
|
+
expect(indexes[0]).toContain('([Weird Column ID])');
|
|
563
|
+
expect(indexes[0]).toContain('[__mj].[Odd Name Table]');
|
|
564
|
+
});
|
|
565
|
+
it('generates one index per FK field, preserving field order', () => {
|
|
566
|
+
const entity = createMockEntity({}, [pkField, fkField('TemplateID'), fkField('TypeID')]);
|
|
567
|
+
const indexes = provider.generateForeignKeyIndexes(entity);
|
|
568
|
+
expect(indexes.length).toBe(2);
|
|
569
|
+
expect(indexes[0]).toContain('IDX_AUTO_MJ_FKEY_TestEntity_TemplateID');
|
|
570
|
+
expect(indexes[1]).toContain('IDX_AUTO_MJ_FKEY_TestEntity_TypeID');
|
|
571
|
+
});
|
|
572
|
+
it('returns an empty array when the entity has no FK fields', () => {
|
|
573
|
+
const entity = createMockEntity({}, [pkField]);
|
|
574
|
+
expect(provider.generateForeignKeyIndexes(entity)).toEqual([]);
|
|
575
|
+
});
|
|
576
|
+
});
|
|
577
|
+
describe('identifier truncation', () => {
|
|
578
|
+
it('truncates the index name to 128 characters (SQL Server limit)', () => {
|
|
579
|
+
const longSegment = 'VeryLongSegmentNamePaddingToForceTruncationOfTheIdentifier';
|
|
580
|
+
const entity = createMockEntity({ BaseTable: `${longSegment}Table`, BaseTableCodeName: `${longSegment}Table` }, [fkField(`${longSegment}ColumnID`)]);
|
|
581
|
+
const indexes = provider.generateForeignKeyIndexes(entity);
|
|
582
|
+
const indexName = indexes[0].match(/CREATE INDEX (\S+) ON/)[1];
|
|
583
|
+
expect(indexName.length).toBe(128);
|
|
584
|
+
expect(indexName.startsWith('IDX_AUTO_MJ_FKEY_')).toBe(true);
|
|
585
|
+
});
|
|
586
|
+
it('leaves names at or under 128 characters untouched', () => {
|
|
587
|
+
const entity = createMockEntity({}, [pkField, fkField('CategoryID')]);
|
|
588
|
+
const indexName = provider.generateForeignKeyIndexes(entity)[0].match(/CREATE INDEX (\S+) ON/)[1];
|
|
589
|
+
expect(indexName).toBe('IDX_AUTO_MJ_FKEY_TestEntity_CategoryID');
|
|
590
|
+
expect(indexName.length).toBeLessThan(128);
|
|
591
|
+
});
|
|
592
|
+
});
|
|
593
|
+
describe('IF NOT EXISTS idempotency guard', () => {
|
|
594
|
+
it('wraps CREATE INDEX in a sys.indexes existence check so re-runs are no-ops', () => {
|
|
595
|
+
const entity = createMockEntity({}, [pkField, fkField('CategoryID')]);
|
|
596
|
+
const sql = provider.generateForeignKeyIndexes(entity)[0];
|
|
597
|
+
expect(sql).toContain('IF NOT EXISTS (');
|
|
598
|
+
expect(sql).toContain('FROM sys.indexes');
|
|
599
|
+
expect(sql).toContain("AND object_id = OBJECT_ID('[__mj].[TestEntity]')");
|
|
600
|
+
// The guard must reference the SAME name that gets created
|
|
601
|
+
const createdName = sql.match(/CREATE INDEX (\S+) ON/)[1];
|
|
602
|
+
expect(sql).toContain(`WHERE name = '${createdName}'`);
|
|
603
|
+
});
|
|
604
|
+
it('emits a leading comment identifying the foreign key and table', () => {
|
|
605
|
+
const entity = createMockEntity({}, [pkField, fkField('CategoryID')]);
|
|
606
|
+
const sql = provider.generateForeignKeyIndexes(entity)[0];
|
|
607
|
+
expect(sql.startsWith('-- Index for foreign key CategoryID in table TestEntity')).toBe(true);
|
|
608
|
+
});
|
|
609
|
+
it('qualifies the target table with its schema', () => {
|
|
610
|
+
const entity = createMockEntity({ SchemaName: 'custom_schema' }, [pkField, fkField('OwnerID')]);
|
|
611
|
+
const sql = provider.generateForeignKeyIndexes(entity)[0];
|
|
612
|
+
expect(sql).toContain('ON [custom_schema].[TestEntity] ([OwnerID]);');
|
|
613
|
+
});
|
|
614
|
+
});
|
|
615
|
+
// B28: these exclusions previously existed only in the PostgreSQL provider. Hoisting the
|
|
616
|
+
// filter into CodeGenDatabaseProvider applies them to every dialect by construction.
|
|
617
|
+
describe('B28 — excludes fields that must not be indexed', () => {
|
|
618
|
+
it('does not index a primary key that is also a foreign key', () => {
|
|
619
|
+
// 1:1 extension-table pattern: the child PK is an FK to the parent. The PK already
|
|
620
|
+
// has its own index, so a second one would be pure overhead.
|
|
621
|
+
const entity = createMockEntity({}, [
|
|
622
|
+
{ ...pkField, RelatedEntityID: 'parent-entity-id' },
|
|
623
|
+
fkField('OwnerID'),
|
|
624
|
+
]);
|
|
625
|
+
const indexes = provider.generateForeignKeyIndexes(entity);
|
|
626
|
+
expect(indexes.length).toBe(1);
|
|
627
|
+
expect(indexes[0]).toContain('IDX_AUTO_MJ_FKEY_TestEntity_OwnerID');
|
|
628
|
+
expect(indexes.join('\n')).not.toContain('IDX_AUTO_MJ_FKEY_TestEntity_ID');
|
|
629
|
+
});
|
|
630
|
+
it('does not index a virtual FK field (no underlying column exists)', () => {
|
|
631
|
+
const entity = createMockEntity({}, [
|
|
632
|
+
pkField,
|
|
633
|
+
fkField('VirtualOwnerID', { IsVirtual: true }),
|
|
634
|
+
fkField('RealOwnerID'),
|
|
635
|
+
]);
|
|
636
|
+
const indexes = provider.generateForeignKeyIndexes(entity);
|
|
637
|
+
expect(indexes.length).toBe(1);
|
|
638
|
+
expect(indexes[0]).toContain('IDX_AUTO_MJ_FKEY_TestEntity_RealOwnerID');
|
|
639
|
+
expect(indexes.join('\n')).not.toContain('VirtualOwnerID');
|
|
640
|
+
});
|
|
641
|
+
it('does not index a non-FK field', () => {
|
|
642
|
+
const entity = createMockEntity({}, [pkField, fkField('PlainColumn', { RelatedEntityID: null })]);
|
|
643
|
+
expect(provider.generateForeignKeyIndexes(entity)).toEqual([]);
|
|
644
|
+
});
|
|
645
|
+
});
|
|
646
|
+
});
|
|
504
647
|
//# sourceMappingURL=SQLServerCodeGenProvider.test.js.map
|