dbgate-types 6.1.6 → 6.2.0

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/dbinfo.d.ts CHANGED
@@ -163,7 +163,7 @@ export interface SchedulerEventInfo extends SqlObjectInfo {
163
163
  onCompletion: 'PRESERVE' | 'NOT PRESERVE';
164
164
  status: 'ENABLED' | 'DISABLED';
165
165
  lastExecuted?: string;
166
- intervalValue: number;
166
+ intervalValue: string;
167
167
  intervalField: string;
168
168
  starts: string;
169
169
  executeAt: string;
@@ -189,3 +189,34 @@ export interface DatabaseInfoObjects {
189
189
  export interface DatabaseInfo extends DatabaseInfoObjects {
190
190
  engine?: string;
191
191
  }
192
+
193
+ export interface ColumnReferenceTiny {
194
+ n: string; // name
195
+ r?: string; // ref name
196
+ }
197
+
198
+ export interface PrimaryKeyInfoTiny {
199
+ c: ColumnReferenceTiny[]; // columns
200
+ }
201
+
202
+ export interface ForeignKeyInfoTiny {
203
+ c: ColumnReferenceTiny[]; // columns
204
+ r: string; // reference table name
205
+ }
206
+
207
+ export interface ColumnInfoTiny {
208
+ n: string; // name
209
+ t: string; // type
210
+ }
211
+
212
+ export interface TableInfoTiny {
213
+ n: string; //name
214
+ o: string; // comment
215
+ c: ColumnInfoTiny[]; // columns
216
+ p?: PrimaryKeyInfoTiny; // primary key
217
+ f?: ForeignKeyInfoTiny[]; // foreign keys
218
+ }
219
+
220
+ export interface DatabaseInfoTiny {
221
+ t: TableInfoTiny[]; // tables
222
+ }
package/dialect.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { ColumnInfo } from './dbinfo';
2
+
1
3
  export interface SqlDialect {
2
4
  rangeSelect?: boolean;
3
5
  limitSelect?: boolean;
@@ -6,6 +8,7 @@ export interface SqlDialect {
6
8
  topRecords?: boolean;
7
9
  stringEscapeChar: string;
8
10
  offsetFetchRangeSyntax?: boolean;
11
+ offsetNotSupported?: boolean;
9
12
  quoteIdentifier(s: string): string;
10
13
  fallbackDataType?: string;
11
14
  explicitDropConstraint?: boolean;
@@ -44,7 +47,14 @@ export interface SqlDialect {
44
47
  omitForeignKeys?: boolean;
45
48
  omitUniqueConstraints?: boolean;
46
49
  omitIndexes?: boolean;
50
+ omitTableAliases?: boolean;
51
+ omitTableBeforeColumn?: boolean;
52
+ disableAutoIncrement?: boolean;
53
+ disableNonPrimaryKeyRename?: boolean;
54
+ disableRenameTable?: boolean;
55
+ defaultNewTableColumns?: ColumnInfo[];
47
56
  sortingKeys?: boolean;
57
+ generateDefaultValueForUuid?: string;
48
58
 
49
59
  // syntax for create column: ALTER TABLE table ADD COLUMN column
50
60
  createColumnWithColumnKeyword?: boolean;
package/dumper.d.ts CHANGED
@@ -11,7 +11,7 @@ export interface SqlDumper extends AlterProcessor {
11
11
  putRaw(s: string);
12
12
  put(format: string, ...args);
13
13
  putCmd(format: string, ...args);
14
- putValue(value: string | number | Date);
14
+ putValue(value: string | number | Date, dataType?: string);
15
15
  putCollection<T>(delimiter: string, collection: T[], lambda: (item: T) => void);
16
16
  transform(type: TransformType, dumpExpr: () => void);
17
17
  createDatabase(name: string);
package/engines.d.ts CHANGED
@@ -32,6 +32,7 @@ export interface RunScriptOptions {
32
32
  export interface QueryOptions {
33
33
  discardResult?: boolean;
34
34
  importSqlDump?: boolean;
35
+ range?: { offset: number; limit: number };
35
36
  }
36
37
 
37
38
  export interface WriteTableOptions {
@@ -133,8 +134,8 @@ export interface FilterBehaviourProvider {
133
134
  getFilterBehaviour(dataType: string, standardFilterBehaviours: { [id: string]: FilterBehaviour }): FilterBehaviour;
134
135
  }
135
136
 
136
- export interface DatabaseHandle {
137
- client: any;
137
+ export interface DatabaseHandle<TClient = any> {
138
+ client: TClient;
138
139
  database?: string;
139
140
  feedback?: (message: any) => void;
140
141
  getDatabase?: () => any;
@@ -142,7 +143,7 @@ export interface DatabaseHandle {
142
143
  treeKeySeparator?: string;
143
144
  }
144
145
 
145
- export interface EngineDriver extends FilterBehaviourProvider {
146
+ export interface EngineDriver<TClient = any> extends FilterBehaviourProvider {
146
147
  engine: string;
147
148
  title: string;
148
149
  defaultPort?: number;
@@ -180,57 +181,68 @@ export interface EngineDriver extends FilterBehaviourProvider {
180
181
  beforeConnectionSave?: (values: any) => any;
181
182
  databaseUrlPlaceholder?: string;
182
183
  defaultAuthTypeName?: string;
184
+ defaultLocalDataCenter?: string;
183
185
  defaultSocketPath?: string;
184
186
  authTypeLabel?: string;
185
187
  importExportArgs?: any[];
186
- connect({ server, port, user, password, database }): Promise<DatabaseHandle>;
187
- close(dbhan: DatabaseHandle): Promise<any>;
188
- query(dbhan: DatabaseHandle, sql: string, options?: QueryOptions): Promise<QueryResult>;
189
- stream(dbhan: DatabaseHandle, sql: string, options: StreamOptions);
190
- readQuery(dbhan: DatabaseHandle, sql: string, structure?: TableInfo): Promise<stream.Readable>;
191
- readJsonQuery(dbhan: DatabaseHandle, query: any, structure?: TableInfo): Promise<stream.Readable>;
188
+ connect({ server, port, user, password, database }): Promise<DatabaseHandle<TClient>>;
189
+ close(dbhan: DatabaseHandle<TClient>): Promise<any>;
190
+ query(dbhan: DatabaseHandle<TClient>, sql: string, options?: QueryOptions): Promise<QueryResult>;
191
+ stream(dbhan: DatabaseHandle<TClient>, sql: string, options: StreamOptions);
192
+ readQuery(dbhan: DatabaseHandle<TClient>, sql: string, structure?: TableInfo): Promise<stream.Readable>;
193
+ readJsonQuery(dbhan: DatabaseHandle<TClient>, query: any, structure?: TableInfo): Promise<stream.Readable>;
192
194
  // eg. PostgreSQL COPY FROM stdin
193
- writeQueryFromStream(dbhan: DatabaseHandle, sql: string): Promise<stream.Writable>;
194
- writeTable(dbhan: DatabaseHandle, name: NamedObjectInfo, options: WriteTableOptions): Promise<stream.Writable>;
195
+ writeQueryFromStream(dbhan: DatabaseHandle<TClient>, sql: string): Promise<stream.Writable>;
196
+ writeTable(
197
+ dbhan: DatabaseHandle<TClient>,
198
+ name: NamedObjectInfo,
199
+ options: WriteTableOptions
200
+ ): Promise<stream.Writable>;
195
201
  analyseSingleObject(
196
- dbhan: DatabaseHandle,
202
+ dbhan: DatabaseHandle<TClient>,
197
203
  name: NamedObjectInfo,
198
204
  objectTypeField: keyof DatabaseInfo
199
205
  ): Promise<TableInfo | ViewInfo | ProcedureInfo | FunctionInfo | TriggerInfo>;
200
- analyseSingleTable(dbhan: DatabaseHandle, name: NamedObjectInfo): Promise<TableInfo>;
201
- getVersion(dbhan: DatabaseHandle): Promise<{ version: string; versionText?: string }>;
202
- listDatabases(dbhan: DatabaseHandle): Promise<
206
+ analyseSingleTable(dbhan: DatabaseHandle<TClient>, name: NamedObjectInfo): Promise<TableInfo>;
207
+ getVersion(dbhan: DatabaseHandle<TClient>): Promise<{ version: string; versionText?: string }>;
208
+ listDatabases(dbhan: DatabaseHandle<TClient>): Promise<
203
209
  {
204
210
  name: string;
205
211
  }[]
206
212
  >;
207
- loadKeys(dbhan: DatabaseHandle, root: string, filter?: string): Promise;
208
- exportKeys(dbhan: DatabaseHandle, options: {}): Promise;
209
- loadKeyInfo(dbhan: DatabaseHandle, key): Promise;
210
- loadKeyTableRange(dbhan: DatabaseHandle, key, cursor, count): Promise;
211
- loadFieldValues(dbhan: DatabaseHandle, name: NamedObjectInfo, field: string, search: string): Promise;
212
- analyseFull(dbhan: DatabaseHandle, serverVersion): Promise<DatabaseInfo>;
213
- analyseIncremental(dbhan: DatabaseHandle, structure: DatabaseInfo, serverVersion): Promise<DatabaseInfo>;
213
+ loadKeys(dbhan: DatabaseHandle<TClient>, root: string, filter?: string): Promise;
214
+ exportKeys(dbhan: DatabaseHandle<TClient>, options: {}): Promise;
215
+ loadKeyInfo(dbhan: DatabaseHandle<TClient>, key): Promise;
216
+ loadKeyTableRange(dbhan: DatabaseHandle<TClient>, key, cursor, count): Promise;
217
+ loadFieldValues(
218
+ dbhan: DatabaseHandle<TClient>,
219
+ name: NamedObjectInfo,
220
+ field: string,
221
+ search: string,
222
+ dataType: string
223
+ ): Promise;
224
+ analyseFull(dbhan: DatabaseHandle<TClient>, serverVersion): Promise<DatabaseInfo>;
225
+ analyseIncremental(dbhan: DatabaseHandle<TClient>, structure: DatabaseInfo, serverVersion): Promise<DatabaseInfo>;
214
226
  dialect: SqlDialect;
215
227
  dialectByVersion(version): SqlDialect;
216
228
  createDumper(options = null): SqlDumper;
217
- createBackupDumper(dbhan: DatabaseHandle, options): Promise<SqlBackupDumper>;
229
+ createBackupDumper(dbhan: DatabaseHandle<TClient>, options): Promise<SqlBackupDumper>;
218
230
  getAuthTypes(): EngineAuthType[];
219
- readCollection(dbhan: DatabaseHandle, options: ReadCollectionOptions): Promise<any>;
220
- updateCollection(dbhan: DatabaseHandle, changeSet: any): Promise<any>;
231
+ readCollection(dbhan: DatabaseHandle<TClient>, options: ReadCollectionOptions): Promise<any>;
232
+ updateCollection(dbhan: DatabaseHandle<TClient>, changeSet: any): Promise<any>;
221
233
  getCollectionUpdateScript(changeSet: any, collectionInfo: CollectionInfo): string;
222
- createDatabase(dbhan: DatabaseHandle, name: string): Promise;
223
- dropDatabase(dbhan: DatabaseHandle, name: string): Promise;
234
+ createDatabase(dbhan: DatabaseHandle<TClient>, name: string): Promise;
235
+ dropDatabase(dbhan: DatabaseHandle<TClient>, name: string): Promise;
224
236
  getQuerySplitterOptions(usage: 'stream' | 'script' | 'editor' | 'import'): any;
225
- script(dbhan: DatabaseHandle, sql: string, options?: RunScriptOptions): Promise;
226
- operation(dbhan: DatabaseHandle, operation: {}, options?: RunScriptOptions): Promise;
237
+ script(dbhan: DatabaseHandle<TClient>, sql: string, options?: RunScriptOptions): Promise;
238
+ operation(dbhan: DatabaseHandle<TClient>, operation: {}, options?: RunScriptOptions): Promise;
227
239
  getNewObjectTemplates(): NewObjectTemplate[];
228
240
  // direct call of dbhan.client method, only some methods could be supported, on only some drivers
229
- callMethod(dbhan: DatabaseHandle, method, args);
230
- serverSummary(dbhan: DatabaseHandle): Promise<ServerSummary>;
231
- summaryCommand(dbhan: DatabaseHandle, command, row): Promise<void>;
232
- startProfiler(dbhan: DatabaseHandle, options): Promise<any>;
233
- stopProfiler(dbhan: DatabaseHandle, profiler): Promise<void>;
241
+ callMethod(dbhan: DatabaseHandle<TClient>, method, args);
242
+ serverSummary(dbhan: DatabaseHandle<TClient>): Promise<ServerSummary>;
243
+ summaryCommand(dbhan: DatabaseHandle<TClient>, command, row): Promise<void>;
244
+ startProfiler(dbhan: DatabaseHandle<TClient>, options): Promise<any>;
245
+ stopProfiler(dbhan: DatabaseHandle<TClient>, profiler): Promise<void>;
234
246
  getRedirectAuthUrl(connection, options): Promise<{ url: string; sid: string }>;
235
247
  getAuthTokenFromCode(connection, options): Promise<string>;
236
248
  getAccessTokenFromAuth(connection, req): Promise<string | null>;
@@ -241,11 +253,11 @@ export interface EngineDriver extends FilterBehaviourProvider {
241
253
  createSaveChangeSetScript(
242
254
  changeSet: any,
243
255
  dbinfo: DatabaseInfo,
244
- defaultCreator: (changeSet: any, dbinfo: DatabaseInfo) => any
256
+ defaultCreator: (changeSet: any, dbinfo: DatabaseInfo, dialect: SqlDialect) => any
245
257
  ): any[];
246
258
  // adapts table info from different source (import, other database) to be suitable for this database
247
259
  adaptTableInfo(table: TableInfo): TableInfo;
248
- listSchemas(dbhan: DatabaseHandle): SchemaInfo[];
260
+ listSchemas(dbhan: DatabaseHandle<TClient>): SchemaInfo[];
249
261
 
250
262
  analyserClass?: any;
251
263
  dumperClass?: any;
package/index.d.ts CHANGED
@@ -48,3 +48,4 @@ export * from './extensions';
48
48
  export * from './alter-processor';
49
49
  export * from './appdefs';
50
50
  export * from './filter-type';
51
+ export * from './test-engines';
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "6.1.6",
2
+ "version": "6.2.0",
3
3
  "name": "dbgate-types",
4
4
  "homepage": "https://dbgate.org/",
5
5
  "repository": {
@@ -0,0 +1,86 @@
1
+ import { ParameterInfo, SchedulerEventInfo, TriggerInfo } from './dbinfo';
2
+
3
+ export type TestObjectInfo = {
4
+ type: string;
5
+ create1: string;
6
+ create2: string;
7
+ drop1: string;
8
+ drop2: string;
9
+ };
10
+
11
+ export type TestEngineInfo = {
12
+ label: string;
13
+ connection: {
14
+ engine: string;
15
+ server?: string;
16
+ databaseUrl?: string;
17
+ serviceName?: string;
18
+ password?: string;
19
+ user?: string;
20
+ port?: number;
21
+ };
22
+
23
+ removeNotNull?: boolean;
24
+
25
+ skipOnCI?: boolean;
26
+ skipIncrementalAnalysis?: boolean;
27
+ skipDataModifications?: boolean;
28
+ skipReferences?: boolean;
29
+ skipIndexes?: boolean;
30
+ skipNullability?: boolean;
31
+ skipUnique?: boolean;
32
+ skipAutoIncrement?: boolean;
33
+ skipPkColumnTesting?: boolean;
34
+ skipDataDuplicator?: boolean;
35
+ skipDeploy?: boolean;
36
+ skipStringLength?: boolean;
37
+ skipChangeColumn?: boolean;
38
+ skipDefaultValue?: boolean;
39
+ skipNonPkRename?: boolean;
40
+ skipPkDrop?: boolean;
41
+ skipOrderBy?: boolean;
42
+
43
+ forceSortResults?: boolean;
44
+ forceSortStructureColumns?: boolean;
45
+ alterTableAddColumnSyntax?: boolean;
46
+ dbSnapshotBySeconds?: boolean;
47
+ setNullDefaultInsteadOfDrop?: boolean;
48
+
49
+ useTextTypeForStrings?: boolean;
50
+
51
+ supportRenameSqlObject?: boolean;
52
+ supportSchemas?: boolean;
53
+
54
+ defaultSchemaName?: string;
55
+
56
+ generateDbFile?: boolean;
57
+ dbSnapshotBySeconds?: boolean;
58
+ dumpFile?: string;
59
+ dumpChecks?: Array<{ sql: string; res: string }>;
60
+
61
+ parametersOtherSql?: string[];
62
+ parameters?: Array<{
63
+ testName: string;
64
+ create: string;
65
+ drop: string;
66
+ objectTypeField: string;
67
+ list: Array<Partial<ParameterInfo>>;
68
+ }>;
69
+ triggers?: Array<{
70
+ testName: string;
71
+ create: string;
72
+ drop: string;
73
+ triggerOtherCreateSql?: string;
74
+ triggerOtherDropSql?: string;
75
+ objectTypeField: string;
76
+ expected: Partial<TriggerInfo>;
77
+ }>;
78
+ schedulerEvents?: Array<{
79
+ create: string;
80
+ drop: string;
81
+ objectTypeField: string;
82
+ expected: Partial<SchedulerEventInfo>;
83
+ }>;
84
+
85
+ objects?: Array<TestObjectInfo>;
86
+ };