dbgate-tools 6.6.9 → 6.6.11

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.
@@ -22,6 +22,7 @@ export declare function findObjectLike({ pureName, schemaName }: {
22
22
  schemaName: any;
23
23
  }, dbinfo: DatabaseInfo, objectTypeField: keyof DatabaseInfoObjects): any;
24
24
  export declare function findForeignKeyForColumn(table: TableInfo, column: ColumnInfo | string): import("dbgate-types").ForeignKeyInfo;
25
+ export declare function getConflictingColumnNames(columns: ColumnInfo[]): Set<string>;
25
26
  export declare function makeUniqueColumnNames(res: ColumnInfo[]): void;
26
27
  export declare function fillConstraintNames(table: TableInfo, dialect: SqlDialect): TableInfo;
27
28
  export declare const DATA_FOLDER_NAMES: {
package/lib/nameTools.js CHANGED
@@ -3,8 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DATA_FOLDER_NAMES = exports.fillConstraintNames = exports.makeUniqueColumnNames = exports.findForeignKeyForColumn = exports.findObjectLike = exports.equalFullName = exports.equalStringLike = exports.quoteFullName = exports.fullNameToLabel = exports.fullNameToString = exports.fullNameFromString = void 0;
6
+ exports.DATA_FOLDER_NAMES = exports.fillConstraintNames = exports.makeUniqueColumnNames = exports.getConflictingColumnNames = exports.findForeignKeyForColumn = exports.findObjectLike = exports.equalFullName = exports.equalStringLike = exports.quoteFullName = exports.fullNameToLabel = exports.fullNameToString = exports.fullNameFromString = void 0;
7
7
  const cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
8
+ const uniq_1 = __importDefault(require("lodash/uniq"));
8
9
  const isString_1 = __importDefault(require("lodash/isString"));
9
10
  function fullNameFromString(name) {
10
11
  const m = name.match(/\[([^\]]+)\]\.\[([^\]]+)\]/);
@@ -69,9 +70,22 @@ function findForeignKeyForColumn(table, column) {
69
70
  return (table.foreignKeys || []).find(fk => fk.columns.find(col => col.columnName == column.columnName));
70
71
  }
71
72
  exports.findForeignKeyForColumn = findForeignKeyForColumn;
73
+ function getConflictingColumnNames(columns) {
74
+ const conflictingNames = new Set((0, uniq_1.default)(columns.map(x => x.columnName).filter((item, index, arr) => arr.indexOf(item) !== index)));
75
+ return conflictingNames;
76
+ }
77
+ exports.getConflictingColumnNames = getConflictingColumnNames;
72
78
  function makeUniqueColumnNames(res) {
73
79
  const usedNames = new Set();
80
+ const conflictingNames = getConflictingColumnNames(res);
74
81
  for (let i = 0; i < res.length; i++) {
82
+ if (conflictingNames.has(res[i].columnName) &&
83
+ res[i].pureName &&
84
+ !usedNames.has(`${res[i].pureName}_${res[i].columnName}`)) {
85
+ res[i].columnName = `${res[i].pureName}_${res[i].columnName}`;
86
+ usedNames.add(res[i].columnName);
87
+ continue;
88
+ }
75
89
  if (usedNames.has(res[i].columnName)) {
76
90
  let suffix = 2;
77
91
  while (usedNames.has(`${res[i].columnName}${suffix}`))
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "6.6.9",
2
+ "version": "6.6.11",
3
3
  "name": "dbgate-tools",
4
4
  "main": "lib/index.js",
5
5
  "typings": "lib/index.d.ts",
@@ -26,7 +26,7 @@
26
26
  ],
27
27
  "devDependencies": {
28
28
  "@types/node": "^13.7.0",
29
- "dbgate-types": "^6.6.9",
29
+ "dbgate-types": "^6.6.11",
30
30
  "jest": "^28.1.3",
31
31
  "ts-jest": "^28.0.7",
32
32
  "typescript": "^4.4.3"
@@ -34,7 +34,7 @@
34
34
  "dependencies": {
35
35
  "blueimp-md5": "^2.19.0",
36
36
  "dbgate-query-splitter": "^4.11.7",
37
- "dbgate-sqltree": "^6.6.9",
37
+ "dbgate-sqltree": "^6.6.11",
38
38
  "debug": "^4.3.4",
39
39
  "json-stable-stringify": "^1.0.1",
40
40
  "lodash": "^4.17.21",