@proteinjs/db-driver-spanner 1.0.2
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/CHANGELOG.md +16 -0
- package/LICENSE +21 -0
- package/README.md +32 -0
- package/dist/generated/index.d.ts +8 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +38 -0
- package/dist/generated/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/src/SpannerColumnTypeFactory.d.ts +5 -0
- package/dist/src/SpannerColumnTypeFactory.d.ts.map +1 -0
- package/dist/src/SpannerColumnTypeFactory.js +31 -0
- package/dist/src/SpannerColumnTypeFactory.js.map +1 -0
- package/dist/src/SpannerConfig.d.ts +8 -0
- package/dist/src/SpannerConfig.d.ts.map +1 -0
- package/dist/src/SpannerConfig.js +7 -0
- package/dist/src/SpannerConfig.js.map +1 -0
- package/dist/src/SpannerDriver.d.ts +30 -0
- package/dist/src/SpannerDriver.d.ts.map +1 -0
- package/dist/src/SpannerDriver.js +204 -0
- package/dist/src/SpannerDriver.js.map +1 -0
- package/dist/src/SpannerSchemaMetadata.d.ts +21 -0
- package/dist/src/SpannerSchemaMetadata.d.ts.map +1 -0
- package/dist/src/SpannerSchemaMetadata.js +229 -0
- package/dist/src/SpannerSchemaMetadata.js.map +1 -0
- package/dist/src/SpannerSchemaOperations.d.ts +10 -0
- package/dist/src/SpannerSchemaOperations.d.ts.map +1 -0
- package/dist/src/SpannerSchemaOperations.js +215 -0
- package/dist/src/SpannerSchemaOperations.js.map +1 -0
- package/dist/test/Crud.test.d.ts +2 -0
- package/dist/test/Crud.test.d.ts.map +1 -0
- package/dist/test/Crud.test.js +12 -0
- package/dist/test/Crud.test.js.map +1 -0
- package/dist/test/TableManager.test.d.ts +2 -0
- package/dist/test/TableManager.test.d.ts.map +1 -0
- package/dist/test/TableManager.test.js +17 -0
- package/dist/test/TableManager.test.js.map +1 -0
- package/dist/test/dropTable.d.ts +4 -0
- package/dist/test/dropTable.d.ts.map +1 -0
- package/dist/test/dropTable.js +115 -0
- package/dist/test/dropTable.js.map +1 -0
- package/generated/index.ts +34 -0
- package/index.ts +2 -0
- package/jest.config.js +19 -0
- package/package.json +42 -0
- package/src/SpannerColumnTypeFactory.ts +25 -0
- package/src/SpannerConfig.ts +9 -0
- package/src/SpannerDriver.ts +115 -0
- package/src/SpannerSchemaMetadata.ts +96 -0
- package/src/SpannerSchemaOperations.ts +122 -0
- package/test/Crud.test.ts +17 -0
- package/test/TableManager.test.ts +24 -0
- package/test/dropTable.ts +32 -0
- package/test/setup.js +1 -0
- package/tsconfig.json +23 -0
@@ -0,0 +1,229 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
3
|
+
var extendStatics = function (d, b) {
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
7
|
+
return extendStatics(d, b);
|
8
|
+
};
|
9
|
+
return function (d, b) {
|
10
|
+
if (typeof b !== "function" && b !== null)
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
12
|
+
extendStatics(d, b);
|
13
|
+
function __() { this.constructor = d; }
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
15
|
+
};
|
16
|
+
})();
|
17
|
+
var __assign = (this && this.__assign) || function () {
|
18
|
+
__assign = Object.assign || function(t) {
|
19
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
20
|
+
s = arguments[i];
|
21
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
22
|
+
t[p] = s[p];
|
23
|
+
}
|
24
|
+
return t;
|
25
|
+
};
|
26
|
+
return __assign.apply(this, arguments);
|
27
|
+
};
|
28
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
29
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
30
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
31
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
32
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
33
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
34
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
35
|
+
});
|
36
|
+
};
|
37
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
38
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
39
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
40
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
41
|
+
function step(op) {
|
42
|
+
if (f) throw new TypeError("Generator is already executing.");
|
43
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
44
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
45
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
46
|
+
switch (op[0]) {
|
47
|
+
case 0: case 1: t = op; break;
|
48
|
+
case 4: _.label++; return { value: op[1], done: false };
|
49
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
50
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
51
|
+
default:
|
52
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
53
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
54
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
55
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
56
|
+
if (t[2]) _.ops.pop();
|
57
|
+
_.trys.pop(); continue;
|
58
|
+
}
|
59
|
+
op = body.call(thisArg, _);
|
60
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
61
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
62
|
+
}
|
63
|
+
};
|
64
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
65
|
+
exports.SpannerSchemaMetadata = void 0;
|
66
|
+
var db_1 = require("@proteinjs/db");
|
67
|
+
var SpannerSchemaMetadata = /** @class */ (function (_super) {
|
68
|
+
__extends(SpannerSchemaMetadata, _super);
|
69
|
+
function SpannerSchemaMetadata() {
|
70
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
71
|
+
}
|
72
|
+
SpannerSchemaMetadata.prototype.getColumnMetadata = function (table) {
|
73
|
+
return __awaiter(this, void 0, void 0, function () {
|
74
|
+
var qb, generateStatement, results, columnMetadata, _i, results_1, row;
|
75
|
+
return __generator(this, function (_a) {
|
76
|
+
switch (_a.label) {
|
77
|
+
case 0:
|
78
|
+
qb = db_1.QueryBuilder.fromObject({
|
79
|
+
'TABLE_NAME': table.name
|
80
|
+
}, 'COLUMNS');
|
81
|
+
generateStatement = function (config) { return qb.toSql(__assign({ dbName: 'INFORMATION_SCHEMA' }, config)); };
|
82
|
+
return [4 /*yield*/, this.dbDriver.runQuery(generateStatement)];
|
83
|
+
case 1:
|
84
|
+
results = _a.sent();
|
85
|
+
columnMetadata = {};
|
86
|
+
for (_i = 0, results_1 = results; _i < results_1.length; _i++) {
|
87
|
+
row = results_1[_i];
|
88
|
+
columnMetadata[row['COLUMN_NAME']] = { type: row['SPANNER_TYPE'], isNullable: row['IS_NULLABLE'] === 'YES' };
|
89
|
+
}
|
90
|
+
return [2 /*return*/, columnMetadata];
|
91
|
+
}
|
92
|
+
});
|
93
|
+
});
|
94
|
+
};
|
95
|
+
SpannerSchemaMetadata.prototype.getPrimaryKey = function (table) {
|
96
|
+
return __awaiter(this, void 0, void 0, function () {
|
97
|
+
var indexes;
|
98
|
+
return __generator(this, function (_a) {
|
99
|
+
switch (_a.label) {
|
100
|
+
case 0: return [4 /*yield*/, this.getIndexes(table)];
|
101
|
+
case 1:
|
102
|
+
indexes = _a.sent();
|
103
|
+
return [2 /*return*/, indexes['PRIMARY_KEY']];
|
104
|
+
}
|
105
|
+
});
|
106
|
+
});
|
107
|
+
};
|
108
|
+
SpannerSchemaMetadata.prototype.getForeignKeys = function (table) {
|
109
|
+
return __awaiter(this, void 0, void 0, function () {
|
110
|
+
var tableConstraintsQb, generateTableConstraintsStatement, tableConstraints, foreignKeys, _loop_1, this_1, _i, tableConstraints_1, tableConstraint;
|
111
|
+
return __generator(this, function (_a) {
|
112
|
+
switch (_a.label) {
|
113
|
+
case 0:
|
114
|
+
tableConstraintsQb = db_1.QueryBuilder.fromObject({
|
115
|
+
'TABLE_NAME': table.name,
|
116
|
+
'CONSTRAINT_TYPE': 'FOREIGN KEY'
|
117
|
+
}, 'TABLE_CONSTRAINTS');
|
118
|
+
generateTableConstraintsStatement = function (config) { return tableConstraintsQb.toSql(__assign({ dbName: 'INFORMATION_SCHEMA' }, config)); };
|
119
|
+
return [4 /*yield*/, this.dbDriver.runQuery(generateTableConstraintsStatement)];
|
120
|
+
case 1:
|
121
|
+
tableConstraints = _a.sent();
|
122
|
+
foreignKeys = {};
|
123
|
+
_loop_1 = function (tableConstraint) {
|
124
|
+
var referentialConstraintsQb, generateReferentialConstraintsStatement, referentialConstraints, referencedTableConstraintName, referenceTableConstraintsQb, generateReferenceTableConstraintsStatement, referenceTableConstraints, referencedTableName, keyColumnUsageQb, generateKeyColumnUsageStatement, keyColumnUsages, referencingColumnName;
|
125
|
+
return __generator(this, function (_b) {
|
126
|
+
switch (_b.label) {
|
127
|
+
case 0:
|
128
|
+
referentialConstraintsQb = db_1.QueryBuilder.fromObject({
|
129
|
+
'CONSTRAINT_NAME': tableConstraint['CONSTRAINT_NAME']
|
130
|
+
}, 'REFERENTIAL_CONSTRAINTS');
|
131
|
+
generateReferentialConstraintsStatement = function (config) { return referentialConstraintsQb.toSql(__assign({ dbName: 'INFORMATION_SCHEMA' }, config)); };
|
132
|
+
return [4 /*yield*/, this_1.dbDriver.runQuery(generateReferentialConstraintsStatement)];
|
133
|
+
case 1:
|
134
|
+
referentialConstraints = _b.sent();
|
135
|
+
referencedTableConstraintName = referentialConstraints[0]['UNIQUE_CONSTRAINT_NAME'];
|
136
|
+
referenceTableConstraintsQb = db_1.QueryBuilder.fromObject({
|
137
|
+
'CONSTRAINT_NAME': referencedTableConstraintName
|
138
|
+
}, 'TABLE_CONSTRAINTS');
|
139
|
+
generateReferenceTableConstraintsStatement = function (config) { return referenceTableConstraintsQb.toSql(__assign({ dbName: 'INFORMATION_SCHEMA' }, config)); };
|
140
|
+
return [4 /*yield*/, this_1.dbDriver.runQuery(generateReferenceTableConstraintsStatement)];
|
141
|
+
case 2:
|
142
|
+
referenceTableConstraints = _b.sent();
|
143
|
+
referencedTableName = referenceTableConstraints[0]['TABLE_NAME'];
|
144
|
+
keyColumnUsageQb = db_1.QueryBuilder.fromObject({
|
145
|
+
'TABLE_NAME': table.name,
|
146
|
+
'CONSTRAINT_NAME': tableConstraint['CONSTRAINT_NAME']
|
147
|
+
}, 'KEY_COLUMN_USAGE');
|
148
|
+
generateKeyColumnUsageStatement = function (config) { return keyColumnUsageQb.toSql(__assign({ dbName: 'INFORMATION_SCHEMA' }, config)); };
|
149
|
+
return [4 /*yield*/, this_1.dbDriver.runQuery(generateKeyColumnUsageStatement)];
|
150
|
+
case 3:
|
151
|
+
keyColumnUsages = _b.sent();
|
152
|
+
referencingColumnName = keyColumnUsages[0]['COLUMN_NAME'];
|
153
|
+
foreignKeys[referencingColumnName] = {
|
154
|
+
referencedTableName: referencedTableName,
|
155
|
+
referencedColumnName: 'id',
|
156
|
+
};
|
157
|
+
return [2 /*return*/];
|
158
|
+
}
|
159
|
+
});
|
160
|
+
};
|
161
|
+
this_1 = this;
|
162
|
+
_i = 0, tableConstraints_1 = tableConstraints;
|
163
|
+
_a.label = 2;
|
164
|
+
case 2:
|
165
|
+
if (!(_i < tableConstraints_1.length)) return [3 /*break*/, 5];
|
166
|
+
tableConstraint = tableConstraints_1[_i];
|
167
|
+
return [5 /*yield**/, _loop_1(tableConstraint)];
|
168
|
+
case 3:
|
169
|
+
_a.sent();
|
170
|
+
_a.label = 4;
|
171
|
+
case 4:
|
172
|
+
_i++;
|
173
|
+
return [3 /*break*/, 2];
|
174
|
+
case 5: return [2 /*return*/, foreignKeys];
|
175
|
+
}
|
176
|
+
});
|
177
|
+
});
|
178
|
+
};
|
179
|
+
SpannerSchemaMetadata.prototype.getUniqueColumns = function (table) {
|
180
|
+
return __awaiter(this, void 0, void 0, function () {
|
181
|
+
var indexes, uniqueColumns, indexName, indexedColumns;
|
182
|
+
return __generator(this, function (_a) {
|
183
|
+
switch (_a.label) {
|
184
|
+
case 0: return [4 /*yield*/, this.getIndexes(table)];
|
185
|
+
case 1:
|
186
|
+
indexes = _a.sent();
|
187
|
+
uniqueColumns = [];
|
188
|
+
for (indexName in indexes) {
|
189
|
+
if (!indexName.endsWith('_unique'))
|
190
|
+
continue;
|
191
|
+
indexedColumns = indexes[indexName];
|
192
|
+
uniqueColumns.push.apply(uniqueColumns, indexedColumns);
|
193
|
+
}
|
194
|
+
return [2 /*return*/, uniqueColumns];
|
195
|
+
}
|
196
|
+
});
|
197
|
+
});
|
198
|
+
};
|
199
|
+
SpannerSchemaMetadata.prototype.getIndexes = function (table) {
|
200
|
+
return __awaiter(this, void 0, void 0, function () {
|
201
|
+
var qb, generateStatement, results, indexes, _i, results_2, row;
|
202
|
+
return __generator(this, function (_a) {
|
203
|
+
switch (_a.label) {
|
204
|
+
case 0:
|
205
|
+
qb = new db_1.QueryBuilder('INDEX_COLUMNS')
|
206
|
+
.condition({ field: 'TABLE_NAME', operator: '=', value: table.name })
|
207
|
+
.sort([{ field: 'ORDINAL_POSITION', desc: false }]);
|
208
|
+
generateStatement = function (config) { return qb.toSql(__assign({ dbName: 'INFORMATION_SCHEMA' }, config)); };
|
209
|
+
return [4 /*yield*/, this.dbDriver.runQuery(generateStatement)];
|
210
|
+
case 1:
|
211
|
+
results = _a.sent();
|
212
|
+
indexes = {};
|
213
|
+
for (_i = 0, results_2 = results; _i < results_2.length; _i++) {
|
214
|
+
row = results_2[_i];
|
215
|
+
if (!row['INDEX_NAME'])
|
216
|
+
continue;
|
217
|
+
if (!indexes[row['INDEX_NAME']])
|
218
|
+
indexes[row['INDEX_NAME']] = [];
|
219
|
+
indexes[row['INDEX_NAME']].push(row['COLUMN_NAME']);
|
220
|
+
}
|
221
|
+
return [2 /*return*/, indexes];
|
222
|
+
}
|
223
|
+
});
|
224
|
+
});
|
225
|
+
};
|
226
|
+
return SpannerSchemaMetadata;
|
227
|
+
}(db_1.SchemaMetadata));
|
228
|
+
exports.SpannerSchemaMetadata = SpannerSchemaMetadata;
|
229
|
+
//# sourceMappingURL=SpannerSchemaMetadata.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"SpannerSchemaMetadata.js","sourceRoot":"","sources":["../../src/SpannerSchemaMetadata.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { Table, SchemaOperations, TableChanges } from '@proteinjs/db';
|
2
|
+
import { SpannerDriver } from './SpannerDriver';
|
3
|
+
export declare class SpannerSchemaOperations implements SchemaOperations {
|
4
|
+
private spannerDriver;
|
5
|
+
private logger;
|
6
|
+
constructor(spannerDriver: SpannerDriver);
|
7
|
+
createTable(table: Table<any>): Promise<void>;
|
8
|
+
alterTable(table: Table<any>, tableChanges: TableChanges): Promise<void>;
|
9
|
+
}
|
10
|
+
//# sourceMappingURL=SpannerSchemaOperations.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"SpannerSchemaOperations.d.ts","sourceRoot":"","sources":["../../src/SpannerSchemaOperations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAsE,MAAM,eAAe,CAAC;AAC1I,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,qBAAa,uBAAwB,YAAW,gBAAgB;IAI5D,OAAO,CAAC,aAAa;IAHvB,OAAO,CAAC,MAAM,CAAqC;gBAGzC,aAAa,EAAE,aAAa;IAGhC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;IAmC7B,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,YAAY;CA0E/D"}
|
@@ -0,0 +1,215 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
15
|
+
function step(op) {
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
20
|
+
switch (op[0]) {
|
21
|
+
case 0: case 1: t = op; break;
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
25
|
+
default:
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
30
|
+
if (t[2]) _.ops.pop();
|
31
|
+
_.trys.pop(); continue;
|
32
|
+
}
|
33
|
+
op = body.call(thisArg, _);
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
36
|
+
}
|
37
|
+
};
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
39
|
+
exports.SpannerSchemaOperations = void 0;
|
40
|
+
var util_1 = require("@proteinjs/util");
|
41
|
+
var db_1 = require("@proteinjs/db");
|
42
|
+
var SpannerColumnTypeFactory_1 = require("./SpannerColumnTypeFactory");
|
43
|
+
var SpannerSchemaOperations = /** @class */ (function () {
|
44
|
+
function SpannerSchemaOperations(spannerDriver) {
|
45
|
+
this.spannerDriver = spannerDriver;
|
46
|
+
this.logger = new util_1.Logger(this.constructor.name);
|
47
|
+
}
|
48
|
+
SpannerSchemaOperations.prototype.createTable = function (table) {
|
49
|
+
var _a, _b, _c, _d;
|
50
|
+
return __awaiter(this, void 0, void 0, function () {
|
51
|
+
var indexes, _i, _e, index, serializedColumns, foreignKeys, columnPropertyName, column, columnType, createTableSql, _f, indexes_1, index, createIndexSql, indexName;
|
52
|
+
return __generator(this, function (_g) {
|
53
|
+
switch (_g.label) {
|
54
|
+
case 0:
|
55
|
+
indexes = [];
|
56
|
+
for (_i = 0, _e = table.indexes; _i < _e.length; _i++) {
|
57
|
+
index = _e[_i];
|
58
|
+
indexes.push({ name: index.name, columns: index.columns });
|
59
|
+
}
|
60
|
+
serializedColumns = [];
|
61
|
+
foreignKeys = [];
|
62
|
+
for (columnPropertyName in table.columns) {
|
63
|
+
column = table.columns[columnPropertyName];
|
64
|
+
columnType = new SpannerColumnTypeFactory_1.SpannerColumnTypeFactory().getType(column);
|
65
|
+
serializedColumns.push({ name: column.name, type: columnType, nullable: (_a = column.options) === null || _a === void 0 ? void 0 : _a.nullable });
|
66
|
+
this.logger.info("[".concat(table.name, "] Creating column: ").concat(column.name, " (").concat(column.constructor.name, ")"));
|
67
|
+
if ((_c = (_b = column.options) === null || _b === void 0 ? void 0 : _b.unique) === null || _c === void 0 ? void 0 : _c.unique) {
|
68
|
+
indexes.push({ name: column.options.unique.indexName, columns: column.name, unique: true });
|
69
|
+
this.logger.info("[".concat(table.name, ".").concat(column.name, "] Adding unique constraint"));
|
70
|
+
}
|
71
|
+
if ((_d = column.options) === null || _d === void 0 ? void 0 : _d.references) {
|
72
|
+
foreignKeys.push({ table: column.options.references.table, column: 'id', referencedByColumn: column.name });
|
73
|
+
this.logger.info("[".concat(table.name, ".").concat(column.name, "] Adding foreign key -> ").concat(column.options.references.table, ".id"));
|
74
|
+
}
|
75
|
+
}
|
76
|
+
createTableSql = new db_1.StatementFactory().createTable(table.name, serializedColumns, 'id', foreignKeys).sql;
|
77
|
+
return [4 /*yield*/, this.spannerDriver.runUpdateSchema(createTableSql)];
|
78
|
+
case 1:
|
79
|
+
_g.sent();
|
80
|
+
_f = 0, indexes_1 = indexes;
|
81
|
+
_g.label = 2;
|
82
|
+
case 2:
|
83
|
+
if (!(_f < indexes_1.length)) return [3 /*break*/, 5];
|
84
|
+
index = indexes_1[_f];
|
85
|
+
createIndexSql = new db_1.StatementFactory().createIndex(index, table.name).sql;
|
86
|
+
indexName = db_1.StatementUtil.getIndexName(table.name, index);
|
87
|
+
this.logger.info("[".concat(table.name, "] Creating index: ").concat(indexName, " (").concat(typeof index.columns === 'string' ? index.columns : index.columns.join(', '), ")"));
|
88
|
+
return [4 /*yield*/, this.spannerDriver.runUpdateSchema(createIndexSql)];
|
89
|
+
case 3:
|
90
|
+
_g.sent();
|
91
|
+
this.logger.info("[".concat(table.name, "] Created index: ").concat(indexName, " (").concat(typeof index.columns === 'string' ? index.columns : index.columns.join(', '), ")"));
|
92
|
+
_g.label = 4;
|
93
|
+
case 4:
|
94
|
+
_f++;
|
95
|
+
return [3 /*break*/, 2];
|
96
|
+
case 5: return [2 /*return*/];
|
97
|
+
}
|
98
|
+
});
|
99
|
+
});
|
100
|
+
};
|
101
|
+
SpannerSchemaOperations.prototype.alterTable = function (table, tableChanges) {
|
102
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
103
|
+
return __awaiter(this, void 0, void 0, function () {
|
104
|
+
var alterParams, indexesToDrop, indexesToAdd, _i, _h, columnPropertyName, column, columnType, _j, _k, columnName, _l, _m, foreignKey, _o, _p, columnTypeChange, errorMessage, _q, _r, columnNullableChange, errorMessage, _s, _t, columnPropertyName, column, errorMessage, alterStatements, _u, alterStatements_1, alterStatement, _v, _w, index, dropIndexSql, _x, _y, index, createIndexSql, indexName;
|
105
|
+
return __generator(this, function (_z) {
|
106
|
+
switch (_z.label) {
|
107
|
+
case 0:
|
108
|
+
alterParams = {
|
109
|
+
tableName: table.name,
|
110
|
+
columnsToAdd: [],
|
111
|
+
foreignKeysToDrop: [],
|
112
|
+
foreignKeysToAdd: [],
|
113
|
+
columnRenames: [],
|
114
|
+
};
|
115
|
+
indexesToDrop = tableChanges.indexesToDrop;
|
116
|
+
indexesToAdd = tableChanges.indexesToCreate;
|
117
|
+
for (_i = 0, _h = tableChanges.columnsToCreate; _i < _h.length; _i++) {
|
118
|
+
columnPropertyName = _h[_i];
|
119
|
+
column = table.columns[columnPropertyName];
|
120
|
+
columnType = new SpannerColumnTypeFactory_1.SpannerColumnTypeFactory().getType(column);
|
121
|
+
(_a = alterParams.columnsToAdd) === null || _a === void 0 ? void 0 : _a.push({ name: column.name, type: columnType, nullable: (_b = column.options) === null || _b === void 0 ? void 0 : _b.nullable });
|
122
|
+
this.logger.info("[".concat(table.name, "] Creating column: ").concat(column.name, " (").concat(column.constructor.name, ")"));
|
123
|
+
if (((_d = (_c = column.options) === null || _c === void 0 ? void 0 : _c.unique) === null || _d === void 0 ? void 0 : _d.unique) && tableChanges.columnsWithUniqueConstraintsToCreate.includes(column.name)) {
|
124
|
+
indexesToAdd.push({ name: column.options.unique.indexName, columns: column.name, unique: true });
|
125
|
+
this.logger.info("[".concat(table.name, ".").concat(column.name, "] Adding unique constraint"));
|
126
|
+
}
|
127
|
+
if (((_e = column.options) === null || _e === void 0 ? void 0 : _e.references) && tableChanges.columnsWithForeignKeysToCreate.includes(column.name)) {
|
128
|
+
(_f = alterParams.foreignKeysToAdd) === null || _f === void 0 ? void 0 : _f.push({ table: column.options.references.table, column: 'id', referencedByColumn: column.name });
|
129
|
+
this.logger.info("[".concat(table.name, ".").concat(column.name, "] Adding foreign key -> ").concat(column.options.references.table, ".id"));
|
130
|
+
}
|
131
|
+
}
|
132
|
+
for (_j = 0, _k = tableChanges.columnsWithUniqueConstraintsToDrop; _j < _k.length; _j++) {
|
133
|
+
columnName = _k[_j];
|
134
|
+
indexesToDrop.push({ columns: columnName, unique: true });
|
135
|
+
this.logger.info("[".concat(table.name, ".").concat(columnName, "] Dropping unique constraint"));
|
136
|
+
}
|
137
|
+
for (_l = 0, _m = tableChanges.foreignKeysToDrop; _l < _m.length; _l++) {
|
138
|
+
foreignKey = _m[_l];
|
139
|
+
(_g = alterParams.foreignKeysToDrop) === null || _g === void 0 ? void 0 : _g.push(foreignKey);
|
140
|
+
this.logger.info("[".concat(table.name, ".").concat(foreignKey.referencedByColumn, "] Dropping foreign key -> ").concat(foreignKey.table, ".").concat(foreignKey.column));
|
141
|
+
}
|
142
|
+
for (_o = 0, _p = tableChanges.columnTypeChanges; _o < _p.length; _o++) {
|
143
|
+
columnTypeChange = _p[_o];
|
144
|
+
errorMessage = "[".concat(table.name, ".").concat(columnTypeChange.name, "] Unable to change column types in Spanner. Attempted to change type to: ").concat(columnTypeChange.newType);
|
145
|
+
this.logger.error(errorMessage);
|
146
|
+
throw new Error(errorMessage);
|
147
|
+
}
|
148
|
+
for (_q = 0, _r = tableChanges.columnNullableChanges; _q < _r.length; _q++) {
|
149
|
+
columnNullableChange = _r[_q];
|
150
|
+
errorMessage = "[".concat(table.name, ".").concat(columnNullableChange.name, "] Unable to update nullable constraint on existing column in Spanner. Attempted to update nullable constraint to: ").concat(columnNullableChange.nullable === true);
|
151
|
+
this.logger.error(errorMessage);
|
152
|
+
throw new Error(errorMessage);
|
153
|
+
}
|
154
|
+
for (_s = 0, _t = tableChanges.columnsToRename; _s < _t.length; _s++) {
|
155
|
+
columnPropertyName = _t[_s];
|
156
|
+
column = table.columns[columnPropertyName];
|
157
|
+
errorMessage = "[".concat(table.name, ".").concat(column.oldName, "] Unable to rename columns in Spanner. Attempted to perform rename: ").concat(column.oldName, " -> ").concat(column.name);
|
158
|
+
this.logger.error(errorMessage);
|
159
|
+
throw new Error(errorMessage);
|
160
|
+
}
|
161
|
+
alterStatements = new db_1.StatementFactory().alterTable(alterParams);
|
162
|
+
_u = 0, alterStatements_1 = alterStatements;
|
163
|
+
_z.label = 1;
|
164
|
+
case 1:
|
165
|
+
if (!(_u < alterStatements_1.length)) return [3 /*break*/, 4];
|
166
|
+
alterStatement = alterStatements_1[_u];
|
167
|
+
return [4 /*yield*/, this.spannerDriver.runUpdateSchema(alterStatement.sql)];
|
168
|
+
case 2:
|
169
|
+
_z.sent();
|
170
|
+
_z.label = 3;
|
171
|
+
case 3:
|
172
|
+
_u++;
|
173
|
+
return [3 /*break*/, 1];
|
174
|
+
case 4:
|
175
|
+
_v = 0, _w = tableChanges.indexesToDrop;
|
176
|
+
_z.label = 5;
|
177
|
+
case 5:
|
178
|
+
if (!(_v < _w.length)) return [3 /*break*/, 8];
|
179
|
+
index = _w[_v];
|
180
|
+
dropIndexSql = new db_1.StatementFactory().dropIndex(index, table.name).sql;
|
181
|
+
this.logger.info("[".concat(table.name, "] Dropping index: ").concat(index.name, " (").concat(typeof index.columns === 'string' ? index.columns : index.columns.join(', '), ")"));
|
182
|
+
return [4 /*yield*/, this.spannerDriver.runUpdateSchema(dropIndexSql)];
|
183
|
+
case 6:
|
184
|
+
_z.sent();
|
185
|
+
this.logger.info("[".concat(table.name, "] Dropped index: ").concat(index.name, " (").concat(typeof index.columns === 'string' ? index.columns : index.columns.join(', '), ")"));
|
186
|
+
_z.label = 7;
|
187
|
+
case 7:
|
188
|
+
_v++;
|
189
|
+
return [3 /*break*/, 5];
|
190
|
+
case 8:
|
191
|
+
_x = 0, _y = tableChanges.indexesToCreate;
|
192
|
+
_z.label = 9;
|
193
|
+
case 9:
|
194
|
+
if (!(_x < _y.length)) return [3 /*break*/, 12];
|
195
|
+
index = _y[_x];
|
196
|
+
createIndexSql = new db_1.StatementFactory().createIndex(index, table.name).sql;
|
197
|
+
indexName = db_1.StatementUtil.getIndexName(table.name, index);
|
198
|
+
this.logger.info("[".concat(table.name, "] Creating index: ").concat(indexName, " (").concat(typeof index.columns === 'string' ? index.columns : index.columns.join(', '), ")"));
|
199
|
+
return [4 /*yield*/, this.spannerDriver.runUpdateSchema(createIndexSql)];
|
200
|
+
case 10:
|
201
|
+
_z.sent();
|
202
|
+
this.logger.info("[".concat(table.name, "] Created index: ").concat(indexName, " (").concat(typeof index.columns === 'string' ? index.columns : index.columns.join(', '), ")"));
|
203
|
+
_z.label = 11;
|
204
|
+
case 11:
|
205
|
+
_x++;
|
206
|
+
return [3 /*break*/, 9];
|
207
|
+
case 12: return [2 /*return*/];
|
208
|
+
}
|
209
|
+
});
|
210
|
+
});
|
211
|
+
};
|
212
|
+
return SpannerSchemaOperations;
|
213
|
+
}());
|
214
|
+
exports.SpannerSchemaOperations = SpannerSchemaOperations;
|
215
|
+
//# sourceMappingURL=SpannerSchemaOperations.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"SpannerSchemaOperations.js","sourceRoot":"","sources":["../../src/SpannerSchemaOperations.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Crud.test.d.ts","sourceRoot":"","sources":["../../test/Crud.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
var db_1 = require("@proteinjs/db");
|
4
|
+
var SpannerDriver_1 = require("../src/SpannerDriver");
|
5
|
+
var dropTable_1 = require("./dropTable");
|
6
|
+
var spannerDriver = new SpannerDriver_1.SpannerDriver({
|
7
|
+
projectId: 'proteinjs-test',
|
8
|
+
instanceName: 'proteinjs-test',
|
9
|
+
databaseName: 'test',
|
10
|
+
});
|
11
|
+
describe('CRUD Tests', (0, db_1.crudTests)(spannerDriver, (0, dropTable_1.getDropTable)(spannerDriver)));
|
12
|
+
//# sourceMappingURL=Crud.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Crud.test.js","sourceRoot":"","sources":["../../test/Crud.test.ts"],"names":[],"mappings":";;AAAA,oCAAyC;AACzC,sDAAoD;AACpD,yCAA0C;AAE1C,IAAM,aAAa,GAAG,IAAI,6BAAa,CAAC;IACvC,SAAS,EAAE,gBAAgB;IAC3B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,MAAM;CACpB,CAAC,CAAC;AAEH,QAAQ,CACP,YAAY,EACZ,IAAA,cAAS,EACR,aAAa,EACb,IAAA,wBAAY,EAAC,aAAa,CAAC,CAC3B,CACD,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TableManager.test.d.ts","sourceRoot":"","sources":["../../test/TableManager.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
var db_1 = require("@proteinjs/db");
|
4
|
+
var SpannerDriver_1 = require("../src/SpannerDriver");
|
5
|
+
var SpannerColumnTypeFactory_1 = require("../src/SpannerColumnTypeFactory");
|
6
|
+
var dropTable_1 = require("./dropTable");
|
7
|
+
var spannerDriver = new SpannerDriver_1.SpannerDriver({
|
8
|
+
projectId: 'proteinjs-test',
|
9
|
+
instanceName: 'proteinjs-test',
|
10
|
+
databaseName: 'test',
|
11
|
+
});
|
12
|
+
describe('Table Manager Tests', (0, db_1.tableManagerTests)(spannerDriver, (0, dropTable_1.getDropTable)(spannerDriver), new SpannerColumnTypeFactory_1.SpannerColumnTypeFactory().getType, {
|
13
|
+
alterColumnName: true,
|
14
|
+
alterColumnTypes: true,
|
15
|
+
alterNullableConstraint: true,
|
16
|
+
}));
|
17
|
+
//# sourceMappingURL=TableManager.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TableManager.test.js","sourceRoot":"","sources":["../../test/TableManager.test.ts"],"names":[],"mappings":";;AAAA,oCAAiD;AACjD,sDAAoD;AACpD,4EAA2E;AAC3E,yCAA2C;AAE3C,IAAM,aAAa,GAAG,IAAI,6BAAa,CAAC;IACvC,SAAS,EAAE,gBAAgB;IAC3B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,MAAM;CACpB,CAAC,CAAC;AAEH,QAAQ,CACP,qBAAqB,EACrB,IAAA,sBAAiB,EAChB,aAAa,EACb,IAAA,wBAAY,EAAC,aAAa,CAAC,EAC3B,IAAI,mDAAwB,EAAE,CAAC,OAAO,EACtC;IACC,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,IAAI;IACtB,uBAAuB,EAAE,IAAI;CAC7B,CACD,CACD,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dropTable.d.ts","sourceRoot":"","sources":["../../test/dropTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,YAAY,kBAAmB,aAAa,aAClC,MAAM,GAAG,CAAC,kBA2BhC,CAAA"}
|