prettier-plugin-tsql 0.6.0 → 0.6.1

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.
Binary file
Binary file
@@ -19,4 +19,5 @@ export declare function printAlterDatabaseRemoveFileGroup(node: SqlNode, opts: O
19
19
  export declare function printAlterDatabaseModifyFile(node: SqlNode, opts: Options): Doc;
20
20
  export declare function printAlterDatabaseModifyFileGroup(node: SqlNode, opts: Options): Doc;
21
21
  export declare function printAlterDatabaseRebuildLog(node: SqlNode, opts: Options): Doc;
22
+ export declare function printAlterEventSession(node: SqlNode, opts: Options): Doc;
22
23
  //# sourceMappingURL=admin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/plugin/printer/admin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAQhE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAMnE;AAMD,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAsB3D;AAsED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAErE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAEhE;AAMD,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAqC9D;AAMD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAiCrE;AAmBD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAkBvE;AAMD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAG3E;AAMD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAG9E;AAMD,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAanF;AAED,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAarF;AAgBD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAe3E;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAYhF;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAG9E;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAGnF;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAG9E;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAOnF;AAMD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAI9E"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/plugin/printer/admin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAQhE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAMnE;AAMD,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAsB3D;AAsED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAErE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAEhE;AAMD,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAqC9D;AAMD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAiCrE;AAmBD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAkBvE;AAMD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAG3E;AAMD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAG9E;AAMD,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAanF;AAED,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAarF;AAgBD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAe3E;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAYhF;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAG9E;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAGnF;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAG9E;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAOnF;AAMD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAI9E;AAMD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAkBxE"}
@@ -131,20 +131,20 @@ export function printCreateDatabase(node, opts) {
131
131
  const logOn = node.props?.['logOn'];
132
132
  const options = node.props?.['options'];
133
133
  const parts = [keyword('CREATE DATABASE', opts), ' ', name];
134
- if (collation)
135
- parts.push(' ', keyword('COLLATE', opts), ' ', collation);
136
134
  if (snapshot)
137
135
  parts.push(' ', keyword('AS SNAPSHOT OF', opts), ' ', snapshot);
138
136
  if (copyOf)
139
137
  parts.push(' ', keyword('AS COPY OF', opts), ' ', copyOf);
140
138
  if (fileGroups?.length) {
141
- parts.push(hardline, keyword('ON', opts), ' ');
139
+ parts.push(hardline, keyword('ON', opts));
142
140
  parts.push(indent([hardline, join([',', hardline], fileGroups)]));
143
141
  }
144
142
  if (logOn?.length) {
145
- parts.push(hardline, keyword('LOG ON', opts), ' ');
143
+ parts.push(hardline, keyword('LOG ON', opts));
146
144
  parts.push(indent([hardline, join([',', hardline], logOn)]));
147
145
  }
146
+ if (collation)
147
+ parts.push(hardline, keyword('COLLATE', opts), ' ', collation);
148
148
  if (options?.length)
149
149
  parts.push(hardline, join([',', hardline], options.map((o) => kwOpt(o, opts))));
150
150
  parts.push(';');
@@ -283,4 +283,26 @@ export function printAlterDatabaseRebuildLog(node, opts) {
283
283
  const onPart = file ? [' ', keyword('ON', opts), ' ', caseFileSpec(file, opts)] : '';
284
284
  return [alterDbHeader(node, opts), ' ', keyword('REBUILD LOG', opts), onPart, ';'];
285
285
  }
286
+ // ---------------------------------------------------------------------------
287
+ // ALTER EVENT SESSION
288
+ // ---------------------------------------------------------------------------
289
+ export function printAlterEventSession(node, opts) {
290
+ const name = propStr(node, 'name') ?? '';
291
+ const scope = propStr(node, 'scope') ?? 'SERVER';
292
+ const state = propStr(node, 'state');
293
+ return [
294
+ keyword('ALTER EVENT SESSION', opts),
295
+ ' ',
296
+ name,
297
+ ' ',
298
+ keyword('ON', opts),
299
+ ' ',
300
+ keyword(scope, opts),
301
+ ' ',
302
+ keyword('STATE', opts),
303
+ ' = ',
304
+ keyword(state ?? 'START', opts),
305
+ ';',
306
+ ];
307
+ }
286
308
  //# sourceMappingURL=admin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/plugin/printer/admin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/plugin/printer/admin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ddl.d.ts","sourceRoot":"","sources":["../../src/plugin/printer/ddl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ddl.d.ts","sourceRoot":"","sources":["../../src/plugin/printer/ddl.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,18 @@ import { printStatementWithComments, printNode, printBool, qexpr } from './state
6
6
  // ---------------------------------------------------------------------------
7
7
  // Shared helpers
8
8
  // ---------------------------------------------------------------------------
9
+ /**
10
+ * When ScriptDOM sees `AS BEGIN...END` it wraps the body in a single
11
+ * BeginEndBlockStatement. Unwrap that one outer block so that proc/function/
12
+ * trigger printers can emit their own BEGIN/END delimiters cleanly, while
13
+ * a *standalone* BEGIN...END statement still prints with its own delimiters.
14
+ */
15
+ function unwrapBodyBlock(stmts) {
16
+ if (stmts.length === 1 && stmts[0]?.type === 'BeginEndBlock') {
17
+ return propArr(stmts[0], 'statements');
18
+ }
19
+ return stmts;
20
+ }
9
21
  /** Render ` NULL` / ` NOT NULL` from a tristate `nullable` prop value. */
10
22
  function nullablePart(nullable, opts) {
11
23
  if (nullable === true)
@@ -92,8 +104,18 @@ export function printCreateTable(node, opts) {
92
104
  const withPart = options && options.length > 0 ? [hardline, keyword('WITH', opts), ' ', parenList(options)] : '';
93
105
  const onFileGroup = propStr(node, 'onFileGroup');
94
106
  const textimageOn = propStr(node, 'textimageOn');
107
+ const fileStreamOn = propStr(node, 'fileStreamOn');
95
108
  const onPart = onFileGroup ? [hardline, keyword('ON', opts), ' ', onFileGroup] : '';
96
109
  const textimagePart = textimageOn ? [hardline, keyword('TEXTIMAGE_ON', opts), ' ', textimageOn] : '';
110
+ const fileStreamPart = fileStreamOn ? [hardline, keyword('FILESTREAM_ON', opts), ' ', fileStreamOn] : '';
111
+ // Graph table types (AS NODE / AS EDGE)
112
+ const asNode = node.props?.['asNode'];
113
+ const asEdge = node.props?.['asEdge'];
114
+ const graphPart = asNode
115
+ ? [' ', keyword('AS NODE', opts)]
116
+ : asEdge
117
+ ? [' ', keyword('AS EDGE', opts)]
118
+ : '';
97
119
  return group([
98
120
  keyword('CREATE TABLE', opts),
99
121
  ' ',
@@ -102,18 +124,27 @@ export function printCreateTable(node, opts) {
102
124
  indent([hardline, join([',', hardline], allDefs)]),
103
125
  hardline,
104
126
  ')',
127
+ graphPart,
105
128
  onPart,
129
+ fileStreamPart,
106
130
  textimagePart,
107
131
  withPart,
108
132
  ';',
109
133
  ]);
110
134
  }
111
135
  export function printColumnDef(node, opts) {
136
+ // Raw leaf (e.g. ENCRYPTED WITH — property names vary across ScriptDOM versions).
137
+ // The C# AstBuilder emits `Leaf("ColumnDefinition", col, rawText)` which sets
138
+ // `node.text` to the original column fragment and leaves `node.props` undefined.
139
+ if (!node.props)
140
+ return node.text ?? '/* column */';
112
141
  const name = propStr(node, 'name') ?? 'col';
113
- // Computed column: Name AS expression [PERSISTED]
142
+ // Computed column: Name AS expression [PERSISTED] [NOT NULL|NULL]
114
143
  const computedExpr = prop(node, 'computedExpression');
115
144
  if (computedExpr) {
116
145
  const isPersisted = node.props?.['isPersisted'];
146
+ // Computed PERSISTED columns may have an explicit nullability constraint
147
+ const computedNullPart = nullablePart(node.props?.['nullable'], opts);
117
148
  return [
118
149
  name,
119
150
  ' ',
@@ -121,10 +152,13 @@ export function printColumnDef(node, opts) {
121
152
  ' ',
122
153
  printNode(computedExpr, opts),
123
154
  isPersisted ? [' ', keyword('PERSISTED', opts)] : '',
155
+ computedNullPart,
124
156
  ];
125
157
  }
126
158
  const dataType = propStr(node, 'dataType') ?? 'INT';
127
159
  const params = node.props?.['dataTypeParams'];
160
+ const xmlSchemaCollection = propStr(node, 'xmlSchemaCollection');
161
+ const xmlTypeOption = propStr(node, 'xmlTypeOption');
128
162
  // Read nullable as a tristate (true/false/undefined) — propBool only returns true/false.
129
163
  const isNullable = node.props?.['nullable'];
130
164
  const isIdentity = propBool(node, 'identity');
@@ -133,9 +167,18 @@ export function printColumnDef(node, opts) {
133
167
  const defaultValue = prop(node, 'defaultValue');
134
168
  const checkConstraint = prop(node, 'checkConstraint');
135
169
  const collation = propStr(node, 'collation');
136
- const typeStr = Array.isArray(params) && params.length > 0
137
- ? [keyword(dataType, opts), `(${params.join(', ')})`]
138
- : keyword(dataType, opts);
170
+ const typeStr = (() => {
171
+ const baseType = keyword(dataType, opts);
172
+ if (Array.isArray(params) && params.length > 0) {
173
+ return [baseType, `(${params.join(', ')})`];
174
+ }
175
+ if (xmlSchemaCollection) {
176
+ // xml(CONTENT|DOCUMENT schema_collection) — CONTENT/DOCUMENT are optional keywords
177
+ const prefix = xmlTypeOption ? `${keyword(xmlTypeOption, opts)} ` : '';
178
+ return [baseType, '(', prefix, xmlSchemaCollection, ')'];
179
+ }
180
+ return baseType;
181
+ })();
139
182
  const parts = [name, ' ', typeStr];
140
183
  // COLLATE clause comes right after the data type
141
184
  if (collation)
@@ -144,6 +187,8 @@ export function printColumnDef(node, opts) {
144
187
  const seed = identitySeed ?? '1';
145
188
  const inc = identityIncrement ?? '1';
146
189
  parts.push(' ', keyword('IDENTITY', opts), `(${seed}, ${inc})`);
190
+ if (node.props?.['identityNotForReplication'])
191
+ parts.push(' ', keyword('NOT FOR REPLICATION', opts));
147
192
  }
148
193
  if (node.props?.['isRowGuidCol'])
149
194
  parts.push(' ', keyword('ROWGUIDCOL', opts));
@@ -179,8 +224,11 @@ export function printColumnDef(node, opts) {
179
224
  const maskFn = propStr(node, 'maskingFunction') ?? 'default()';
180
225
  parts.push(' ', keyword('MASKED WITH', opts), ' (', keyword('FUNCTION', opts), ` = '${maskFn}')`);
181
226
  }
182
- if (defaultValue)
183
- parts.push(' ', keyword('DEFAULT', opts), ' ', printNode(defaultValue, opts));
227
+ if (defaultValue) {
228
+ const defaultName = propStr(node, 'defaultConstraintName');
229
+ const defaultNamePrefix = defaultName ? [keyword('CONSTRAINT', opts), ' ', defaultName, ' '] : '';
230
+ parts.push(' ', defaultNamePrefix, keyword('DEFAULT', opts), ' ', printNode(defaultValue, opts));
231
+ }
184
232
  parts.push(nullablePart(isNullable, opts));
185
233
  if (checkConstraint) {
186
234
  const checkName = propStr(node, 'checkConstraintName');
@@ -201,9 +249,12 @@ export function printColumnDef(node, opts) {
201
249
  : '';
202
250
  parts.push(' ', constraintNamePrefix, uqKw, clusteredKw);
203
251
  }
204
- // Inline REFERENCES (column-level foreign key: col type REFERENCES Table(col))
252
+ // Inline REFERENCES (column-level foreign key: col type [CONSTRAINT name] REFERENCES Table(col))
205
253
  const foreignKey = node.props?.['foreignKey'];
206
254
  if (foreignKey) {
255
+ if (foreignKey.constraintName) {
256
+ parts.push(' ', keyword('CONSTRAINT', opts), ' ', foreignKey.constraintName);
257
+ }
207
258
  const refColsPart = foreignKey.refColumns?.length ? [' (', join(', ', foreignKey.refColumns), ')'] : '';
208
259
  parts.push(' ', keyword('REFERENCES', opts), ' ', schemaObjectName(foreignKey.refTable), refColsPart);
209
260
  if (foreignKey.deleteAction) {
@@ -244,11 +295,23 @@ export function printConstraintDef(node, opts) {
244
295
  return [c.name, dir];
245
296
  });
246
297
  const colsDoc = parenList(colDocs);
247
- return group([namePrefix, indent([softline, kw, ' ', clusteredKw, colsDoc])]);
298
+ const indexOptions = node.props?.['indexOptions'];
299
+ const withPart = indexOptions?.length
300
+ ? [' ', keyword('WITH', opts), ' (', join(', ', indexOptions), ')']
301
+ : '';
302
+ return group([namePrefix, indent([softline, kw, ' ', clusteredKw, colsDoc]), withPart]);
248
303
  }
249
304
  case 'CheckConstraint': {
250
305
  const expr = prop(node, 'expression');
251
- return [namePrefix, keyword('CHECK', opts), ' (', expr ? printBool(expr, opts) : '', ')'];
306
+ const nfr = propBool(node, 'notForReplication');
307
+ return [
308
+ namePrefix,
309
+ keyword('CHECK', opts),
310
+ nfr ? [' ', keyword('NOT FOR REPLICATION', opts)] : '',
311
+ ' (',
312
+ expr ? printBool(expr, opts) : '',
313
+ ')',
314
+ ];
252
315
  }
253
316
  case 'ForeignKeyConstraint': {
254
317
  const cols = Array.isArray(node.props?.['columns']) ? node.props?.['columns'] : [];
@@ -257,6 +320,7 @@ export function printConstraintDef(node, opts) {
257
320
  const refName = refTable ? schemaObjectName(refTable) : '';
258
321
  const deleteAction = propStr(node, 'deleteAction');
259
322
  const updateAction = propStr(node, 'updateAction');
323
+ const nfr = propBool(node, 'notForReplication');
260
324
  const refActionKw = (action) => keyword(action
261
325
  .replace(/([A-Z])/g, ' $1')
262
326
  .trim()
@@ -276,6 +340,7 @@ export function printConstraintDef(node, opts) {
276
340
  ]),
277
341
  deleteAction ? [line, keyword('ON DELETE', opts), ' ', refActionKw(deleteAction)] : '',
278
342
  updateAction ? [line, keyword('ON UPDATE', opts), ' ', refActionKw(updateAction)] : '',
343
+ nfr ? [line, keyword('NOT FOR REPLICATION', opts)] : '',
279
344
  ]),
280
345
  ]),
281
346
  ];
@@ -316,6 +381,11 @@ export function printAlterTable(node, opts) {
316
381
  join([',', line], elements.map((e) => e.name)),
317
382
  ]),
318
383
  ]);
384
+ // WITH (ONLINE = ON, WAIT_AT_LOW_PRIORITY ...) on DROP CLUSTERED CONSTRAINT
385
+ const allDropOptions = elements.flatMap((e) => e.dropOptions ?? []);
386
+ const withPart = allDropOptions.length
387
+ ? [' ', keyword('WITH', opts), ' (', join(', ', allDropOptions), ')']
388
+ : '';
319
389
  return [
320
390
  keyword('ALTER TABLE', opts),
321
391
  ' ',
@@ -325,6 +395,7 @@ export function printAlterTable(node, opts) {
325
395
  ifExists ? [' ', keyword('IF EXISTS', opts)] : '',
326
396
  ' ',
327
397
  nameList,
398
+ withPart,
328
399
  ';',
329
400
  ];
330
401
  }
@@ -350,7 +421,49 @@ export function printAlterTable(node, opts) {
350
421
  }
351
422
  if (alterType === 'AlterTableAlterColumnStatement') {
352
423
  const column = propStr(node, 'column') ?? '';
424
+ const alterColumnOption = propStr(node, 'alterColumnOption');
425
+ const maskingFunction = propStr(node, 'maskingFunction');
426
+ // ADD/DROP modifier variants (no data type change, just add/remove a column property)
427
+ if (alterColumnOption) {
428
+ let optDoc;
429
+ if (alterColumnOption === 'AddMaskingFunction') {
430
+ // ALTER COLUMN col ADD MASKED WITH (FUNCTION = 'fn()')
431
+ const fn = maskingFunction ?? 'default()';
432
+ optDoc = [keyword('ADD MASKED WITH', opts), ' (', keyword('FUNCTION', opts), ` = '${fn}')`];
433
+ }
434
+ else {
435
+ const optMap = {
436
+ DropMaskingFunction: 'DROP MASKED',
437
+ AddSparse: 'ADD SPARSE',
438
+ DropSparse: 'DROP SPARSE',
439
+ AddRowGuidCol: 'ADD ROWGUIDCOL',
440
+ DropRowGuidCol: 'DROP ROWGUIDCOL',
441
+ AddHidden: 'ADD HIDDEN',
442
+ DropHidden: 'DROP HIDDEN',
443
+ AddPersisted: 'ADD PERSISTED',
444
+ DropPersisted: 'DROP PERSISTED',
445
+ };
446
+ optDoc = keyword(optMap[alterColumnOption] ?? alterColumnOption.toUpperCase(), opts);
447
+ }
448
+ return [
449
+ keyword('ALTER TABLE', opts),
450
+ ' ',
451
+ name,
452
+ hardline,
453
+ keyword('ALTER COLUMN', opts),
454
+ ' ',
455
+ column,
456
+ ' ',
457
+ optDoc,
458
+ ';',
459
+ ];
460
+ }
461
+ // Normal type-change: ALTER COLUMN col newtype [COLLATE ...] [NULL|NOT NULL]
353
462
  const dataType = propStr(node, 'dataType') ?? '';
463
+ const collationAC = propStr(node, 'collation');
464
+ const collatePart = collationAC
465
+ ? [' ', keyword('COLLATE', opts), ' ', collationAC]
466
+ : '';
354
467
  const nullPart = nullablePart(node.props?.['nullable'], opts);
355
468
  return [
356
469
  keyword('ALTER TABLE', opts),
@@ -362,6 +475,7 @@ export function printAlterTable(node, opts) {
362
475
  column,
363
476
  ' ',
364
477
  keyword(dataType, opts),
478
+ collatePart,
365
479
  nullPart,
366
480
  ';',
367
481
  ];
@@ -407,9 +521,13 @@ export function printAlterTable(node, opts) {
407
521
  const sourcePartition = propStr(node, 'sourcePartition');
408
522
  const targetTable = prop(node, 'targetTable');
409
523
  const targetPartition = propStr(node, 'targetPartition');
524
+ const switchOptions = node.props?.['switchOptions'];
410
525
  const sourceDoc = sourcePartition ? [' ', keyword('PARTITION', opts), ' ', sourcePartition] : '';
411
526
  const targetDoc = targetTable ? schemaObjectName(targetTable) : '';
412
527
  const targetPartDoc = targetPartition ? [' ', keyword('PARTITION', opts), ' ', targetPartition] : '';
528
+ const switchOptDoc = switchOptions?.length
529
+ ? [' ', keyword('WITH', opts), ' (', join(', ', switchOptions), ')']
530
+ : '';
413
531
  return [
414
532
  keyword('ALTER TABLE', opts),
415
533
  ' ',
@@ -422,6 +540,7 @@ export function printAlterTable(node, opts) {
422
540
  ' ',
423
541
  targetDoc,
424
542
  targetPartDoc,
543
+ switchOptDoc,
425
544
  ';',
426
545
  ];
427
546
  }
@@ -477,6 +596,8 @@ export function printCreateIndex(node, opts) {
477
596
  const withPart = indexOptions && indexOptions.length > 0
478
597
  ? [hardline, keyword('WITH', opts), ' (', join(', ', indexOptions), ')']
479
598
  : '';
599
+ const onFileGroup = propStr(node, 'onFileGroup');
600
+ const fileGroupPart = onFileGroup ? [hardline, keyword('ON', opts), ' ', onFileGroup] : '';
480
601
  return group([
481
602
  keyword('CREATE', opts),
482
603
  ' ',
@@ -487,6 +608,7 @@ export function printCreateIndex(node, opts) {
487
608
  indexName,
488
609
  indent([hardline, onClause, includePart, filterPart]),
489
610
  withPart,
611
+ fileGroupPart,
490
612
  ';',
491
613
  ]);
492
614
  }
@@ -520,8 +642,8 @@ export function printAlterIndex(node, opts) {
520
642
  schemaObjectName(table),
521
643
  ' ',
522
644
  typeKw,
523
- withPart,
524
645
  partitionPart,
646
+ withPart,
525
647
  ';',
526
648
  ];
527
649
  }
@@ -583,7 +705,11 @@ export function printCreateProcedure(node, opts) {
583
705
  parts.push(' ', keyword('READONLY', opts));
584
706
  return parts;
585
707
  });
586
- const bodyDocs = body.map((s) => printStatementWithComments(s, opts));
708
+ // Natively compiled procs have a single BEGIN ATOMIC WITH (...) body statement.
709
+ const atomicBlock = body.length === 1 && body[0].type === 'BeginEndAtomicBlock' ? body[0] : null;
710
+ const atomicOptions = atomicBlock?.props?.['atomicOptions'];
711
+ const innerBody = atomicBlock ? propArr(atomicBlock, 'statements') : unwrapBodyBlock(body);
712
+ const bodyDocs = innerBody.map((s) => printStatementWithComments(s, opts));
587
713
  const preBody = commentsBlock(node.preBodyComments);
588
714
  const postParam = commentsBlock(node.postParamComments);
589
715
  const procKw = node.type === 'CreateOrAlterProcedureStatement'
@@ -591,6 +717,26 @@ export function printCreateProcedure(node, opts) {
591
717
  : node.type === 'AlterProcedureStatement'
592
718
  ? keyword('ALTER PROCEDURE', opts)
593
719
  : keyword('CREATE PROCEDURE', opts);
720
+ // CLR stored procedure: AS EXTERNAL NAME assembly.[class].method
721
+ const externalName = propStr(node, 'externalName');
722
+ if (externalName) {
723
+ return group([
724
+ procKw,
725
+ ' ',
726
+ schemaObjectName(prop(node, 'name')),
727
+ preBody,
728
+ parameters.length > 0 ? indent([hardline, join([',', hardline], paramDocs)]) : '',
729
+ postParam,
730
+ printModuleOptions(node, opts),
731
+ hardline,
732
+ keyword('AS', opts),
733
+ ' ',
734
+ keyword('EXTERNAL NAME', opts),
735
+ ' ',
736
+ externalName,
737
+ ';',
738
+ ]);
739
+ }
594
740
  return group([
595
741
  procKw,
596
742
  ' ',
@@ -602,7 +748,19 @@ export function printCreateProcedure(node, opts) {
602
748
  hardline,
603
749
  keyword('AS', opts),
604
750
  hardline,
605
- keyword('BEGIN', opts),
751
+ ...(atomicOptions?.length
752
+ ? [
753
+ keyword('BEGIN', opts),
754
+ ' ',
755
+ keyword('ATOMIC', opts),
756
+ ' ',
757
+ keyword('WITH', opts),
758
+ ' (',
759
+ indent([hardline, join([',', hardline], atomicOptions)]),
760
+ hardline,
761
+ ')',
762
+ ]
763
+ : [keyword('BEGIN', opts)]),
606
764
  indent([hardline, join([hardline, hardline], bodyDocs)]),
607
765
  hardline,
608
766
  keyword('END', opts),
@@ -639,6 +797,25 @@ export function printCreateFunction(node, opts) {
639
797
  group(['(', parameters.length > 0 ? [indent([softline, join([',', line], paramDocs)]), softline] : '', ')']),
640
798
  postParam,
641
799
  ];
800
+ // CLR function: EXTERNAL NAME assembly.[class].method (no body)
801
+ const externalName = propStr(node, 'externalName');
802
+ if (externalName) {
803
+ return [
804
+ nameAndParamsNoOpts,
805
+ hardline,
806
+ keyword('RETURNS', opts),
807
+ ' ',
808
+ keyword(returnType, opts),
809
+ printModuleOptions(node, opts),
810
+ hardline,
811
+ keyword('AS', opts),
812
+ ' ',
813
+ keyword('EXTERNAL NAME', opts),
814
+ ' ',
815
+ externalName,
816
+ ';',
817
+ ];
818
+ }
642
819
  if (bodyType === 'table') {
643
820
  // Inline TVF: RETURNS TABLE [WITH options] AS RETURN (query) — no BEGIN/END
644
821
  const queryDoc = body && !Array.isArray(body) ? qexpr(body, opts) : '/* query */';
@@ -661,7 +838,7 @@ export function printCreateFunction(node, opts) {
661
838
  ];
662
839
  }
663
840
  // Scalar or multi-statement TVF — both use BEGIN...END
664
- const stmts = Array.isArray(body) ? body.map((s) => printStatementWithComments(s, opts)) : [];
841
+ const stmts = Array.isArray(body) ? unwrapBodyBlock(body).map((s) => printStatementWithComments(s, opts)) : [];
665
842
  const bodyDoc = join([hardline, hardline], stmts);
666
843
  let retTypePart;
667
844
  if (bodyType === 'inline-table') {
@@ -757,7 +934,13 @@ export function printCreateTrigger(node, opts) {
757
934
  : '';
758
935
  const notForReplication = propBool(node, 'notForReplication');
759
936
  const notForReplicationDoc = notForReplication ? [hardline, keyword('NOT FOR REPLICATION', opts)] : '';
760
- const bodyDocs = propArr(node, 'body').map((s) => printStatementWithComments(s, opts));
937
+ const bodyDocs = unwrapBodyBlock(propArr(node, 'body')).map((s) => printStatementWithComments(s, opts));
938
+ const triggerScope = propStr(node, 'triggerScope'); // 'Database' or 'Server' for DDL triggers
939
+ const onTarget = triggerScope === 'Database'
940
+ ? keyword('DATABASE', opts)
941
+ : triggerScope === 'Server'
942
+ ? keyword('ALL SERVER', opts)
943
+ : schemaObjectName(prop(node, 'onName'));
761
944
  return [
762
945
  kw,
763
946
  ' ',
@@ -765,7 +948,7 @@ export function printCreateTrigger(node, opts) {
765
948
  hardline,
766
949
  keyword('ON', opts),
767
950
  ' ',
768
- schemaObjectName(prop(node, 'onName')),
951
+ onTarget,
769
952
  hardline,
770
953
  typeKw,
771
954
  ' ',