@dbml/core 2.4.2 → 2.4.3

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.
@@ -156,18 +156,18 @@ var MySQLExporter = /*#__PURE__*/function () {
156
156
  }
157
157
  }, {
158
158
  key: "buildTableManyToMany",
159
- value: function buildTableManyToMany(firstTableFieldsMap, secondTableFieldsMap, tableName) {
160
- var line = "CREATE TABLE `".concat(tableName, "` (\n");
159
+ value: function buildTableManyToMany(firstTableFieldsMap, secondTableFieldsMap, tableName, refEndpointSchema, model) {
160
+ var line = "CREATE TABLE ".concat((0, _utils.shouldPrintSchema)(refEndpointSchema, model) ? "`".concat(refEndpointSchema.name, "`.") : '', "`").concat(tableName, "` (\n");
161
161
 
162
162
  var key1s = _toConsumableArray(firstTableFieldsMap.keys()).join('`, `');
163
163
 
164
164
  var key2s = _toConsumableArray(secondTableFieldsMap.keys()).join('`, `');
165
165
 
166
166
  firstTableFieldsMap.forEach(function (fieldType, fieldName) {
167
- line += " `".concat(fieldName, "` ").concat(fieldType, " NOT NULL,\n");
167
+ line += " `".concat(fieldName, "` ").concat(fieldType, ",\n");
168
168
  });
169
169
  secondTableFieldsMap.forEach(function (fieldType, fieldName) {
170
- line += " `".concat(fieldName, "` ").concat(fieldType, " NOT NULL,\n");
170
+ line += " `".concat(fieldName, "` ").concat(fieldType, ",\n");
171
171
  });
172
172
  line += " PRIMARY KEY (`".concat(key1s, "`, `").concat(key2s, "`)\n");
173
173
  line += ');\n\n';
@@ -175,34 +175,15 @@ var MySQLExporter = /*#__PURE__*/function () {
175
175
  }
176
176
  }, {
177
177
  key: "buildForeignKeyManyToMany",
178
- value: function buildForeignKeyManyToMany(fieldsMap, foreignEndpointFields, refEndpointTableName, foreignEndpointTableName, schema, model) {
178
+ value: function buildForeignKeyManyToMany(fieldsMap, foreignEndpointFields, refEndpointTableName, foreignEndpointTableName, refEndpointSchema, foreignEndpointSchema, model) {
179
179
  var refEndpointFields = _toConsumableArray(fieldsMap.keys()).join('`, `');
180
180
 
181
- var line = "ALTER TABLE `".concat(refEndpointTableName, "` ADD FOREIGN KEY (`").concat(refEndpointFields, "`) REFERENCES ").concat((0, _utils.shouldPrintSchema)(schema, model) ? "`".concat(schema.name, "`.") : '', "`").concat(foreignEndpointTableName, "` ").concat(foreignEndpointFields, ";\n\n");
182
- return line;
183
- }
184
- }, {
185
- key: "buildIndexManytoMany",
186
- value: function buildIndexManytoMany(fieldsMap, newTableName, tableRefName, usedIndexNames) {
187
- var newIndexName = "".concat(newTableName, "_").concat(tableRefName);
188
- var count = 1;
189
-
190
- while (usedIndexNames.has(newIndexName)) {
191
- newIndexName = "".concat(newTableName, "_").concat(tableRefName, "(").concat(count, ")");
192
- count += 1;
193
- }
194
-
195
- usedIndexNames.add(newIndexName);
196
-
197
- var indexFields = _toConsumableArray(fieldsMap.keys()).join('`, `');
198
-
199
- var line = "CREATE INDEX `idx_".concat(newIndexName, "` ON `").concat(newTableName, "` (");
200
- line += "`".concat(indexFields, "`);\n\n");
181
+ var line = "ALTER TABLE ".concat((0, _utils.shouldPrintSchema)(refEndpointSchema, model) ? "`".concat(refEndpointSchema.name, "`.") : '', "`").concat(refEndpointTableName, "` ADD FOREIGN KEY (`").concat(refEndpointFields, "`) REFERENCES ").concat((0, _utils.shouldPrintSchema)(foreignEndpointSchema, model) ? "`".concat(foreignEndpointSchema.name, "`.") : '', "`").concat(foreignEndpointTableName, "` ").concat(foreignEndpointFields, ";\n\n");
201
182
  return line;
202
183
  }
203
184
  }, {
204
185
  key: "exportRefs",
205
- value: function exportRefs(refIds, model, usedTableNames, usedIndexNames) {
186
+ value: function exportRefs(refIds, model, usedTableNames) {
206
187
  var _this = this;
207
188
 
208
189
  var strArr = refIds.map(function (refId) {
@@ -232,18 +213,9 @@ var MySQLExporter = /*#__PURE__*/function () {
232
213
  var firstTableFieldsMap = (0, _utils.buildJunctionFields1)(refEndpoint.fieldIds, model);
233
214
  var secondTableFieldsMap = (0, _utils.buildJunctionFields2)(foreignEndpoint.fieldIds, model, firstTableFieldsMap);
234
215
  var newTableName = (0, _utils.buildNewTableName)(refEndpointTable.name, foreignEndpointTable.name, usedTableNames);
235
- line += _this.buildTableManyToMany(firstTableFieldsMap, secondTableFieldsMap, newTableName);
236
-
237
- if (firstTableFieldsMap.size > 1) {
238
- line += _this.buildIndexManytoMany(firstTableFieldsMap, newTableName, refEndpointTable.name, usedIndexNames);
239
- }
240
-
241
- if (secondTableFieldsMap.size > 1) {
242
- line += _this.buildIndexManytoMany(secondTableFieldsMap, newTableName, foreignEndpointTable.name, usedIndexNames);
243
- }
244
-
245
- line += _this.buildForeignKeyManyToMany(firstTableFieldsMap, refEndpointFieldName, newTableName, refEndpointTable.name, refEndpointSchema, model);
246
- line += _this.buildForeignKeyManyToMany(secondTableFieldsMap, foreignEndpointFieldName, newTableName, foreignEndpointTable.name, foreignEndpointSchema, model);
216
+ line += _this.buildTableManyToMany(firstTableFieldsMap, secondTableFieldsMap, newTableName, refEndpointSchema, model);
217
+ line += _this.buildForeignKeyManyToMany(firstTableFieldsMap, refEndpointFieldName, newTableName, refEndpointTable.name, refEndpointSchema, refEndpointSchema, model);
218
+ line += _this.buildForeignKeyManyToMany(secondTableFieldsMap, foreignEndpointFieldName, newTableName, foreignEndpointTable.name, refEndpointSchema, foreignEndpointSchema, model);
247
219
  } else {
248
220
  line = "ALTER TABLE ".concat((0, _utils.shouldPrintSchema)(foreignEndpointSchema, model) ? "`".concat(foreignEndpointSchema.name, "`.") : '', "`").concat(foreignEndpointTable.name, "` ADD ");
249
221
 
@@ -333,9 +305,6 @@ var MySQLExporter = /*#__PURE__*/function () {
333
305
  var usedTableNames = new Set(Object.values(model.tables).map(function (table) {
334
306
  return table.name;
335
307
  }));
336
- var usedIndexNames = new Set(Object.values(model.indexes).map(function (index) {
337
- return index.name;
338
- }));
339
308
  var statements = database.schemaIds.reduce(function (prevStatements, schemaId) {
340
309
  var schema = model.schemas[schemaId];
341
310
  var tableIds = schema.tableIds,
@@ -378,7 +347,7 @@ var MySQLExporter = /*#__PURE__*/function () {
378
347
  if (!_lodash["default"].isEmpty(refIds)) {
379
348
  var _prevStatements$refs;
380
349
 
381
- (_prevStatements$refs = prevStatements.refs).push.apply(_prevStatements$refs, _toConsumableArray(MySQLExporter.exportRefs(refIds, model, usedTableNames, usedIndexNames)));
350
+ (_prevStatements$refs = prevStatements.refs).push.apply(_prevStatements$refs, _toConsumableArray(MySQLExporter.exportRefs(refIds, model, usedTableNames)));
382
351
  }
383
352
 
384
353
  return prevStatements;
@@ -63,7 +63,8 @@ var PostgresExporter = /*#__PURE__*/function () {
63
63
  var line = '';
64
64
 
65
65
  if (field.increment) {
66
- var typeSerial = field.type.type_name === 'bigint' ? 'BIGSERIAL' : 'SERIAL';
66
+ var typeSerial = 'SERIAL';
67
+ if (field.type.type_name.toLowerCase() === 'bigint') typeSerial = 'BIGSERIAL';else if (field.type.type_name.toLowerCase() === 'smallserial') typeSerial = 'SMALLSERIAL';
67
68
  line = "\"".concat(field.name, "\" ").concat(typeSerial);
68
69
  } else {
69
70
  var schemaName = '';
@@ -169,18 +170,18 @@ var PostgresExporter = /*#__PURE__*/function () {
169
170
  }
170
171
  }, {
171
172
  key: "buildTableManyToMany",
172
- value: function buildTableManyToMany(firstTableFieldsMap, secondTableFieldsMap, tableName) {
173
- var line = "CREATE TABLE \"".concat(tableName, "\" (\n");
173
+ value: function buildTableManyToMany(firstTableFieldsMap, secondTableFieldsMap, tableName, refEndpointSchema, model) {
174
+ var line = "CREATE TABLE ".concat((0, _utils.shouldPrintSchema)(refEndpointSchema, model) ? "\"".concat(refEndpointSchema.name, "\".") : '', "\"").concat(tableName, "\" (\n");
174
175
 
175
176
  var key1s = _toConsumableArray(firstTableFieldsMap.keys()).join('", "');
176
177
 
177
178
  var key2s = _toConsumableArray(secondTableFieldsMap.keys()).join('", "');
178
179
 
179
180
  firstTableFieldsMap.forEach(function (fieldType, fieldName) {
180
- line += " \"".concat(fieldName, "\" ").concat(fieldType, " NOT NULL,\n");
181
+ line += " \"".concat(fieldName, "\" ").concat(fieldType, ",\n");
181
182
  });
182
183
  secondTableFieldsMap.forEach(function (fieldType, fieldName) {
183
- line += " \"".concat(fieldName, "\" ").concat(fieldType, " NOT NULL,\n");
184
+ line += " \"".concat(fieldName, "\" ").concat(fieldType, ",\n");
184
185
  });
185
186
  line += " PRIMARY KEY (\"".concat(key1s, "\", \"").concat(key2s, "\")\n");
186
187
  line += ');\n\n';
@@ -188,34 +189,15 @@ var PostgresExporter = /*#__PURE__*/function () {
188
189
  }
189
190
  }, {
190
191
  key: "buildForeignKeyManyToMany",
191
- value: function buildForeignKeyManyToMany(fieldsMap, foreignEndpointFields, refEndpointTableName, foreignEndpointTableName, schema, model) {
192
+ value: function buildForeignKeyManyToMany(fieldsMap, foreignEndpointFields, refEndpointTableName, foreignEndpointTableName, refEndpointSchema, foreignEndpointSchema, model) {
192
193
  var refEndpointFields = _toConsumableArray(fieldsMap.keys()).join('", "');
193
194
 
194
- var line = "ALTER TABLE \"".concat(refEndpointTableName, "\" ADD FOREIGN KEY (\"").concat(refEndpointFields, "\") REFERENCES ").concat((0, _utils.shouldPrintSchema)(schema, model) ? "\"".concat(schema.name, "\".") : '', "\"").concat(foreignEndpointTableName, "\" ").concat(foreignEndpointFields, ";\n\n");
195
- return line;
196
- }
197
- }, {
198
- key: "buildIndexManytoMany",
199
- value: function buildIndexManytoMany(fieldsMap, newTableName, tableRefName, usedIndexNames) {
200
- var newIndexName = "".concat(newTableName, "_").concat(tableRefName);
201
- var count = 1;
202
-
203
- while (usedIndexNames.has(newIndexName)) {
204
- newIndexName = "".concat(newTableName, "_").concat(tableRefName, "(").concat(count, ")");
205
- count += 1;
206
- }
207
-
208
- usedIndexNames.add(newIndexName);
209
-
210
- var indexFields = _toConsumableArray(fieldsMap.keys()).join('", "');
211
-
212
- var line = "CREATE INDEX \"idx_".concat(newIndexName, "\" ON \"").concat(newTableName, "\" (");
213
- line += "\"".concat(indexFields, "\");\n\n");
195
+ var line = "ALTER TABLE ".concat((0, _utils.shouldPrintSchema)(refEndpointSchema, model) ? "\"".concat(refEndpointSchema.name, "\".") : '', "\"").concat(refEndpointTableName, "\" ADD FOREIGN KEY (\"").concat(refEndpointFields, "\") REFERENCES ").concat((0, _utils.shouldPrintSchema)(foreignEndpointSchema, model) ? "\"".concat(foreignEndpointSchema.name, "\".") : '', "\"").concat(foreignEndpointTableName, "\" ").concat(foreignEndpointFields, ";\n\n");
214
196
  return line;
215
197
  }
216
198
  }, {
217
199
  key: "exportRefs",
218
- value: function exportRefs(refIds, model, usedTableNames, usedIndexNames) {
200
+ value: function exportRefs(refIds, model, usedTableNames) {
219
201
  var _this = this;
220
202
 
221
203
  var strArr = refIds.map(function (refId) {
@@ -246,18 +228,9 @@ var PostgresExporter = /*#__PURE__*/function () {
246
228
  var firstTableFieldsMap = (0, _utils.buildJunctionFields1)(refEndpoint.fieldIds, model);
247
229
  var secondTableFieldsMap = (0, _utils.buildJunctionFields2)(foreignEndpoint.fieldIds, model, firstTableFieldsMap);
248
230
  var newTableName = (0, _utils.buildNewTableName)(refEndpointTable.name, foreignEndpointTable.name, usedTableNames);
249
- line += _this.buildTableManyToMany(firstTableFieldsMap, secondTableFieldsMap, newTableName);
250
-
251
- if (firstTableFieldsMap.size > 1) {
252
- line += _this.buildIndexManytoMany(firstTableFieldsMap, newTableName, refEndpointTable.name, usedIndexNames);
253
- }
254
-
255
- if (secondTableFieldsMap.size > 1) {
256
- line += _this.buildIndexManytoMany(secondTableFieldsMap, newTableName, foreignEndpointTable.name, usedIndexNames);
257
- }
258
-
259
- line += _this.buildForeignKeyManyToMany(firstTableFieldsMap, refEndpointFieldName, newTableName, refEndpointTable.name, refEndpointSchema, model);
260
- line += _this.buildForeignKeyManyToMany(secondTableFieldsMap, foreignEndpointFieldName, newTableName, foreignEndpointTable.name, foreignEndpointSchema, model);
231
+ line += _this.buildTableManyToMany(firstTableFieldsMap, secondTableFieldsMap, newTableName, refEndpointSchema, model);
232
+ line += _this.buildForeignKeyManyToMany(firstTableFieldsMap, refEndpointFieldName, newTableName, refEndpointTable.name, refEndpointSchema, refEndpointSchema, model);
233
+ line += _this.buildForeignKeyManyToMany(secondTableFieldsMap, foreignEndpointFieldName, newTableName, foreignEndpointTable.name, refEndpointSchema, foreignEndpointSchema, model);
261
234
  } else {
262
235
  line = "ALTER TABLE ".concat((0, _utils.shouldPrintSchema)(foreignEndpointSchema, model) ? "\"".concat(foreignEndpointSchema.name, "\".") : '', "\"").concat(foreignEndpointTable.name, "\" ADD ");
263
236
 
@@ -368,9 +341,6 @@ var PostgresExporter = /*#__PURE__*/function () {
368
341
  var usedTableNames = new Set(Object.values(model.tables).map(function (table) {
369
342
  return table.name;
370
343
  }));
371
- var usedIndexNames = new Set(Object.values(model.indexes).map(function (index) {
372
- return index.name;
373
- }));
374
344
  var statements = database.schemaIds.reduce(function (prevStatements, schemaId) {
375
345
  var schema = model.schemas[schemaId];
376
346
  var tableIds = schema.tableIds,
@@ -431,7 +401,7 @@ var PostgresExporter = /*#__PURE__*/function () {
431
401
  if (!_lodash["default"].isEmpty(refIds)) {
432
402
  var _prevStatements$refs;
433
403
 
434
- (_prevStatements$refs = prevStatements.refs).push.apply(_prevStatements$refs, _toConsumableArray(PostgresExporter.exportRefs(refIds, model, usedTableNames, usedIndexNames)));
404
+ (_prevStatements$refs = prevStatements.refs).push.apply(_prevStatements$refs, _toConsumableArray(PostgresExporter.exportRefs(refIds, model, usedTableNames)));
435
405
  }
436
406
 
437
407
  return prevStatements;
@@ -145,18 +145,18 @@ var SqlServerExporter = /*#__PURE__*/function () {
145
145
  }
146
146
  }, {
147
147
  key: "buildTableManyToMany",
148
- value: function buildTableManyToMany(firstTableFieldsMap, secondTableFieldsMap, tableName) {
149
- var line = "CREATE TABLE [".concat(tableName, "] (\n");
148
+ value: function buildTableManyToMany(firstTableFieldsMap, secondTableFieldsMap, tableName, refEndpointSchema, model) {
149
+ var line = "CREATE TABLE ".concat((0, _utils.shouldPrintSchema)(refEndpointSchema, model) ? "[".concat(refEndpointSchema.name, "].") : '', "[").concat(tableName, "] (\n");
150
150
 
151
151
  var key1s = _toConsumableArray(firstTableFieldsMap.keys()).join('], [');
152
152
 
153
153
  var key2s = _toConsumableArray(secondTableFieldsMap.keys()).join('], [');
154
154
 
155
155
  firstTableFieldsMap.forEach(function (fieldType, fieldName) {
156
- line += " [".concat(fieldName, "] ").concat(fieldType, " NOT NULL,\n");
156
+ line += " [".concat(fieldName, "] ").concat(fieldType, ",\n");
157
157
  });
158
158
  secondTableFieldsMap.forEach(function (fieldType, fieldName) {
159
- line += " [".concat(fieldName, "] ").concat(fieldType, " NOT NULL,\n");
159
+ line += " [".concat(fieldName, "] ").concat(fieldType, ",\n");
160
160
  });
161
161
  line += " PRIMARY KEY ([".concat(key1s, "], [").concat(key2s, "])\n");
162
162
  line += ');\nGO\n\n';
@@ -164,29 +164,10 @@ var SqlServerExporter = /*#__PURE__*/function () {
164
164
  }
165
165
  }, {
166
166
  key: "buildForeignKeyManyToMany",
167
- value: function buildForeignKeyManyToMany(fieldsMap, foreignEndpointFields, refEndpointTableName, foreignEndpointTableName, schema, model) {
167
+ value: function buildForeignKeyManyToMany(fieldsMap, foreignEndpointFields, refEndpointTableName, foreignEndpointTableName, refEndpointSchema, foreignEndpointSchema, model) {
168
168
  var refEndpointFields = _toConsumableArray(fieldsMap.keys()).join('], [');
169
169
 
170
- var line = "ALTER TABLE [".concat(refEndpointTableName, "] ADD FOREIGN KEY ([").concat(refEndpointFields, "]) REFERENCES ").concat((0, _utils.shouldPrintSchema)(schema, model) ? "[".concat(schema.name, "].") : '', "[").concat(foreignEndpointTableName, "] ").concat(foreignEndpointFields, ";\nGO\n\n");
171
- return line;
172
- }
173
- }, {
174
- key: "buildIndexManytoMany",
175
- value: function buildIndexManytoMany(fieldsMap, newTableName, tableRefName, usedIndexNames) {
176
- var newIndexName = "".concat(newTableName, "_").concat(tableRefName);
177
- var count = 1;
178
-
179
- while (usedIndexNames.has(newIndexName)) {
180
- newIndexName = "".concat(newTableName, "_").concat(tableRefName, "(").concat(count, ")");
181
- count += 1;
182
- }
183
-
184
- usedIndexNames.add(newIndexName);
185
-
186
- var indexFields = _toConsumableArray(fieldsMap.keys()).join('", "');
187
-
188
- var line = "CREATE INDEX [idx_".concat(newIndexName, "] ON [").concat(newTableName, "] (");
189
- line += "\"".concat(indexFields, "\");\nGO\n\n");
170
+ var line = "ALTER TABLE ".concat((0, _utils.shouldPrintSchema)(refEndpointSchema, model) ? "[".concat(refEndpointSchema.name, "].") : '', "[").concat(refEndpointTableName, "] ADD FOREIGN KEY ([").concat(refEndpointFields, "]) REFERENCES ").concat((0, _utils.shouldPrintSchema)(foreignEndpointSchema, model) ? "[".concat(foreignEndpointSchema.name, "].") : '', "[").concat(foreignEndpointTableName, "] ").concat(foreignEndpointFields, ";\nGO\n\n");
190
171
  return line;
191
172
  }
192
173
  }, {
@@ -199,7 +180,7 @@ var SqlServerExporter = /*#__PURE__*/function () {
199
180
  }
200
181
  }, {
201
182
  key: "exportRefs",
202
- value: function exportRefs(refIds, model, usedTableNames, usedIndexNames) {
183
+ value: function exportRefs(refIds, model, usedTableNames) {
203
184
  var _this = this;
204
185
 
205
186
  var strArr = refIds.map(function (refId) {
@@ -230,18 +211,9 @@ var SqlServerExporter = /*#__PURE__*/function () {
230
211
  var firstTableFieldsMap = (0, _utils.buildJunctionFields1)(refEndpoint.fieldIds, model);
231
212
  var secondTableFieldsMap = (0, _utils.buildJunctionFields2)(foreignEndpoint.fieldIds, model, firstTableFieldsMap);
232
213
  var newTableName = (0, _utils.buildNewTableName)(refEndpointTable.name, foreignEndpointTable.name, usedTableNames);
233
- line += _this.buildTableManyToMany(firstTableFieldsMap, secondTableFieldsMap, newTableName);
234
-
235
- if (firstTableFieldsMap.size > 1) {
236
- line += _this.buildIndexManytoMany(firstTableFieldsMap, newTableName, refEndpointTable.name, usedIndexNames);
237
- }
238
-
239
- if (secondTableFieldsMap.size > 1) {
240
- line += _this.buildIndexManytoMany(secondTableFieldsMap, newTableName, foreignEndpointTable.name, usedIndexNames);
241
- }
242
-
243
- line += _this.buildForeignKeyManyToMany(firstTableFieldsMap, refEndpointFieldName, newTableName, refEndpointTable.name, refEndpointSchema, model);
244
- line += _this.buildForeignKeyManyToMany(secondTableFieldsMap, foreignEndpointFieldName, newTableName, foreignEndpointTable.name, foreignEndpointSchema, model);
214
+ line += _this.buildTableManyToMany(firstTableFieldsMap, secondTableFieldsMap, newTableName, refEndpointSchema, model);
215
+ line += _this.buildForeignKeyManyToMany(firstTableFieldsMap, refEndpointFieldName, newTableName, refEndpointTable.name, refEndpointSchema, refEndpointSchema, model);
216
+ line += _this.buildForeignKeyManyToMany(secondTableFieldsMap, foreignEndpointFieldName, newTableName, foreignEndpointTable.name, refEndpointSchema, foreignEndpointSchema, model);
245
217
  } else {
246
218
  line = "ALTER TABLE ".concat((0, _utils.shouldPrintSchema)(foreignEndpointSchema, model) ? "[".concat(foreignEndpointSchema.name, "].") : '', "[").concat(foreignEndpointTable.name, "] ADD ");
247
219
 
@@ -349,9 +321,6 @@ var SqlServerExporter = /*#__PURE__*/function () {
349
321
  var usedTableNames = new Set(Object.values(model.tables).map(function (table) {
350
322
  return table.name;
351
323
  }));
352
- var usedIndexNames = new Set(Object.values(model.indexes).map(function (index) {
353
- return index.name;
354
- }));
355
324
  var statements = database.schemaIds.reduce(function (prevStatements, schemaId) {
356
325
  var schema = model.schemas[schemaId];
357
326
  var tableIds = schema.tableIds,
@@ -405,7 +374,7 @@ var SqlServerExporter = /*#__PURE__*/function () {
405
374
  if (!_lodash["default"].isEmpty(refIds)) {
406
375
  var _prevStatements$refs;
407
376
 
408
- (_prevStatements$refs = prevStatements.refs).push.apply(_prevStatements$refs, _toConsumableArray(SqlServerExporter.exportRefs(refIds, model, usedTableNames, usedIndexNames)));
377
+ (_prevStatements$refs = prevStatements.refs).push.apply(_prevStatements$refs, _toConsumableArray(SqlServerExporter.exportRefs(refIds, model, usedTableNames)));
409
378
  }
410
379
 
411
380
  return prevStatements;
@@ -15,6 +15,18 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
15
15
 
16
16
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
17
17
 
18
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
19
+
20
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
21
+
22
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
23
+
24
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
25
+
26
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
27
+
28
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
29
+
18
30
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
19
31
 
20
32
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -140,11 +152,35 @@ var Endpoint = /*#__PURE__*/function (_Element) {
140
152
  value: function setFields(fieldNames, table) {
141
153
  var _this2 = this;
142
154
 
143
- fieldNames.forEach(function (fieldName) {
155
+ var newFieldNames = fieldNames && fieldNames.length ? _toConsumableArray(fieldNames) : [];
156
+
157
+ if (!newFieldNames.length) {
158
+ var fieldHasPK = table.fields.find(function (field) {
159
+ return field.pk;
160
+ });
161
+
162
+ if (fieldHasPK) {
163
+ newFieldNames.push(fieldHasPK.name);
164
+ } else {
165
+ var indexHasPK = table.indexes.find(function (index) {
166
+ return index.pk;
167
+ });
168
+
169
+ if (indexHasPK) {
170
+ newFieldNames = indexHasPK.columns.map(function (column) {
171
+ return column.value;
172
+ });
173
+ } else {
174
+ this.error("Can't find primary or composite key in table ".concat((0, _utils.shouldPrintSchema)(table.schema) ? "\"".concat(table.schema.name, "\".") : '', "\"").concat(table.name, "\""));
175
+ }
176
+ }
177
+ }
178
+
179
+ newFieldNames.forEach(function (fieldName) {
144
180
  var field = table.findField(fieldName);
145
181
 
146
182
  if (!field) {
147
- _this2.error("Can't find field ".concat((0, _utils.shouldPrintSchema)(table.schema) ? "\"".concat(table.schema.name, "\".") : '', "\"").concat(fieldName, "\" in table \"").concat(_this2.tableName, "\""));
183
+ _this2.error("Can't find field ".concat((0, _utils.shouldPrintSchema)(table.schema) ? "\"".concat(table.schema.name, "\".") : '', "\"").concat(fieldName, "\" in table \"").concat(table.name, "\""));
148
184
  }
149
185
 
150
186
  _this2.fields.push(field);
@@ -51,12 +51,14 @@ function makeTableConstraintFK(_keyword1, endpoint1, _keyword2, tableName, endpo
51
51
  var fullTableName = getFullTableName(tableName);
52
52
 
53
53
  if (!endpoint2) {
54
+ // Omits columns list, see: https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql?view=sql-server-ver16#foreign-key-constraints
54
55
  // eslint-disable-next-line no-param-reassign
55
56
  endpoint2 = {
56
57
  type: 'endpoint',
57
- value: {}
58
+ value: {
59
+ fieldNames: null
60
+ }
58
61
  };
59
- endpoint2.value.fieldNames = endpoint1.value.fieldNames;
60
62
  }
61
63
 
62
64
  endpoint1.value.relation = '*';