@l-v-yonsama/multi-platform-database-drivers 0.1.12 → 0.1.13

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.
Files changed (87) hide show
  1. package/built/src/db/DBError.js +1 -4
  2. package/built/src/db/DBError.js.map +1 -1
  3. package/built/src/db/drivers/AwsS3Driver.js +105 -131
  4. package/built/src/db/drivers/AwsS3Driver.js.map +1 -1
  5. package/built/src/db/drivers/BaseDriver.js +65 -75
  6. package/built/src/db/drivers/BaseDriver.js.map +1 -1
  7. package/built/src/db/drivers/MySQLDriver.js +179 -201
  8. package/built/src/db/drivers/MySQLDriver.js.map +1 -1
  9. package/built/src/db/drivers/PostgresDriver.js +162 -186
  10. package/built/src/db/drivers/PostgresDriver.js.map +1 -1
  11. package/built/src/db/drivers/RedisDriver.js +160 -180
  12. package/built/src/db/drivers/RedisDriver.js.map +1 -1
  13. package/built/src/db/drivers/index.js +5 -8
  14. package/built/src/db/drivers/index.js.map +1 -1
  15. package/built/src/db/index.js +3 -6
  16. package/built/src/db/index.js.map +1 -1
  17. package/built/src/db/resource/DbResource.js +43 -58
  18. package/built/src/db/resource/DbResource.js.map +1 -1
  19. package/built/src/db/resource/MultipleResultSetDataHolder.js +5 -9
  20. package/built/src/db/resource/MultipleResultSetDataHolder.js.map +1 -1
  21. package/built/src/db/resource/ResourceHelper.js +1 -5
  22. package/built/src/db/resource/ResourceHelper.js.map +1 -1
  23. package/built/src/db/resource/ResultSetDataHolder.js +33 -43
  24. package/built/src/db/resource/ResultSetDataHolder.js.map +1 -1
  25. package/built/src/db/resource/index.js +5 -8
  26. package/built/src/db/resource/index.js.map +1 -1
  27. package/built/src/db/resource/types/DBType.js +3 -6
  28. package/built/src/db/resource/types/DBType.js.map +1 -1
  29. package/built/src/db/resource/types/GeneralColumnType.js +5 -8
  30. package/built/src/db/resource/types/GeneralColumnType.js.map +1 -1
  31. package/built/src/db/resource/types/MySQLColumnType.js +7 -10
  32. package/built/src/db/resource/types/MySQLColumnType.js.map +1 -1
  33. package/built/src/db/resource/types/ODBCVendorType.js +2 -5
  34. package/built/src/db/resource/types/ODBCVendorType.js.map +1 -1
  35. package/built/src/db/resource/types/PostgresColumnType.js +6 -9
  36. package/built/src/db/resource/types/PostgresColumnType.js.map +1 -1
  37. package/built/src/db/resource/types/RedisKeyType.js +5 -8
  38. package/built/src/db/resource/types/RedisKeyType.js.map +1 -1
  39. package/built/src/db/resource/types/ResourceType.js +2 -5
  40. package/built/src/db/resource/types/ResourceType.js.map +1 -1
  41. package/built/src/db/resource/types/index.js +7 -10
  42. package/built/src/db/resource/types/index.js.map +1 -1
  43. package/built/src/index.js +3 -6
  44. package/built/src/index.js.map +1 -1
  45. package/built/src/service/DBAccessService.js +246 -273
  46. package/built/src/service/DBAccessService.js.map +1 -1
  47. package/built/src/service/DBDriverResolver.js +32 -36
  48. package/built/src/service/DBDriverResolver.js.map +1 -1
  49. package/built/src/service/SQLService.js +3 -8
  50. package/built/src/service/SQLService.js.map +1 -1
  51. package/built/src/service/index.js +5 -8
  52. package/built/src/service/index.js.map +1 -1
  53. package/built/src/service/request/RedisRequest.js +2 -5
  54. package/built/src/service/request/RedisRequest.js.map +1 -1
  55. package/built/src/service/request/S3Request.js +2 -5
  56. package/built/src/service/request/S3Request.js.map +1 -1
  57. package/built/src/service/request/index.js +2 -5
  58. package/built/src/service/request/index.js.map +1 -1
  59. package/built/src/service/response/GeneralDBResponse.js +1 -2
  60. package/built/src/service/response/GeneralResponse.js +1 -5
  61. package/built/src/service/response/GeneralResponse.js.map +1 -1
  62. package/built/src/service/response/index.js +2 -5
  63. package/built/src/service/response/index.js.map +1 -1
  64. package/built/src/service/response/reply/ConnectionResult.js +1 -2
  65. package/built/src/service/response/reply/FileExportReply.js +4 -8
  66. package/built/src/service/response/reply/FileExportReply.js.map +1 -1
  67. package/built/src/service/response/reply/FileProcessResult.js +3 -7
  68. package/built/src/service/response/reply/FileProcessResult.js.map +1 -1
  69. package/built/src/service/response/reply/GeneralReply.js +1 -4
  70. package/built/src/service/response/reply/GeneralReply.js.map +1 -1
  71. package/built/src/service/response/reply/OutputReply.js +4 -8
  72. package/built/src/service/response/reply/OutputReply.js.map +1 -1
  73. package/built/src/service/response/reply/ProgressReply.js +2 -6
  74. package/built/src/service/response/reply/ProgressReply.js.map +1 -1
  75. package/built/src/service/response/reply/types/FileExportType.js +2 -5
  76. package/built/src/service/response/reply/types/FileExportType.js.map +1 -1
  77. package/built/src/service/response/reply/types/OutputType.js +2 -5
  78. package/built/src/service/response/reply/types/OutputType.js.map +1 -1
  79. package/built/src/service/response/reply/types/ReplyEventType.js +2 -5
  80. package/built/src/service/response/reply/types/ReplyEventType.js.map +1 -1
  81. package/built/src/types/DateModifiedType.js +3 -6
  82. package/built/src/types/DateModifiedType.js.map +1 -1
  83. package/built/src/types/FileKindType.js +3 -6
  84. package/built/src/types/FileKindType.js.map +1 -1
  85. package/built/src/types/index.js +2 -5
  86. package/built/src/types/index.js.map +1 -1
  87. package/package.json +2 -1
@@ -1,14 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const BaseDriver_1 = tslib_1.__importDefault(require("./BaseDriver"));
5
- const ResultSetDataHolder_1 = tslib_1.__importStar(require("../resource/ResultSetDataHolder"));
6
- const DbResource_1 = require("../resource/DbResource");
7
- const pg_1 = tslib_1.__importDefault(require("pg"));
8
- const PostgresColumnType_1 = require("../resource/types/PostgresColumnType");
9
- const enum_values_1 = require("enum-values");
10
- const GeneralColumnType_1 = require("../resource/types/GeneralColumnType");
11
- class PostgresDriver extends BaseDriver_1.default {
1
+ import BaseDriver from './BaseDriver';
2
+ import ResultSetDataHolder, { RdhKey } from '../resource/ResultSetDataHolder';
3
+ import { DbDatabase, DbSchema, DbTable, DbColumn, } from '../resource/DbResource';
4
+ import { default as pg } from 'pg';
5
+ import { PostgresColumnType } from '../resource/types/PostgresColumnType';
6
+ import { EnumValues } from 'enum-values';
7
+ import { GeneralColumnType } from '../resource/types/GeneralColumnType';
8
+ export default class PostgresDriver extends BaseDriver {
12
9
  constructor(conRes) {
13
10
  super(conRes);
14
11
  }
@@ -16,193 +13,176 @@ class PostgresDriver extends BaseDriver_1.default {
16
13
  if (fieldInfo.name.startsWith('c_')) {
17
14
  console.log(`★ ${fieldInfo.name.substring(2).toUpperCase()} = ${fieldInfo.dataTypeID}`);
18
15
  }
19
- const name = enum_values_1.EnumValues.getNameFromValue(PostgresColumnType_1.PostgresColumnType, PostgresColumnType_1.PostgresColumnType.parse(fieldInfo.dataTypeID));
20
- const key = new ResultSetDataHolder_1.RdhKey(fieldInfo.name, GeneralColumnType_1.GeneralColumnType.parse(name), super.resolveColumnComment(fieldInfo.name, resolver));
16
+ const name = EnumValues.getNameFromValue(PostgresColumnType, PostgresColumnType.parse(fieldInfo.dataTypeID));
17
+ const key = new RdhKey(fieldInfo.name, GeneralColumnType.parse(name), super.resolveColumnComment(fieldInfo.name, resolver));
21
18
  return key;
22
19
  }
23
- connectSub() {
24
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
25
- let errorReason = '';
26
- const options = Object.assign({
27
- port: 5432,
28
- host: '127.0.0.1',
29
- database: 'postgres',
30
- }, {
31
- max: 1,
32
- idleTimeoutMillis: 3000,
33
- connectionTimeoutMillis: 1000,
34
- port: this.conRes.port,
35
- host: this.conRes.host,
36
- user: this.conRes.user,
37
- password: this.conRes.password,
38
- database: this.conRes.database,
39
- });
40
- this.pool = new pg_1.default.Pool(options);
41
- errorReason = yield this.test();
42
- return errorReason;
20
+ async connectSub() {
21
+ let errorReason = '';
22
+ const options = Object.assign({
23
+ port: 5432,
24
+ host: '127.0.0.1',
25
+ database: 'postgres',
26
+ }, {
27
+ max: 1,
28
+ idleTimeoutMillis: 3000,
29
+ connectionTimeoutMillis: 1000,
30
+ port: this.conRes.port,
31
+ host: this.conRes.host,
32
+ user: this.conRes.user,
33
+ password: this.conRes.password,
34
+ database: this.conRes.database,
43
35
  });
36
+ this.pool = new pg.Pool(options);
37
+ errorReason = await this.test();
38
+ return errorReason;
44
39
  }
45
- test(with_connect = false) {
46
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
47
- let errorReason = '';
48
- try {
49
- if (with_connect) {
50
- errorReason = yield this.connect();
51
- }
52
- const rdh = yield this.requestSql('SELECT NOW()');
53
- if (rdh && rdh.errorMessage) {
54
- errorReason = rdh.errorMessage;
55
- }
40
+ async test(with_connect = false) {
41
+ let errorReason = '';
42
+ try {
43
+ if (with_connect) {
44
+ errorReason = await this.connect();
56
45
  }
57
- catch (e) {
58
- errorReason = e.message;
46
+ const rdh = await this.requestSql('SELECT NOW()');
47
+ if (rdh && rdh.errorMessage) {
48
+ errorReason = rdh.errorMessage;
59
49
  }
60
- finally {
61
- if (with_connect) {
62
- yield this.disconnect();
63
- }
50
+ }
51
+ catch (e) {
52
+ errorReason = e.message;
53
+ }
54
+ finally {
55
+ if (with_connect) {
56
+ await this.disconnect();
64
57
  }
65
- return errorReason;
66
- });
58
+ }
59
+ return errorReason;
67
60
  }
68
- requestSql(sql, options) {
69
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
70
- let rdh = new ResultSetDataHolder_1.default([]);
71
- try {
72
- let binds = [];
73
- if (options && options.binds) {
74
- binds = options.binds;
75
- }
76
- const results = yield this.pool.query(sql, binds);
77
- if (results) {
78
- let resolver;
79
- if (options && options.needs_column_resolve === true) {
80
- resolver = this.createColumnResolver(sql);
81
- }
82
- const fields = results.fields;
83
- rdh = new ResultSetDataHolder_1.default(fields === undefined
84
- ? []
85
- : fields.map((f) => this.fieldInfo2Key(f, resolver)));
86
- if (results.rows) {
87
- results.rows.forEach((result) => {
88
- rdh.addRow(result);
89
- });
90
- }
91
- }
61
+ async requestSql(sql, options) {
62
+ let rdh = new ResultSetDataHolder([]);
63
+ try {
64
+ let binds = [];
65
+ if (options && options.binds) {
66
+ binds = options.binds;
92
67
  }
93
- catch (err) {
94
- rdh = ResultSetDataHolder_1.default.create(err);
95
- }
96
- return rdh;
97
- });
98
- }
99
- countTables(tables, options) {
100
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
101
- const list = new Array();
102
- let counter = 1;
103
- for (const st of tables.list) {
104
- let prefix = '';
105
- if (st.schema) {
106
- prefix = st.schema + '.';
107
- }
108
- if (options && options.progress_callback) {
109
- if (counter % 5 === 0) {
110
- options.progress_callback(`Count ${prefix}${st.table}`, 70);
111
- }
68
+ const results = await this.pool.query(sql, binds);
69
+ if (results) {
70
+ let resolver;
71
+ if (options && options.needs_column_resolve === true) {
72
+ resolver = this.createColumnResolver(sql);
112
73
  }
113
- const sql = `SELECT COUNT(*) as count FROM ${prefix}${st.table}`;
114
- try {
115
- const results = yield this.pool.query(sql, []);
116
- if (results && results.rows && results.rows.length > 0) {
117
- const row = results.rows[0];
118
- const obj = Object.assign({ count: row.count }, st);
119
- list.push(obj);
120
- }
74
+ const fields = results.fields;
75
+ rdh = new ResultSetDataHolder(fields === undefined
76
+ ? []
77
+ : fields.map((f) => this.fieldInfo2Key(f, resolver)));
78
+ if (results.rows) {
79
+ results.rows.forEach((result) => {
80
+ rdh.addRow(result);
81
+ });
121
82
  }
122
- catch (e) { }
123
- counter++;
124
83
  }
125
- return list;
126
- });
84
+ }
85
+ catch (err) {
86
+ rdh = ResultSetDataHolder.create(err);
87
+ }
88
+ return rdh;
127
89
  }
128
- getInfomationSchemas(options) {
129
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
130
- if (!this.conRes) {
131
- return [];
90
+ async countTables(tables, options) {
91
+ const list = new Array();
92
+ let counter = 1;
93
+ for (const st of tables.list) {
94
+ let prefix = '';
95
+ if (st.schema) {
96
+ prefix = st.schema + '.';
132
97
  }
133
- const dbResources = new Array();
134
- const db_list = yield this.asyncGetDatabases(this.conRes.database);
135
- db_list.forEach((db) => dbResources.push(db));
136
- const dbDatabase = db_list.find((d) => d.name === this.conRes.database);
137
- const dbSchemas = yield this.getSchemas(dbDatabase);
138
- dbSchemas.forEach((res) => {
139
- dbDatabase.addChild(res);
140
- });
141
- this.resetDefaultSchema(dbDatabase);
142
- for (const dbSchema of dbSchemas) {
143
- const dbTables = yield this.getTables(dbSchema);
144
- dbTables.forEach((res) => dbSchema.addChild(res));
98
+ if (options && options.progress_callback) {
99
+ if (counter % 5 === 0) {
100
+ options.progress_callback(`Count ${prefix}${st.table}`, 70);
101
+ }
145
102
  }
146
- for (const dbSchema of dbSchemas) {
147
- for (const dbTable of dbSchema.getChildren()) {
148
- const dbColumns = yield this.getColumns(dbTable);
149
- dbColumns.forEach((res) => dbTable.addChild(res));
103
+ const sql = `SELECT COUNT(*) as count FROM ${prefix}${st.table}`;
104
+ try {
105
+ const results = await this.pool.query(sql, []);
106
+ if (results && results.rows && results.rows.length > 0) {
107
+ const row = results.rows[0];
108
+ const obj = Object.assign({ count: row.count }, st);
109
+ list.push(obj);
150
110
  }
151
111
  }
152
- return dbResources;
112
+ catch (e) { }
113
+ counter++;
114
+ }
115
+ return list;
116
+ }
117
+ async getInfomationSchemas(options) {
118
+ if (!this.conRes) {
119
+ return [];
120
+ }
121
+ const dbResources = new Array();
122
+ const db_list = await this.asyncGetDatabases(this.conRes.database);
123
+ db_list.forEach((db) => dbResources.push(db));
124
+ const dbDatabase = db_list.find((d) => d.name === this.conRes.database);
125
+ const dbSchemas = await this.getSchemas(dbDatabase);
126
+ dbSchemas.forEach((res) => {
127
+ dbDatabase.addChild(res);
153
128
  });
129
+ this.resetDefaultSchema(dbDatabase);
130
+ for (const dbSchema of dbSchemas) {
131
+ const dbTables = await this.getTables(dbSchema);
132
+ dbTables.forEach((res) => dbSchema.addChild(res));
133
+ }
134
+ for (const dbSchema of dbSchemas) {
135
+ for (const dbTable of dbSchema.getChildren()) {
136
+ const dbColumns = await this.getColumns(dbTable);
137
+ dbColumns.forEach((res) => dbTable.addChild(res));
138
+ }
139
+ }
140
+ return dbResources;
154
141
  }
155
- asyncGetDatabases(connection_database) {
156
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
157
- const rdh = yield this
158
- .requestSql(`SELECT datname AS name, pg_encoding_to_char(encoding) AS comment
142
+ async asyncGetDatabases(connection_database) {
143
+ const rdh = await this
144
+ .requestSql(`SELECT datname AS name, pg_encoding_to_char(encoding) AS comment
159
145
  FROM pg_database ORDER BY datname`);
160
- return rdh.rows.map((r) => {
161
- const res = new DbResource_1.DbDatabase(r.values.name);
162
- res.comment = r.values.comment;
163
- res.disabled = res.name !== connection_database;
164
- return res;
165
- });
146
+ return rdh.rows.map((r) => {
147
+ const res = new DbDatabase(r.values.name);
148
+ res.comment = r.values.comment;
149
+ res.disabled = res.name !== connection_database;
150
+ return res;
166
151
  });
167
152
  }
168
- getSchemas(dbDatabase) {
169
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
170
- const rdh = yield this.requestSql(`SELECT SCHEMA_NAME AS name
153
+ async getSchemas(dbDatabase) {
154
+ const rdh = await this.requestSql(`SELECT SCHEMA_NAME AS name
171
155
  FROM INFORMATION_SCHEMA.SCHEMATA
172
156
  WHERE LOWER(SCHEMA_NAME) NOT IN ('information_schema', 'sys', 'performance_schema', 'pg_catalog', 'pg_toast', 'pg_temp_1', 'pg_toast_temp_1')
173
157
  ORDER BY name`);
174
- return rdh.rows.map((r) => {
175
- const res = new DbResource_1.DbSchema(r.values.name);
176
- return res;
177
- });
158
+ return rdh.rows.map((r) => {
159
+ const res = new DbSchema(r.values.name);
160
+ return res;
178
161
  });
179
162
  }
180
- getTables(dbSchema) {
181
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
182
- let rdh = yield this
183
- .requestSql(`select quote_ident(m.relname) as qname, COALESCE(d.description, '') as comment
163
+ async getTables(dbSchema) {
164
+ let rdh = await this
165
+ .requestSql(`select quote_ident(m.relname) as qname, COALESCE(d.description, '') as comment
184
166
  from pg_stat_all_tables as m
185
167
  LEFT JOIN pg_description as d ON (m.relid = d.objoid AND d.objsubid=0)
186
168
  WHERE m.schemaname='${dbSchema.getName()}'
187
169
  ORDER BY m.relname`);
188
- const list = rdh.rows.map((r) => {
189
- const res = new DbResource_1.DbTable(r.values.qname, 'TABLE', r.values.comment);
190
- return res;
191
- });
192
- rdh = yield this
193
- .requestSql(`select quote_ident(viewname) as qname, definition from pg_catalog.pg_views
170
+ const list = rdh.rows.map((r) => {
171
+ const res = new DbTable(r.values.qname, 'TABLE', r.values.comment);
172
+ return res;
173
+ });
174
+ rdh = await this
175
+ .requestSql(`select quote_ident(viewname) as qname, definition from pg_catalog.pg_views
194
176
  where schemaname = '${dbSchema.getName()}'
195
177
  order by viewname`);
196
- return list.concat(rdh.rows.map((r) => {
197
- const res = new DbResource_1.DbTable(r.values.qname, 'VIEW', '');
198
- return res;
199
- }));
200
- });
178
+ return list.concat(rdh.rows.map((r) => {
179
+ const res = new DbTable(r.values.qname, 'VIEW', '');
180
+ return res;
181
+ }));
201
182
  }
202
- getColumns(dbTable) {
203
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
204
- const binds = [dbTable.getParent().getName(), dbTable.getName()];
205
- const rdh = yield this.requestSql(`select
183
+ async getColumns(dbTable) {
184
+ const binds = [dbTable.getParent().getName(), dbTable.getName()];
185
+ const rdh = await this.requestSql(`select
206
186
  col.COLUMN_NAME as name,
207
187
  quote_ident(col.COLUMN_NAME) as qname,
208
188
  data_type as col_type,
@@ -255,31 +235,27 @@ class PostgresDriver extends BaseDriver_1.default {
255
235
  col.table_schema = $1 AND quote_ident(col.table_name) = $2
256
236
  order by
257
237
  col.ordinal_position`, { binds });
258
- return rdh.rows.map((r) => {
259
- const type_name = enum_values_1.EnumValues.getNameFromValue(PostgresColumnType_1.PostgresColumnType, PostgresColumnType_1.PostgresColumnType.parse(r.values.col_type));
260
- const res = new DbResource_1.DbColumn(r.values.qname, GeneralColumnType_1.GeneralColumnType.parse(type_name), {
261
- nullable: r.values.nullable === 1,
262
- key: r.values.col_key,
263
- default: r.values.col_default,
264
- extra: r.values.col_extra,
265
- }, r.values.comment);
266
- return res;
267
- });
238
+ return rdh.rows.map((r) => {
239
+ const type_name = EnumValues.getNameFromValue(PostgresColumnType, PostgresColumnType.parse(r.values.col_type));
240
+ const res = new DbColumn(r.values.qname, GeneralColumnType.parse(type_name), {
241
+ nullable: r.values.nullable === 1,
242
+ key: r.values.col_key,
243
+ default: r.values.col_default,
244
+ extra: r.values.col_extra,
245
+ }, r.values.comment);
246
+ return res;
268
247
  });
269
248
  }
270
- closeSub() {
271
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
272
- try {
273
- if (this.pool) {
274
- yield this.pool.end();
275
- }
276
- return '';
249
+ async closeSub() {
250
+ try {
251
+ if (this.pool) {
252
+ await this.pool.end();
277
253
  }
278
- catch (e) {
279
- return e.message;
280
- }
281
- });
254
+ return '';
255
+ }
256
+ catch (e) {
257
+ return e.message;
258
+ }
282
259
  }
283
260
  }
284
- exports.default = PostgresDriver;
285
261
  //# sourceMappingURL=PostgresDriver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresDriver.js","sourceRoot":"","sources":["../../../../src/db/drivers/PostgresDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgresDriver.js","sourceRoot":"","sources":["../../../../src/db/drivers/PostgresDriver.ts"],"names":[],"mappings":"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"}