@memberjunction/sql-dialect 0.0.1 → 5.5.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.
@@ -0,0 +1,329 @@
1
+ import { SQLDialect, } from './sqlDialect.js';
2
+ /**
3
+ * SQL Server-specific data type mapping.
4
+ * Maps SQL Server types to themselves (identity mapping) since
5
+ * SQL Server is the canonical source type in MemberJunction.
6
+ */
7
+ class SQLServerDataTypeMap {
8
+ MapType(sourceType, sourceLength, sourcePrecision, sourceScale) {
9
+ const normalized = sourceType.toUpperCase().trim();
10
+ switch (normalized) {
11
+ case 'UNIQUEIDENTIFIER':
12
+ return { typeName: 'UNIQUEIDENTIFIER', supportsLength: false, supportsPrecisionScale: false };
13
+ case 'NVARCHAR':
14
+ return this.buildNVarcharType(sourceLength);
15
+ case 'VARCHAR':
16
+ return this.buildVarcharType(sourceLength);
17
+ case 'NCHAR':
18
+ case 'CHAR':
19
+ return { typeName: normalized, supportsLength: true, supportsPrecisionScale: false, defaultLength: sourceLength ?? 1 };
20
+ case 'INT':
21
+ case 'INTEGER':
22
+ return { typeName: 'INT', supportsLength: false, supportsPrecisionScale: false };
23
+ case 'BIGINT':
24
+ return { typeName: 'BIGINT', supportsLength: false, supportsPrecisionScale: false };
25
+ case 'SMALLINT':
26
+ return { typeName: 'SMALLINT', supportsLength: false, supportsPrecisionScale: false };
27
+ case 'TINYINT':
28
+ return { typeName: 'TINYINT', supportsLength: false, supportsPrecisionScale: false };
29
+ case 'BIT':
30
+ return { typeName: 'BIT', supportsLength: false, supportsPrecisionScale: false };
31
+ case 'DECIMAL':
32
+ case 'NUMERIC':
33
+ return { typeName: normalized, supportsLength: false, supportsPrecisionScale: true };
34
+ case 'FLOAT':
35
+ return { typeName: 'FLOAT', supportsLength: false, supportsPrecisionScale: false };
36
+ case 'REAL':
37
+ return { typeName: 'REAL', supportsLength: false, supportsPrecisionScale: false };
38
+ case 'MONEY':
39
+ return { typeName: 'MONEY', supportsLength: false, supportsPrecisionScale: false };
40
+ case 'SMALLMONEY':
41
+ return { typeName: 'SMALLMONEY', supportsLength: false, supportsPrecisionScale: false };
42
+ case 'DATE':
43
+ return { typeName: 'DATE', supportsLength: false, supportsPrecisionScale: false };
44
+ case 'DATETIME':
45
+ return { typeName: 'DATETIME', supportsLength: false, supportsPrecisionScale: false };
46
+ case 'DATETIME2':
47
+ return { typeName: 'DATETIME2', supportsLength: false, supportsPrecisionScale: false };
48
+ case 'DATETIMEOFFSET':
49
+ return { typeName: 'DATETIMEOFFSET', supportsLength: false, supportsPrecisionScale: false };
50
+ case 'SMALLDATETIME':
51
+ return { typeName: 'SMALLDATETIME', supportsLength: false, supportsPrecisionScale: false };
52
+ case 'TIME':
53
+ return { typeName: 'TIME', supportsLength: false, supportsPrecisionScale: false };
54
+ case 'TEXT':
55
+ case 'NTEXT':
56
+ return { typeName: normalized, supportsLength: false, supportsPrecisionScale: false };
57
+ case 'IMAGE':
58
+ return { typeName: 'IMAGE', supportsLength: false, supportsPrecisionScale: false };
59
+ case 'VARBINARY':
60
+ return { typeName: 'VARBINARY', supportsLength: true, supportsPrecisionScale: false, defaultLength: sourceLength };
61
+ case 'BINARY':
62
+ return { typeName: 'BINARY', supportsLength: true, supportsPrecisionScale: false, defaultLength: sourceLength ?? 1 };
63
+ case 'XML':
64
+ return { typeName: 'XML', supportsLength: false, supportsPrecisionScale: false };
65
+ default:
66
+ return { typeName: normalized, supportsLength: false, supportsPrecisionScale: false };
67
+ }
68
+ }
69
+ MapTypeToString(sourceType, sourceLength, sourcePrecision, sourceScale) {
70
+ const mapped = this.MapType(sourceType, sourceLength, sourcePrecision, sourceScale);
71
+ return formatTypeString(mapped, sourceLength, sourcePrecision, sourceScale);
72
+ }
73
+ buildNVarcharType(length) {
74
+ if (length === -1 || length === undefined) {
75
+ return { typeName: 'NVARCHAR(MAX)', supportsLength: false, supportsPrecisionScale: false };
76
+ }
77
+ return { typeName: 'NVARCHAR', supportsLength: true, supportsPrecisionScale: false, defaultLength: length };
78
+ }
79
+ buildVarcharType(length) {
80
+ if (length === -1 || length === undefined) {
81
+ return { typeName: 'VARCHAR(MAX)', supportsLength: false, supportsPrecisionScale: false };
82
+ }
83
+ return { typeName: 'VARCHAR', supportsLength: true, supportsPrecisionScale: false, defaultLength: length };
84
+ }
85
+ }
86
+ /**
87
+ * Helper to format a MappedType into a full SQL type string.
88
+ */
89
+ function formatTypeString(mapped, length, precision, scale) {
90
+ if (mapped.supportsPrecisionScale && precision != null) {
91
+ return scale != null
92
+ ? `${mapped.typeName}(${precision},${scale})`
93
+ : `${mapped.typeName}(${precision})`;
94
+ }
95
+ if (mapped.supportsLength) {
96
+ const len = length ?? mapped.defaultLength;
97
+ if (len != null) {
98
+ return len === -1 ? `${mapped.typeName}(MAX)` : `${mapped.typeName}(${len})`;
99
+ }
100
+ }
101
+ return mapped.typeName;
102
+ }
103
+ /**
104
+ * SQL Server dialect implementation.
105
+ * Uses [bracket] quoting, TOP for pagination, BIT for booleans, T-SQL functions.
106
+ */
107
+ export class SQLServerDialect extends SQLDialect {
108
+ get PlatformKey() {
109
+ return 'sqlserver';
110
+ }
111
+ // ─── Identifier Quoting ──────────────────────────────────────────
112
+ QuoteIdentifier(name) {
113
+ return `[${name}]`;
114
+ }
115
+ QuoteSchema(schema, object) {
116
+ return `[${schema}].[${object}]`;
117
+ }
118
+ // ─── Pagination ──────────────────────────────────────────────────
119
+ LimitClause(limit, offset) {
120
+ if (offset != null) {
121
+ return { prefix: '', suffix: `OFFSET ${offset} ROWS FETCH NEXT ${limit} ROWS ONLY` };
122
+ }
123
+ return { prefix: `TOP ${limit}`, suffix: '' };
124
+ }
125
+ // ─── Literals & Expressions ──────────────────────────────────────
126
+ BooleanLiteral(value) {
127
+ return value ? '1' : '0';
128
+ }
129
+ CurrentTimestampUTC() {
130
+ return 'GETUTCDATE()';
131
+ }
132
+ NewUUID() {
133
+ return 'NEWID()';
134
+ }
135
+ CastToText(expr) {
136
+ return `CAST(${expr} AS NVARCHAR(MAX))`;
137
+ }
138
+ CastToUUID(expr) {
139
+ return `CAST(${expr} AS UNIQUEIDENTIFIER)`;
140
+ }
141
+ // ─── INSERT/UPDATE Return Patterns ───────────────────────────────
142
+ ReturnInsertedClause(columns) {
143
+ if (columns && columns.length > 0) {
144
+ const cols = columns.map(c => `INSERTED.[${c}]`).join(', ');
145
+ return `OUTPUT ${cols}`;
146
+ }
147
+ return 'OUTPUT INSERTED.*';
148
+ }
149
+ AutoIncrementPKExpression() {
150
+ return 'IDENTITY(1,1)';
151
+ }
152
+ UUIDPKDefault() {
153
+ return 'NEWSEQUENTIALID()';
154
+ }
155
+ ScopeIdentityExpression() {
156
+ return 'SCOPE_IDENTITY()';
157
+ }
158
+ RowCountExpression() {
159
+ return '@@ROWCOUNT';
160
+ }
161
+ // ─── Batch & DDL Control ─────────────────────────────────────────
162
+ BatchSeparator() {
163
+ return 'GO';
164
+ }
165
+ ExistenceCheckSQL(objectType, schema, name) {
166
+ const normalizedType = objectType.toUpperCase();
167
+ switch (normalizedType) {
168
+ case 'TABLE':
169
+ return `IF OBJECT_ID('[${schema}].[${name}]', 'U') IS NOT NULL`;
170
+ case 'VIEW':
171
+ return `IF OBJECT_ID('[${schema}].[${name}]', 'V') IS NOT NULL`;
172
+ case 'PROCEDURE':
173
+ return `IF OBJECT_ID('[${schema}].[${name}]', 'P') IS NOT NULL`;
174
+ case 'FUNCTION':
175
+ return `IF OBJECT_ID('[${schema}].[${name}]', 'FN') IS NOT NULL`;
176
+ case 'TRIGGER':
177
+ return `IF OBJECT_ID('[${schema}].[${name}]', 'TR') IS NOT NULL`;
178
+ default:
179
+ return `IF OBJECT_ID('[${schema}].[${name}]') IS NOT NULL`;
180
+ }
181
+ }
182
+ CreateOrReplaceSupported(_objectType) {
183
+ return false; // SQL Server does not support CREATE OR REPLACE
184
+ }
185
+ // ─── Full-Text Search ────────────────────────────────────────────
186
+ FullTextSearchPredicate(column, searchTerm) {
187
+ return `CONTAINS(${this.QuoteIdentifier(column)}, ${searchTerm})`;
188
+ }
189
+ FullTextIndexDDL(table, columns, catalog) {
190
+ const catName = catalog ?? 'MJ_FTS';
191
+ const cols = columns.map(c => this.QuoteIdentifier(c)).join(', ');
192
+ const lines = [];
193
+ lines.push(`IF NOT EXISTS (SELECT 1 FROM sys.fulltext_catalogs WHERE name = '${catName}')`);
194
+ lines.push(` CREATE FULLTEXT CATALOG [${catName}];`);
195
+ lines.push('');
196
+ lines.push(`CREATE FULLTEXT INDEX ON ${table}(${cols})`);
197
+ lines.push(` KEY INDEX PK_${table.replace(/[\[\].]/g, '')} ON [${catName}];`);
198
+ return lines.join('\n');
199
+ }
200
+ // ─── CTE / Recursion ─────────────────────────────────────────────
201
+ RecursiveCTESyntax() {
202
+ return 'WITH';
203
+ }
204
+ // ─── Data Types ──────────────────────────────────────────────────
205
+ get TypeMap() {
206
+ return new SQLServerDataTypeMap();
207
+ }
208
+ // ─── Parameters ──────────────────────────────────────────────────
209
+ ParameterPlaceholder(index) {
210
+ return `@p${index}`;
211
+ }
212
+ ConcatOperator() {
213
+ return '+';
214
+ }
215
+ // ─── String Functions ────────────────────────────────────────────
216
+ StringSplitFunction(value, delimiter) {
217
+ return `STRING_SPLIT(${value}, ${delimiter})`;
218
+ }
219
+ JsonExtract(column, path) {
220
+ return `JSON_VALUE(${column}, '${path}')`;
221
+ }
222
+ // ─── Procedure / Function Calls ──────────────────────────────────
223
+ ProcedureCallSyntax(schema, name, params) {
224
+ const paramList = params.join(', ');
225
+ return `EXEC [${schema}].[${name}] ${paramList}`;
226
+ }
227
+ // ─── DDL Generation ──────────────────────────────────────────────
228
+ TriggerDDL(options) {
229
+ const events = options.events.join(', ');
230
+ const lines = [];
231
+ lines.push(`CREATE TRIGGER [${options.schema}].[${options.triggerName}]`);
232
+ lines.push(`ON [${options.schema}].[${options.tableName}]`);
233
+ lines.push(`${options.timing} ${events}`);
234
+ lines.push('AS');
235
+ lines.push('BEGIN');
236
+ lines.push(' SET NOCOUNT ON;');
237
+ lines.push(` ${options.body}`);
238
+ lines.push('END');
239
+ return lines.join('\n');
240
+ }
241
+ IndexDDL(options) {
242
+ const unique = options.unique ? 'UNIQUE ' : '';
243
+ const cols = options.columns.map(c => `[${c}]`).join(', ');
244
+ let ddl = `CREATE ${unique}INDEX [${options.indexName}] ON [${options.schema}].[${options.tableName}](${cols})`;
245
+ if (options.includeColumns && options.includeColumns.length > 0) {
246
+ const inc = options.includeColumns.map(c => `[${c}]`).join(', ');
247
+ ddl += ` INCLUDE (${inc})`;
248
+ }
249
+ return ddl;
250
+ }
251
+ // ─── Permissions ─────────────────────────────────────────────────
252
+ GrantPermission(permission, _objectType, schema, object, role) {
253
+ return `GRANT ${permission} ON [${schema}].[${object}] TO [${role}]`;
254
+ }
255
+ CommentOnObject(objectType, schema, name, comment) {
256
+ const escapedComment = comment.replace(/'/g, "''");
257
+ const level1Type = this.objectTypeToLevel1Type(objectType);
258
+ return [
259
+ `EXEC sp_addextendedproperty`,
260
+ ` @name = N'MS_Description',`,
261
+ ` @value = N'${escapedComment}',`,
262
+ ` @level0type = N'SCHEMA', @level0name = N'${schema}',`,
263
+ ` @level1type = N'${level1Type}', @level1name = N'${name}'`,
264
+ ].join('\n');
265
+ }
266
+ // ─── Schema Introspection ────────────────────────────────────────
267
+ SchemaIntrospectionQueries() {
268
+ return {
269
+ listTables: `
270
+ SELECT s.name AS schema_name, t.name AS table_name
271
+ FROM sys.tables t
272
+ INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
273
+ WHERE s.name = @schema
274
+ ORDER BY t.name`,
275
+ listColumns: `
276
+ SELECT c.name AS column_name, ty.name AS data_type,
277
+ c.max_length, c.precision, c.scale, c.is_nullable,
278
+ c.is_identity, dc.definition AS default_value
279
+ FROM sys.columns c
280
+ INNER JOIN sys.types ty ON c.user_type_id = ty.user_type_id
281
+ LEFT JOIN sys.default_constraints dc ON c.default_object_id = dc.object_id
282
+ WHERE c.object_id = OBJECT_ID(@table)
283
+ ORDER BY c.column_id`,
284
+ listConstraints: `
285
+ SELECT tc.CONSTRAINT_NAME, tc.CONSTRAINT_TYPE, kcu.COLUMN_NAME
286
+ FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
287
+ INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu
288
+ ON tc.CONSTRAINT_NAME = kcu.CONSTRAINT_NAME
289
+ WHERE tc.TABLE_SCHEMA = @schema AND tc.TABLE_NAME = @table
290
+ ORDER BY tc.CONSTRAINT_TYPE, kcu.ORDINAL_POSITION`,
291
+ listForeignKeys: `
292
+ SELECT fk.name AS fk_name,
293
+ OBJECT_SCHEMA_NAME(fk.parent_object_id) AS source_schema,
294
+ OBJECT_NAME(fk.parent_object_id) AS source_table,
295
+ COL_NAME(fkc.parent_object_id, fkc.parent_column_id) AS source_column,
296
+ OBJECT_SCHEMA_NAME(fk.referenced_object_id) AS target_schema,
297
+ OBJECT_NAME(fk.referenced_object_id) AS target_table,
298
+ COL_NAME(fkc.referenced_object_id, fkc.referenced_column_id) AS target_column
299
+ FROM sys.foreign_keys fk
300
+ INNER JOIN sys.foreign_key_columns fkc ON fk.object_id = fkc.constraint_object_id
301
+ WHERE OBJECT_SCHEMA_NAME(fk.parent_object_id) = @schema
302
+ ORDER BY fk.name`,
303
+ listIndexes: `
304
+ SELECT i.name AS index_name, i.is_unique, i.type_desc,
305
+ COL_NAME(ic.object_id, ic.column_id) AS column_name,
306
+ ic.is_included_column
307
+ FROM sys.indexes i
308
+ INNER JOIN sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
309
+ WHERE i.object_id = OBJECT_ID(@table) AND i.name IS NOT NULL
310
+ ORDER BY i.name, ic.key_ordinal`,
311
+ objectExists: `SELECT OBJECT_ID(@objectName) AS object_id`,
312
+ };
313
+ }
314
+ // ─── IIF ─────────────────────────────────────────────────────────
315
+ IIF(condition, trueVal, falseVal) {
316
+ return `IIF(${condition}, ${trueVal}, ${falseVal})`;
317
+ }
318
+ // ─── Private Helpers ─────────────────────────────────────────────
319
+ objectTypeToLevel1Type(objectType) {
320
+ switch (objectType.toUpperCase()) {
321
+ case 'TABLE': return 'TABLE';
322
+ case 'VIEW': return 'VIEW';
323
+ case 'PROCEDURE': return 'PROCEDURE';
324
+ case 'FUNCTION': return 'FUNCTION';
325
+ default: return objectType.toUpperCase();
326
+ }
327
+ }
328
+ }
329
+ //# sourceMappingURL=sqlServerDialect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlServerDialect.js","sourceRoot":"","sources":["../src/sqlServerDialect.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,28 @@
1
1
  {
2
2
  "name": "@memberjunction/sql-dialect",
3
- "version": "0.0.1",
4
- "description": "OIDC trusted publishing setup package for @memberjunction/sql-dialect",
5
- "keywords": [
6
- "oidc",
7
- "trusted-publishing",
8
- "setup"
9
- ]
3
+ "type": "module",
4
+ "version": "5.5.0",
5
+ "description": "MemberJunction: SQL Dialect Abstraction Layer for multi-database support",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "/dist"
10
+ ],
11
+ "scripts": {
12
+ "start": "ts-node-dev src/index.ts",
13
+ "build": "tsc && tsc-alias -f",
14
+ "test": "vitest run",
15
+ "test:watch": "vitest",
16
+ "test:coverage": "vitest run --coverage"
17
+ },
18
+ "dependencies": {},
19
+ "devDependencies": {
20
+ "ts-node-dev": "^2.0.0",
21
+ "typescript": "^5.9.3",
22
+ "vitest": "^4.0.18"
23
+ },
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://github.com/MemberJunction/MJ"
27
+ }
10
28
  }