@nocobase/database 1.2.13-alpha → 1.3.0-alpha.20240710084543
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/package.json +4 -4
- package/lib/collection-factory.d.ts +0 -25
- package/lib/collection-factory.js +0 -61
- package/lib/collection-group-manager.d.ts +0 -34
- package/lib/collection-group-manager.js +0 -66
- package/lib/collection-importer.d.ts +0 -15
- package/lib/collection-importer.js +0 -83
- package/lib/collection.d.ts +0 -145
- package/lib/collection.js +0 -663
- package/lib/database-utils/index.d.ts +0 -16
- package/lib/database-utils/index.js +0 -75
- package/lib/database.d.ts +0 -228
- package/lib/database.js +0 -795
- package/lib/decorators/must-have-filter-decorator.d.ts +0 -10
- package/lib/decorators/must-have-filter-decorator.js +0 -48
- package/lib/decorators/target-collection-decorator.d.ts +0 -10
- package/lib/decorators/target-collection-decorator.js +0 -56
- package/lib/decorators/transaction-decorator.d.ts +0 -9
- package/lib/decorators/transaction-decorator.js +0 -95
- package/lib/eager-loading/eager-loading-tree.d.ts +0 -39
- package/lib/eager-loading/eager-loading-tree.js +0 -448
- package/lib/errors/identifier-error.d.ts +0 -11
- package/lib/errors/identifier-error.js +0 -44
- package/lib/errors/zero-column-table-error.d.ts +0 -10
- package/lib/errors/zero-column-table-error.js +0 -40
- package/lib/features/references-map.d.ts +0 -29
- package/lib/features/references-map.js +0 -120
- package/lib/features/referential-integrity-check.d.ts +0 -16
- package/lib/features/referential-integrity-check.js +0 -86
- package/lib/field-repository/array-field-repository.d.ts +0 -36
- package/lib/field-repository/array-field-repository.js +0 -179
- package/lib/fields/array-field.d.ts +0 -19
- package/lib/fields/array-field.js +0 -66
- package/lib/fields/belongs-to-field.d.ts +0 -25
- package/lib/fields/belongs-to-field.js +0 -166
- package/lib/fields/belongs-to-many-field.d.ts +0 -28
- package/lib/fields/belongs-to-many-field.js +0 -196
- package/lib/fields/boolean-field.d.ts +0 -16
- package/lib/fields/boolean-field.js +0 -45
- package/lib/fields/context-field.d.ts +0 -22
- package/lib/fields/context-field.js +0 -79
- package/lib/fields/date-field.d.ts +0 -21
- package/lib/fields/date-field.js +0 -73
- package/lib/fields/field.d.ts +0 -52
- package/lib/fields/field.js +0 -168
- package/lib/fields/has-inverse-field.d.ts +0 -12
- package/lib/fields/has-inverse-field.js +0 -24
- package/lib/fields/has-many-field.d.ts +0 -76
- package/lib/fields/has-many-field.js +0 -165
- package/lib/fields/has-one-field.d.ts +0 -76
- package/lib/fields/has-one-field.js +0 -159
- package/lib/fields/index.d.ts +0 -54
- package/lib/fields/index.js +0 -74
- package/lib/fields/json-field.d.ts +0 -22
- package/lib/fields/json-field.js +0 -63
- package/lib/fields/nanoid-field.d.ts +0 -22
- package/lib/fields/nanoid-field.js +0 -65
- package/lib/fields/number-field.d.ts +0 -49
- package/lib/fields/number-field.js +0 -94
- package/lib/fields/password-field.d.ts +0 -29
- package/lib/fields/password-field.js +0 -106
- package/lib/fields/radio-field.d.ts +0 -24
- package/lib/fields/radio-field.js +0 -75
- package/lib/fields/relation-field.d.ts +0 -31
- package/lib/fields/relation-field.js +0 -94
- package/lib/fields/set-field.d.ts +0 -18
- package/lib/fields/set-field.js +0 -55
- package/lib/fields/sort-field.d.ts +0 -22
- package/lib/fields/sort-field.js +0 -197
- package/lib/fields/string-field.d.ts +0 -16
- package/lib/fields/string-field.js +0 -45
- package/lib/fields/text-field.d.ts +0 -18
- package/lib/fields/text-field.js +0 -53
- package/lib/fields/time-field.d.ts +0 -16
- package/lib/fields/time-field.js +0 -45
- package/lib/fields/uid-field.d.ts +0 -21
- package/lib/fields/uid-field.js +0 -72
- package/lib/fields/uuid-field.d.ts +0 -20
- package/lib/fields/uuid-field.js +0 -63
- package/lib/fields/virtual-field.d.ts +0 -16
- package/lib/fields/virtual-field.js +0 -45
- package/lib/filter-match.d.ts +0 -9
- package/lib/filter-match.js +0 -75
- package/lib/filter-parser.d.ts +0 -29
- package/lib/filter-parser.js +0 -238
- package/lib/helpers.d.ts +0 -11
- package/lib/helpers.js +0 -182
- package/lib/index.d.ts +0 -37
- package/lib/index.js +0 -138
- package/lib/inherited-collection.d.ts +0 -22
- package/lib/inherited-collection.js +0 -147
- package/lib/inherited-map.d.ts +0 -29
- package/lib/inherited-map.js +0 -125
- package/lib/inherited-sync-runner.d.ts +0 -12
- package/lib/inherited-sync-runner.js +0 -184
- package/lib/interface-manager.d.ts +0 -17
- package/lib/interface-manager.js +0 -50
- package/lib/interfaces/base-interface.d.ts +0 -33
- package/lib/interfaces/base-interface.js +0 -80
- package/lib/interfaces/boolean-interface.d.ts +0 -13
- package/lib/interfaces/boolean-interface.js +0 -70
- package/lib/interfaces/checkboxes-interface.d.ts +0 -11
- package/lib/interfaces/checkboxes-interface.js +0 -41
- package/lib/interfaces/datetime-interface.d.ts +0 -13
- package/lib/interfaces/datetime-interface.js +0 -108
- package/lib/interfaces/index.d.ts +0 -14
- package/lib/interfaces/index.js +0 -40
- package/lib/interfaces/integer-interface.d.ts +0 -12
- package/lib/interfaces/integer-interface.js +0 -44
- package/lib/interfaces/json-interface.d.ts +0 -13
- package/lib/interfaces/json-interface.js +0 -47
- package/lib/interfaces/many-to-many-interface.d.ts +0 -11
- package/lib/interfaces/many-to-many-interface.js +0 -41
- package/lib/interfaces/many-to-one-interface.d.ts +0 -11
- package/lib/interfaces/many-to-one-interface.js +0 -41
- package/lib/interfaces/multiple-select-interface.d.ts +0 -13
- package/lib/interfaces/multiple-select-interface.js +0 -76
- package/lib/interfaces/number-interface.d.ts +0 -15
- package/lib/interfaces/number-interface.js +0 -72
- package/lib/interfaces/one-belongs-to-one-interface.d.ts +0 -11
- package/lib/interfaces/one-belongs-to-one-interface.js +0 -41
- package/lib/interfaces/one-has-one-interface.d.ts +0 -11
- package/lib/interfaces/one-has-one-interface.js +0 -41
- package/lib/interfaces/one-to-many-interface.d.ts +0 -11
- package/lib/interfaces/one-to-many-interface.js +0 -41
- package/lib/interfaces/percent-interface.d.ts +0 -13
- package/lib/interfaces/percent-interface.js +0 -55
- package/lib/interfaces/select-interface.d.ts +0 -13
- package/lib/interfaces/select-interface.js +0 -63
- package/lib/interfaces/to-many-interface.d.ts +0 -12
- package/lib/interfaces/to-many-interface.js +0 -61
- package/lib/interfaces/to-one-interface.d.ts +0 -13
- package/lib/interfaces/to-one-interface.js +0 -61
- package/lib/interfaces/utils.d.ts +0 -10
- package/lib/interfaces/utils.js +0 -72
- package/lib/listeners/adjacency-list.d.ts +0 -10
- package/lib/listeners/adjacency-list.js +0 -51
- package/lib/listeners/append-child-collection-name-after-repository-find.d.ts +0 -14
- package/lib/listeners/append-child-collection-name-after-repository-find.js +0 -75
- package/lib/listeners/index.d.ts +0 -10
- package/lib/listeners/index.js +0 -42
- package/lib/magic-attribute-model.d.ts +0 -16
- package/lib/magic-attribute-model.js +0 -213
- package/lib/migration.d.ts +0 -43
- package/lib/migration.js +0 -112
- package/lib/mock-database.d.ts +0 -33
- package/lib/mock-database.js +0 -136
- package/lib/model-hook.d.ts +0 -20
- package/lib/model-hook.js +0 -96
- package/lib/model.d.ts +0 -32
- package/lib/model.js +0 -179
- package/lib/operators/array.d.ts +0 -10
- package/lib/operators/array.js +0 -196
- package/lib/operators/association.d.ts +0 -10
- package/lib/operators/association.js +0 -44
- package/lib/operators/boolean.d.ts +0 -10
- package/lib/operators/boolean.js +0 -47
- package/lib/operators/child-collection.d.ts +0 -10
- package/lib/operators/child-collection.js +0 -77
- package/lib/operators/date.d.ts +0 -10
- package/lib/operators/date.js +0 -149
- package/lib/operators/empty.d.ts +0 -13
- package/lib/operators/empty.js +0 -102
- package/lib/operators/eq.d.ts +0 -10
- package/lib/operators/eq.js +0 -44
- package/lib/operators/index.d.ts +0 -13
- package/lib/operators/index.js +0 -63
- package/lib/operators/ne.d.ts +0 -10
- package/lib/operators/ne.js +0 -49
- package/lib/operators/notIn.d.ts +0 -10
- package/lib/operators/notIn.js +0 -42
- package/lib/operators/string.d.ts +0 -10
- package/lib/operators/string.js +0 -118
- package/lib/operators/utils.d.ts +0 -12
- package/lib/operators/utils.js +0 -53
- package/lib/options-parser.d.ts +0 -45
- package/lib/options-parser.js +0 -350
- package/lib/query-interface/mysql-query-interface.d.ts +0 -44
- package/lib/query-interface/mysql-query-interface.js +0 -134
- package/lib/query-interface/postgres-query-interface.d.ts +0 -41
- package/lib/query-interface/postgres-query-interface.js +0 -207
- package/lib/query-interface/query-interface-builder.d.ts +0 -10
- package/lib/query-interface/query-interface-builder.js +0 -55
- package/lib/query-interface/query-interface.d.ts +0 -52
- package/lib/query-interface/query-interface.js +0 -59
- package/lib/query-interface/sqlite-query-interface.d.ts +0 -44
- package/lib/query-interface/sqlite-query-interface.js +0 -141
- package/lib/relation-repository/belongs-to-many-repository.d.ts +0 -28
- package/lib/relation-repository/belongs-to-many-repository.js +0 -248
- package/lib/relation-repository/belongs-to-repository.d.ts +0 -17
- package/lib/relation-repository/belongs-to-repository.js +0 -51
- package/lib/relation-repository/hasmany-repository.d.ts +0 -21
- package/lib/relation-repository/hasmany-repository.js +0 -158
- package/lib/relation-repository/hasone-repository.d.ts +0 -17
- package/lib/relation-repository/hasone-repository.js +0 -51
- package/lib/relation-repository/multiple-relation-repository.d.ts +0 -27
- package/lib/relation-repository/multiple-relation-repository.js +0 -200
- package/lib/relation-repository/relation-repository.d.ts +0 -38
- package/lib/relation-repository/relation-repository.js +0 -175
- package/lib/relation-repository/single-relation-repository.d.ts +0 -36
- package/lib/relation-repository/single-relation-repository.js +0 -151
- package/lib/relation-repository/types.d.ts +0 -15
- package/lib/relation-repository/types.js +0 -24
- package/lib/repositories/tree-repository/adjacency-list-repository.d.ts +0 -26
- package/lib/repositories/tree-repository/adjacency-list-repository.js +0 -192
- package/lib/repositories/view-repository.d.ts +0 -11
- package/lib/repositories/view-repository.js +0 -41
- package/lib/repository.d.ts +0 -214
- package/lib/repository.js +0 -609
- package/lib/sql-parser/index.d.ts +0 -13
- package/lib/sql-parser/index.js +0 -33
- package/lib/sync-runner.d.ts +0 -41
- package/lib/sync-runner.js +0 -335
- package/lib/types.d.ts +0 -57
- package/lib/types.js +0 -24
- package/lib/update-associations.d.ts +0 -68
- package/lib/update-associations.js +0 -429
- package/lib/update-guard.d.ts +0 -36
- package/lib/update-guard.js +0 -212
- package/lib/utils.d.ts +0 -15
- package/lib/utils.js +0 -136
- package/lib/value-parsers/array-value-parser.d.ts +0 -16
- package/lib/value-parsers/array-value-parser.js +0 -67
- package/lib/value-parsers/base-value-parser.d.ts +0 -20
- package/lib/value-parsers/base-value-parser.js +0 -72
- package/lib/value-parsers/boolean-value-parser.d.ts +0 -12
- package/lib/value-parsers/boolean-value-parser.js +0 -61
- package/lib/value-parsers/date-value-parser.d.ts +0 -13
- package/lib/value-parsers/date-value-parser.js +0 -99
- package/lib/value-parsers/index.d.ts +0 -20
- package/lib/value-parsers/index.js +0 -87
- package/lib/value-parsers/json-value-parser.d.ts +0 -12
- package/lib/value-parsers/json-value-parser.js +0 -56
- package/lib/value-parsers/number-value-parser.d.ts +0 -12
- package/lib/value-parsers/number-value-parser.js +0 -67
- package/lib/value-parsers/string-value-parser.d.ts +0 -16
- package/lib/value-parsers/string-value-parser.js +0 -73
- package/lib/value-parsers/to-many-value-parser.d.ts +0 -21
- package/lib/value-parsers/to-many-value-parser.js +0 -117
- package/lib/value-parsers/to-one-value-parser.d.ts +0 -12
- package/lib/value-parsers/to-one-value-parser.js +0 -57
- package/lib/view/field-type-map.d.ts +0 -109
- package/lib/view/field-type-map.js +0 -101
- package/lib/view/view-inference.d.ts +0 -40
- package/lib/view/view-inference.js +0 -157
- package/lib/view-collection.d.ts +0 -14
- package/lib/view-collection.js +0 -54
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
var __create = Object.create;
|
|
11
|
-
var __defProp = Object.defineProperty;
|
|
12
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
13
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
14
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
15
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
16
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
17
|
-
var __export = (target, all) => {
|
|
18
|
-
for (var name in all)
|
|
19
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
20
|
-
};
|
|
21
|
-
var __copyProps = (to, from, except, desc) => {
|
|
22
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
23
|
-
for (let key of __getOwnPropNames(from))
|
|
24
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
25
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
26
|
-
}
|
|
27
|
-
return to;
|
|
28
|
-
};
|
|
29
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
30
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
31
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
32
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
33
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
34
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
35
|
-
mod
|
|
36
|
-
));
|
|
37
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
38
|
-
var mysql_query_interface_exports = {};
|
|
39
|
-
__export(mysql_query_interface_exports, {
|
|
40
|
-
default: () => MysqlQueryInterface
|
|
41
|
-
});
|
|
42
|
-
module.exports = __toCommonJS(mysql_query_interface_exports);
|
|
43
|
-
var import_sql_parser = __toESM(require("../sql-parser"));
|
|
44
|
-
var import_query_interface = __toESM(require("./query-interface"));
|
|
45
|
-
/* istanbul ignore file -- @preserve */
|
|
46
|
-
const _MysqlQueryInterface = class _MysqlQueryInterface extends import_query_interface.default {
|
|
47
|
-
constructor(db) {
|
|
48
|
-
super(db);
|
|
49
|
-
}
|
|
50
|
-
async collectionTableExists(collection, options) {
|
|
51
|
-
const transaction = options == null ? void 0 : options.transaction;
|
|
52
|
-
const tableName = collection.model.tableName;
|
|
53
|
-
const databaseName = this.db.options.database;
|
|
54
|
-
const sql = `SELECT TABLE_NAME
|
|
55
|
-
FROM INFORMATION_SCHEMA.TABLES
|
|
56
|
-
WHERE TABLE_SCHEMA = '${databaseName}'
|
|
57
|
-
AND TABLE_NAME = '${tableName}'`;
|
|
58
|
-
const results = await this.db.sequelize.query(sql, { type: "SELECT", transaction });
|
|
59
|
-
return results.length > 0;
|
|
60
|
-
}
|
|
61
|
-
async listViews() {
|
|
62
|
-
const sql = `SELECT TABLE_NAME as name, VIEW_DEFINITION as definition
|
|
63
|
-
FROM information_schema.views
|
|
64
|
-
WHERE TABLE_SCHEMA = DATABASE()
|
|
65
|
-
ORDER BY TABLE_NAME;`;
|
|
66
|
-
return await this.db.sequelize.query(sql, { type: "SELECT" });
|
|
67
|
-
}
|
|
68
|
-
async viewColumnUsage(options) {
|
|
69
|
-
try {
|
|
70
|
-
const { ast } = this.parseSQL(await this.viewDef(options.viewName));
|
|
71
|
-
const columns = ast.columns;
|
|
72
|
-
const results = [];
|
|
73
|
-
for (const column of columns) {
|
|
74
|
-
if (column.expr.type === "column_ref") {
|
|
75
|
-
results.push([
|
|
76
|
-
column.as || column.expr.column,
|
|
77
|
-
{
|
|
78
|
-
column_name: column.expr.column,
|
|
79
|
-
table_name: column.expr.table
|
|
80
|
-
}
|
|
81
|
-
]);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
return Object.fromEntries(results);
|
|
85
|
-
} catch (e) {
|
|
86
|
-
this.db.logger.warn(e);
|
|
87
|
-
return {};
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
parseSQL(sql) {
|
|
91
|
-
return import_sql_parser.default.parse(sql);
|
|
92
|
-
}
|
|
93
|
-
async viewDef(viewName) {
|
|
94
|
-
const viewDefinition = await this.db.sequelize.query(`SHOW CREATE VIEW ${viewName}`, { type: "SELECT" });
|
|
95
|
-
const createView = viewDefinition[0]["Create View"];
|
|
96
|
-
const regex = /(?<=AS\s)([\s\S]*)/i;
|
|
97
|
-
const match = createView.match(regex);
|
|
98
|
-
const sql = match[0];
|
|
99
|
-
return sql;
|
|
100
|
-
}
|
|
101
|
-
async showTableDefinition(tableInfo) {
|
|
102
|
-
const { tableName } = tableInfo;
|
|
103
|
-
const sql = `SHOW CREATE TABLE ${tableName}`;
|
|
104
|
-
const results = await this.db.sequelize.query(sql, { type: "SELECT" });
|
|
105
|
-
return results[0]["Create Table"];
|
|
106
|
-
}
|
|
107
|
-
async getAutoIncrementInfo(options) {
|
|
108
|
-
const { tableInfo, fieldName, transaction } = options;
|
|
109
|
-
const sql = `SELECT AUTO_INCREMENT as currentVal
|
|
110
|
-
FROM information_schema.tables
|
|
111
|
-
WHERE table_schema = DATABASE()
|
|
112
|
-
AND table_name = '${tableInfo.tableName}';`;
|
|
113
|
-
const results = await this.db.sequelize.query(sql, { type: "SELECT", transaction });
|
|
114
|
-
let currentVal = results[0]["currentVal"];
|
|
115
|
-
if (currentVal === null) {
|
|
116
|
-
const maxSql = `SELECT MAX(\`${fieldName}\`) as currentVal
|
|
117
|
-
FROM \`${tableInfo.tableName}\`;`;
|
|
118
|
-
const maxResults = await this.db.sequelize.query(maxSql, { type: "SELECT", transaction });
|
|
119
|
-
currentVal = maxResults[0]["currentVal"];
|
|
120
|
-
}
|
|
121
|
-
return {
|
|
122
|
-
currentVal
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
async setAutoIncrementVal(options) {
|
|
126
|
-
const { tableInfo, columnName, seqName, currentVal, transaction } = options;
|
|
127
|
-
if (currentVal) {
|
|
128
|
-
const sql = `ALTER TABLE ${this.quoteIdentifier(tableInfo.tableName)} AUTO_INCREMENT = ${currentVal};`;
|
|
129
|
-
await this.db.sequelize.query(sql, { transaction });
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
__name(_MysqlQueryInterface, "MysqlQueryInterface");
|
|
134
|
-
let MysqlQueryInterface = _MysqlQueryInterface;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
import { Collection } from '../collection';
|
|
10
|
-
import QueryInterface, { TableInfo } from './query-interface';
|
|
11
|
-
import { Transaction } from 'sequelize';
|
|
12
|
-
export default class PostgresQueryInterface extends QueryInterface {
|
|
13
|
-
constructor(db: any);
|
|
14
|
-
setAutoIncrementVal(options: {
|
|
15
|
-
tableInfo: TableInfo;
|
|
16
|
-
columnName: string;
|
|
17
|
-
seqName?: string;
|
|
18
|
-
currentVal?: number;
|
|
19
|
-
transaction?: Transaction;
|
|
20
|
-
}): Promise<void>;
|
|
21
|
-
getAutoIncrementInfo(options: {
|
|
22
|
-
tableInfo: TableInfo;
|
|
23
|
-
fieldName: string;
|
|
24
|
-
transaction: Transaction;
|
|
25
|
-
}): Promise<{
|
|
26
|
-
seqName?: string;
|
|
27
|
-
currentVal: number;
|
|
28
|
-
}>;
|
|
29
|
-
collectionTableExists(collection: Collection, options?: any): Promise<any>;
|
|
30
|
-
listViews(): Promise<[unknown[], unknown]>;
|
|
31
|
-
viewDef(viewName: string): Promise<string>;
|
|
32
|
-
parseSQL(sql: string): any;
|
|
33
|
-
viewColumnUsage(options: any): Promise<{
|
|
34
|
-
[view_column_name: string]: {
|
|
35
|
-
column_name: string;
|
|
36
|
-
table_name: string;
|
|
37
|
-
table_schema?: string;
|
|
38
|
-
};
|
|
39
|
-
}>;
|
|
40
|
-
showTableDefinition(tableInfo: TableInfo): Promise<any>;
|
|
41
|
-
}
|
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
var __create = Object.create;
|
|
11
|
-
var __defProp = Object.defineProperty;
|
|
12
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
13
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
14
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
15
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
16
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
17
|
-
var __export = (target, all) => {
|
|
18
|
-
for (var name in all)
|
|
19
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
20
|
-
};
|
|
21
|
-
var __copyProps = (to, from, except, desc) => {
|
|
22
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
23
|
-
for (let key of __getOwnPropNames(from))
|
|
24
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
25
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
26
|
-
}
|
|
27
|
-
return to;
|
|
28
|
-
};
|
|
29
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
30
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
31
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
32
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
33
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
34
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
35
|
-
mod
|
|
36
|
-
));
|
|
37
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
38
|
-
var postgres_query_interface_exports = {};
|
|
39
|
-
__export(postgres_query_interface_exports, {
|
|
40
|
-
default: () => PostgresQueryInterface
|
|
41
|
-
});
|
|
42
|
-
module.exports = __toCommonJS(postgres_query_interface_exports);
|
|
43
|
-
var import_lodash = __toESM(require("lodash"));
|
|
44
|
-
var import_sql_parser = __toESM(require("../sql-parser"));
|
|
45
|
-
var import_query_interface = __toESM(require("./query-interface"));
|
|
46
|
-
const _PostgresQueryInterface = class _PostgresQueryInterface extends import_query_interface.default {
|
|
47
|
-
constructor(db) {
|
|
48
|
-
super(db);
|
|
49
|
-
}
|
|
50
|
-
async setAutoIncrementVal(options) {
|
|
51
|
-
const { tableInfo, columnName, seqName, currentVal, transaction } = options;
|
|
52
|
-
if (!seqName) {
|
|
53
|
-
throw new Error("seqName is required to set auto increment val in postgres");
|
|
54
|
-
}
|
|
55
|
-
await this.db.sequelize.query(
|
|
56
|
-
`alter table ${this.db.utils.quoteTable({
|
|
57
|
-
tableName: tableInfo.tableName,
|
|
58
|
-
schema: tableInfo.schema
|
|
59
|
-
})}
|
|
60
|
-
alter column "${columnName}" set default nextval('${seqName}')`,
|
|
61
|
-
{
|
|
62
|
-
transaction
|
|
63
|
-
}
|
|
64
|
-
);
|
|
65
|
-
if (currentVal) {
|
|
66
|
-
await this.db.sequelize.query(`select setval('${seqName}', ${currentVal})`, {
|
|
67
|
-
transaction
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
async getAutoIncrementInfo(options) {
|
|
72
|
-
const fieldName = options.fieldName || "id";
|
|
73
|
-
const tableInfo = options.tableInfo;
|
|
74
|
-
const transaction = options.transaction;
|
|
75
|
-
const sequenceNameResult = await this.db.sequelize.query(
|
|
76
|
-
`SELECT column_default
|
|
77
|
-
FROM information_schema.columns
|
|
78
|
-
WHERE table_name = '${tableInfo.tableName}'
|
|
79
|
-
and table_schema = '${tableInfo.schema || "public"}'
|
|
80
|
-
and "column_name" = '${fieldName}';`,
|
|
81
|
-
{
|
|
82
|
-
transaction
|
|
83
|
-
}
|
|
84
|
-
);
|
|
85
|
-
const columnDefault = sequenceNameResult[0][0]["column_default"];
|
|
86
|
-
const regex = new RegExp(/nextval\('(.*)'::regclass\)/);
|
|
87
|
-
const match = regex.exec(columnDefault);
|
|
88
|
-
const sequenceName = match[1];
|
|
89
|
-
const sequenceCurrentValResult = await this.db.sequelize.query(
|
|
90
|
-
`select last_value
|
|
91
|
-
from ${sequenceName}`,
|
|
92
|
-
{
|
|
93
|
-
transaction
|
|
94
|
-
}
|
|
95
|
-
);
|
|
96
|
-
const sequenceCurrentVal = parseInt(sequenceCurrentValResult[0][0]["last_value"]);
|
|
97
|
-
return {
|
|
98
|
-
seqName: sequenceName,
|
|
99
|
-
currentVal: sequenceCurrentVal
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
async collectionTableExists(collection, options) {
|
|
103
|
-
const transaction = options == null ? void 0 : options.transaction;
|
|
104
|
-
const tableName = collection.model.tableName;
|
|
105
|
-
const schema = collection.collectionSchema() || "public";
|
|
106
|
-
const sql = `SELECT EXISTS(SELECT 1
|
|
107
|
-
FROM information_schema.tables
|
|
108
|
-
WHERE table_schema = '${schema}'
|
|
109
|
-
AND table_name = '${tableName}')`;
|
|
110
|
-
const results = await this.db.sequelize.query(sql, { type: "SELECT", transaction });
|
|
111
|
-
return results[0]["exists"];
|
|
112
|
-
}
|
|
113
|
-
async listViews() {
|
|
114
|
-
const sql = `
|
|
115
|
-
SELECT viewname as name, definition, schemaname as schema
|
|
116
|
-
FROM pg_views
|
|
117
|
-
WHERE schemaname NOT IN ('pg_catalog', 'information_schema')
|
|
118
|
-
ORDER BY viewname;
|
|
119
|
-
`;
|
|
120
|
-
return await this.db.sequelize.query(sql, { type: "SELECT" });
|
|
121
|
-
}
|
|
122
|
-
async viewDef(viewName) {
|
|
123
|
-
const [schema, name] = viewName.split(".");
|
|
124
|
-
const viewDefQuery = await this.db.sequelize.query(
|
|
125
|
-
`
|
|
126
|
-
select pg_get_viewdef(format('%I.%I', '${schema}', '${name}')::regclass, true) as definition
|
|
127
|
-
`,
|
|
128
|
-
{ type: "SELECT" }
|
|
129
|
-
);
|
|
130
|
-
return import_lodash.default.trim(viewDefQuery[0]["definition"]);
|
|
131
|
-
}
|
|
132
|
-
parseSQL(sql) {
|
|
133
|
-
return import_sql_parser.default.parse(sql, {
|
|
134
|
-
database: "Postgresql"
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
async viewColumnUsage(options) {
|
|
138
|
-
const { viewName, schema = "public" } = options;
|
|
139
|
-
const sql = `
|
|
140
|
-
SELECT *
|
|
141
|
-
FROM information_schema.view_column_usage
|
|
142
|
-
WHERE view_schema = '${schema}'
|
|
143
|
-
AND view_name = '${viewName}';
|
|
144
|
-
`;
|
|
145
|
-
const columnUsages = await this.db.sequelize.query(sql, { type: "SELECT" });
|
|
146
|
-
const def = await this.viewDef(`${schema}.${viewName}`);
|
|
147
|
-
try {
|
|
148
|
-
const { ast } = this.parseSQL(def);
|
|
149
|
-
const columns = ast[0].columns;
|
|
150
|
-
const usages = columns.map((column) => {
|
|
151
|
-
const fieldAlias = column.as || column.expr.column;
|
|
152
|
-
const columnUsage = columnUsages.find((columnUsage2) => {
|
|
153
|
-
let columnExprTable = column.expr.table;
|
|
154
|
-
const from = ast[0].from;
|
|
155
|
-
if (columnExprTable === null && column.expr.type === "column_ref") {
|
|
156
|
-
columnExprTable = from[0].table;
|
|
157
|
-
} else {
|
|
158
|
-
const findAs = from.find((from2) => from2.as === columnExprTable);
|
|
159
|
-
if (findAs) {
|
|
160
|
-
columnExprTable = findAs.table;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
return columnUsage2.column_name === column.expr.column && columnUsage2.table_name === columnExprTable;
|
|
164
|
-
});
|
|
165
|
-
return [
|
|
166
|
-
fieldAlias,
|
|
167
|
-
columnUsage ? {
|
|
168
|
-
...columnUsage
|
|
169
|
-
} : null
|
|
170
|
-
];
|
|
171
|
-
}).filter(([, columnUsage]) => columnUsage !== null);
|
|
172
|
-
return Object.fromEntries(usages);
|
|
173
|
-
} catch (e) {
|
|
174
|
-
console.log(e);
|
|
175
|
-
return {};
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
async showTableDefinition(tableInfo) {
|
|
179
|
-
const showFunc = `
|
|
180
|
-
CREATE OR REPLACE FUNCTION show_create_table(p_schema text, p_table_name text)
|
|
181
|
-
RETURNS text AS
|
|
182
|
-
$BODY$
|
|
183
|
-
SELECT 'CREATE TABLE ' || quote_ident(p_schema) || '.' || quote_ident(p_table_name) || ' (' || E'\\n' || '' ||
|
|
184
|
-
string_agg(column_list.column_expr, ', ' || E'\\n' || '') ||
|
|
185
|
-
'' || E'\\n' || ');'
|
|
186
|
-
FROM (
|
|
187
|
-
SELECT ' ' || quote_ident(column_name) || ' ' || data_type ||
|
|
188
|
-
coalesce('(' || character_maximum_length || ')', '') ||
|
|
189
|
-
case when is_nullable = 'YES' then '' else ' NOT NULL' end as column_expr
|
|
190
|
-
FROM information_schema.columns
|
|
191
|
-
WHERE table_schema = p_schema AND table_name = p_table_name
|
|
192
|
-
ORDER BY ordinal_position) column_list;
|
|
193
|
-
$BODY$
|
|
194
|
-
LANGUAGE SQL STABLE;
|
|
195
|
-
`;
|
|
196
|
-
await this.db.sequelize.query(showFunc, { type: "RAW" });
|
|
197
|
-
const res = await this.db.sequelize.query(
|
|
198
|
-
`SELECT show_create_table('${tableInfo.schema || "public"}', '${tableInfo.tableName}')`,
|
|
199
|
-
{
|
|
200
|
-
type: "SELECT"
|
|
201
|
-
}
|
|
202
|
-
);
|
|
203
|
-
return res[0]["show_create_table"];
|
|
204
|
-
}
|
|
205
|
-
};
|
|
206
|
-
__name(_PostgresQueryInterface, "PostgresQueryInterface");
|
|
207
|
-
let PostgresQueryInterface = _PostgresQueryInterface;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
import Database from '../database';
|
|
10
|
-
export default function buildQueryInterface(db: Database): any;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
var __create = Object.create;
|
|
11
|
-
var __defProp = Object.defineProperty;
|
|
12
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
13
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
14
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
15
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
16
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
17
|
-
var __export = (target, all) => {
|
|
18
|
-
for (var name in all)
|
|
19
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
20
|
-
};
|
|
21
|
-
var __copyProps = (to, from, except, desc) => {
|
|
22
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
23
|
-
for (let key of __getOwnPropNames(from))
|
|
24
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
25
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
26
|
-
}
|
|
27
|
-
return to;
|
|
28
|
-
};
|
|
29
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
30
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
31
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
32
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
33
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
34
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
35
|
-
mod
|
|
36
|
-
));
|
|
37
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
38
|
-
var query_interface_builder_exports = {};
|
|
39
|
-
__export(query_interface_builder_exports, {
|
|
40
|
-
default: () => buildQueryInterface
|
|
41
|
-
});
|
|
42
|
-
module.exports = __toCommonJS(query_interface_builder_exports);
|
|
43
|
-
var import_mysql_query_interface = __toESM(require("./mysql-query-interface"));
|
|
44
|
-
var import_postgres_query_interface = __toESM(require("./postgres-query-interface"));
|
|
45
|
-
var import_sqlite_query_interface = __toESM(require("./sqlite-query-interface"));
|
|
46
|
-
function buildQueryInterface(db) {
|
|
47
|
-
const map = {
|
|
48
|
-
mysql: import_mysql_query_interface.default,
|
|
49
|
-
mariadb: import_mysql_query_interface.default,
|
|
50
|
-
postgres: import_postgres_query_interface.default,
|
|
51
|
-
sqlite: import_sqlite_query_interface.default
|
|
52
|
-
};
|
|
53
|
-
return new map[db.options.dialect](db);
|
|
54
|
-
}
|
|
55
|
-
__name(buildQueryInterface, "buildQueryInterface");
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
import { QueryInterface as SequelizeQueryInterface, Transaction, Transactionable } from 'sequelize';
|
|
10
|
-
import { Collection } from '../collection';
|
|
11
|
-
import Database from '../database';
|
|
12
|
-
export type TableInfo = {
|
|
13
|
-
tableName: string;
|
|
14
|
-
schema?: string;
|
|
15
|
-
};
|
|
16
|
-
export default abstract class QueryInterface {
|
|
17
|
-
db: Database;
|
|
18
|
-
sequelizeQueryInterface: SequelizeQueryInterface;
|
|
19
|
-
protected constructor(db: Database);
|
|
20
|
-
abstract collectionTableExists(collection: Collection, options?: Transactionable): Promise<boolean>;
|
|
21
|
-
abstract listViews(): any;
|
|
22
|
-
abstract viewDef(viewName: string): Promise<string>;
|
|
23
|
-
abstract viewColumnUsage(options: {
|
|
24
|
-
viewName: string;
|
|
25
|
-
schema?: string;
|
|
26
|
-
}): Promise<{
|
|
27
|
-
[view_column_name: string]: {
|
|
28
|
-
column_name: string;
|
|
29
|
-
table_name: string;
|
|
30
|
-
table_schema?: string;
|
|
31
|
-
};
|
|
32
|
-
}>;
|
|
33
|
-
abstract parseSQL(sql: string): any;
|
|
34
|
-
abstract showTableDefinition(tableInfo: TableInfo): Promise<any>;
|
|
35
|
-
dropAll(options: any): Promise<void>;
|
|
36
|
-
abstract getAutoIncrementInfo(options: {
|
|
37
|
-
tableInfo: TableInfo;
|
|
38
|
-
fieldName: string;
|
|
39
|
-
transaction?: Transaction;
|
|
40
|
-
}): Promise<{
|
|
41
|
-
seqName?: string;
|
|
42
|
-
currentVal: number;
|
|
43
|
-
}>;
|
|
44
|
-
abstract setAutoIncrementVal(options: {
|
|
45
|
-
tableInfo: TableInfo;
|
|
46
|
-
columnName: string;
|
|
47
|
-
seqName?: string;
|
|
48
|
-
currentVal: number;
|
|
49
|
-
transaction?: Transaction;
|
|
50
|
-
}): Promise<void>;
|
|
51
|
-
quoteIdentifier(identifier: string): any;
|
|
52
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
var __defProp = Object.defineProperty;
|
|
11
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
15
|
-
var __export = (target, all) => {
|
|
16
|
-
for (var name in all)
|
|
17
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
18
|
-
};
|
|
19
|
-
var __copyProps = (to, from, except, desc) => {
|
|
20
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
21
|
-
for (let key of __getOwnPropNames(from))
|
|
22
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
23
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
24
|
-
}
|
|
25
|
-
return to;
|
|
26
|
-
};
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
var query_interface_exports = {};
|
|
29
|
-
__export(query_interface_exports, {
|
|
30
|
-
default: () => QueryInterface
|
|
31
|
-
});
|
|
32
|
-
module.exports = __toCommonJS(query_interface_exports);
|
|
33
|
-
const _QueryInterface = class _QueryInterface {
|
|
34
|
-
constructor(db) {
|
|
35
|
-
this.db = db;
|
|
36
|
-
this.sequelizeQueryInterface = db.sequelize.getQueryInterface();
|
|
37
|
-
}
|
|
38
|
-
sequelizeQueryInterface;
|
|
39
|
-
async dropAll(options) {
|
|
40
|
-
if (options.drop !== true)
|
|
41
|
-
return;
|
|
42
|
-
const views = await this.listViews();
|
|
43
|
-
for (const view of views) {
|
|
44
|
-
let removeSql;
|
|
45
|
-
if (view.schema) {
|
|
46
|
-
removeSql = `DROP VIEW IF EXISTS "${view.schema}"."${view.name}"`;
|
|
47
|
-
} else {
|
|
48
|
-
removeSql = `DROP VIEW IF EXISTS ${view.name}`;
|
|
49
|
-
}
|
|
50
|
-
await this.db.sequelize.query(removeSql, { transaction: options.transaction });
|
|
51
|
-
}
|
|
52
|
-
await this.db.sequelize.getQueryInterface().dropAllTables(options);
|
|
53
|
-
}
|
|
54
|
-
quoteIdentifier(identifier) {
|
|
55
|
-
return this.db.sequelize.getQueryInterface().queryGenerator.quoteIdentifier(identifier);
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
__name(_QueryInterface, "QueryInterface");
|
|
59
|
-
let QueryInterface = _QueryInterface;
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
import { Collection } from '../collection';
|
|
10
|
-
import QueryInterface, { TableInfo } from './query-interface';
|
|
11
|
-
import { Transaction } from 'sequelize';
|
|
12
|
-
export default class SqliteQueryInterface extends QueryInterface {
|
|
13
|
-
constructor(db: any);
|
|
14
|
-
collectionTableExists(collection: Collection, options?: any): Promise<boolean>;
|
|
15
|
-
listViews(): Promise<[unknown[], unknown]>;
|
|
16
|
-
viewColumnUsage(options: {
|
|
17
|
-
viewName: string;
|
|
18
|
-
schema?: string;
|
|
19
|
-
}): Promise<{
|
|
20
|
-
[view_column_name: string]: {
|
|
21
|
-
column_name: string;
|
|
22
|
-
table_name: string;
|
|
23
|
-
table_schema?: string;
|
|
24
|
-
};
|
|
25
|
-
}>;
|
|
26
|
-
parseSQL(sql: string): any;
|
|
27
|
-
viewDef(viewName: string): Promise<string>;
|
|
28
|
-
showTableDefinition(tableInfo: TableInfo): Promise<any>;
|
|
29
|
-
getAutoIncrementInfo(options: {
|
|
30
|
-
tableInfo: TableInfo;
|
|
31
|
-
fieldName: string;
|
|
32
|
-
transaction: Transaction;
|
|
33
|
-
}): Promise<{
|
|
34
|
-
seqName?: string;
|
|
35
|
-
currentVal: number;
|
|
36
|
-
}>;
|
|
37
|
-
setAutoIncrementVal(options: {
|
|
38
|
-
tableInfo: TableInfo;
|
|
39
|
-
columnName: string;
|
|
40
|
-
seqName?: string;
|
|
41
|
-
currentVal: number;
|
|
42
|
-
transaction?: Transaction;
|
|
43
|
-
}): Promise<void>;
|
|
44
|
-
}
|