velocious 1.0.567 → 1.0.568
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/README.md +29 -1
- package/build/database/drivers/base-table.js +4 -3
- package/build/database/drivers/base.js +28 -0
- package/build/database/drivers/index-metadata.js +28 -0
- package/build/database/drivers/mssql/column.js +2 -34
- package/build/database/drivers/mssql/columns-index.js +37 -0
- package/build/database/drivers/mssql/table.js +55 -11
- package/build/database/drivers/mysql/sql/alter-table.js +13 -0
- package/build/database/drivers/pgsql/column.js +2 -27
- package/build/database/drivers/pgsql/columns-index.js +37 -0
- package/build/database/drivers/pgsql/table.js +61 -10
- package/build/database/drivers/sqlite/sql/alter-table.js +18 -0
- package/build/database/migration/index.js +92 -3
- package/build/database/query/alter-table-base.js +20 -1
- package/build/database/record/attachments/normalize-input.js +38 -10
- package/build/database/record/attachments/storage-drivers/filesystem.js +33 -2
- package/build/database/record/attachments/storage-drivers/native.js +17 -2
- package/build/database/record/attachments/storage-drivers/s3.js +27 -7
- package/build/database/record/attachments/store.js +159 -43
- package/build/database/table-data/table-foreign-key.js +9 -1
- package/build/environment-handlers/base.js +1 -1
- package/build/environment-handlers/node/attachment-path-source.js +144 -0
- package/build/environment-handlers/node.js +28 -3
- package/build/src/database/drivers/base-table.d.ts.map +1 -1
- package/build/src/database/drivers/base-table.js +4 -3
- package/build/src/database/drivers/base.d.ts +7 -0
- package/build/src/database/drivers/base.d.ts.map +1 -1
- package/build/src/database/drivers/base.js +24 -1
- package/build/src/database/drivers/index-metadata.d.ts +41 -0
- package/build/src/database/drivers/index-metadata.d.ts.map +1 -0
- package/build/src/database/drivers/index-metadata.js +26 -0
- package/build/src/database/drivers/mssql/column.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/column.js +3 -31
- package/build/src/database/drivers/mssql/columns-index.d.ts +41 -0
- package/build/src/database/drivers/mssql/columns-index.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/columns-index.js +35 -1
- package/build/src/database/drivers/mssql/table.d.ts +42 -0
- package/build/src/database/drivers/mssql/table.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/table.js +49 -12
- package/build/src/database/drivers/mysql/sql/alter-table.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/sql/alter-table.js +12 -1
- package/build/src/database/drivers/pgsql/column.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/column.js +3 -24
- package/build/src/database/drivers/pgsql/columns-index.d.ts +41 -0
- package/build/src/database/drivers/pgsql/columns-index.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/columns-index.js +35 -1
- package/build/src/database/drivers/pgsql/table.d.ts +42 -0
- package/build/src/database/drivers/pgsql/table.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/table.js +54 -11
- package/build/src/database/drivers/sqlite/sql/alter-table.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/sql/alter-table.js +15 -1
- package/build/src/database/migration/index.d.ts +35 -1
- package/build/src/database/migration/index.d.ts.map +1 -1
- package/build/src/database/migration/index.js +78 -4
- package/build/src/database/query/alter-table-base.d.ts +6 -0
- package/build/src/database/query/alter-table-base.d.ts.map +1 -1
- package/build/src/database/query/alter-table-base.js +18 -2
- package/build/src/database/record/attachments/normalize-input.d.ts +33 -4
- package/build/src/database/record/attachments/normalize-input.d.ts.map +1 -1
- package/build/src/database/record/attachments/normalize-input.js +39 -11
- package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts +2 -5
- package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/filesystem.js +28 -3
- package/build/src/database/record/attachments/storage-drivers/native.d.ts +2 -6
- package/build/src/database/record/attachments/storage-drivers/native.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/native.js +14 -3
- package/build/src/database/record/attachments/storage-drivers/s3.d.ts +2 -6
- package/build/src/database/record/attachments/storage-drivers/s3.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/s3.js +29 -8
- package/build/src/database/record/attachments/store.d.ts +27 -0
- package/build/src/database/record/attachments/store.d.ts.map +1 -1
- package/build/src/database/record/attachments/store.js +144 -44
- package/build/src/database/table-data/table-foreign-key.d.ts +9 -1
- package/build/src/database/table-data/table-foreign-key.d.ts.map +1 -1
- package/build/src/database/table-data/table-foreign-key.js +9 -2
- package/build/src/environment-handlers/base.d.ts +2 -5
- package/build/src/environment-handlers/base.d.ts.map +1 -1
- package/build/src/environment-handlers/base.js +2 -2
- package/build/src/environment-handlers/node/attachment-path-source.d.ts +64 -0
- package/build/src/environment-handlers/node/attachment-path-source.d.ts.map +1 -0
- package/build/src/environment-handlers/node/attachment-path-source.js +116 -0
- package/build/src/environment-handlers/node.d.ts +12 -0
- package/build/src/environment-handlers/node.d.ts.map +1 -1
- package/build/src/environment-handlers/node.js +24 -4
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/database/drivers/base-table.js +4 -3
- package/src/database/drivers/base.js +28 -0
- package/src/database/drivers/index-metadata.js +28 -0
- package/src/database/drivers/mssql/column.js +2 -34
- package/src/database/drivers/mssql/columns-index.js +37 -0
- package/src/database/drivers/mssql/table.js +55 -11
- package/src/database/drivers/mysql/sql/alter-table.js +13 -0
- package/src/database/drivers/pgsql/column.js +2 -27
- package/src/database/drivers/pgsql/columns-index.js +37 -0
- package/src/database/drivers/pgsql/table.js +61 -10
- package/src/database/drivers/sqlite/sql/alter-table.js +18 -0
- package/src/database/migration/index.js +92 -3
- package/src/database/query/alter-table-base.js +20 -1
- package/src/database/record/attachments/normalize-input.js +38 -10
- package/src/database/record/attachments/storage-drivers/filesystem.js +33 -2
- package/src/database/record/attachments/storage-drivers/native.js +17 -2
- package/src/database/record/attachments/storage-drivers/s3.js +27 -7
- package/src/database/record/attachments/store.js +159 -43
- package/src/database/table-data/table-foreign-key.js +9 -1
- package/src/environment-handlers/base.js +1 -1
- package/src/environment-handlers/node/attachment-path-source.js +144 -0
- package/src/environment-handlers/node.js +28 -3
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IndexMetadataType type.
|
|
3
|
+
* @typedef {object} IndexMetadataType
|
|
4
|
+
* @property {string} column_name - Index column name.
|
|
5
|
+
* @property {string} index_name - Index name.
|
|
6
|
+
* @property {boolean} is_primary_key - Whether the index is primary.
|
|
7
|
+
* @property {boolean} is_unique - Whether the index is unique.
|
|
8
|
+
* @property {string} table_name - Table name.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Normalizes one untrusted database index metadata row.
|
|
12
|
+
* @param {import("./base.js").QueryRowType} row - Database index metadata row.
|
|
13
|
+
* @returns {IndexMetadataType} - Validated index metadata.
|
|
14
|
+
*/
|
|
15
|
+
export function normalizeIndexMetadataRow(row: import("./base.js").QueryRowType): IndexMetadataType;
|
|
16
|
+
/**
|
|
17
|
+
* IndexMetadataType type.
|
|
18
|
+
*/
|
|
19
|
+
export type IndexMetadataType = {
|
|
20
|
+
/**
|
|
21
|
+
* - Index column name.
|
|
22
|
+
*/
|
|
23
|
+
column_name: string;
|
|
24
|
+
/**
|
|
25
|
+
* - Index name.
|
|
26
|
+
*/
|
|
27
|
+
index_name: string;
|
|
28
|
+
/**
|
|
29
|
+
* - Whether the index is primary.
|
|
30
|
+
*/
|
|
31
|
+
is_primary_key: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* - Whether the index is unique.
|
|
34
|
+
*/
|
|
35
|
+
is_unique: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* - Table name.
|
|
38
|
+
*/
|
|
39
|
+
table_name: string;
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=index-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-metadata.d.ts","sourceRoot":"","sources":["../../../../src/database/drivers/index-metadata.js"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,+CAHW,OAAO,WAAW,EAAE,YAAY,GAC9B,iBAAiB,CAU7B;;;;;;;;iBApBa,MAAM;;;;gBACN,MAAM;;;;oBACN,OAAO;;;;eACP,OAAO;;;;gBACP,MAAM"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { forcedBoolean, forcedString } from "typanic";
|
|
3
|
+
/**
|
|
4
|
+
* IndexMetadataType type.
|
|
5
|
+
* @typedef {object} IndexMetadataType
|
|
6
|
+
* @property {string} column_name - Index column name.
|
|
7
|
+
* @property {string} index_name - Index name.
|
|
8
|
+
* @property {boolean} is_primary_key - Whether the index is primary.
|
|
9
|
+
* @property {boolean} is_unique - Whether the index is unique.
|
|
10
|
+
* @property {string} table_name - Table name.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Normalizes one untrusted database index metadata row.
|
|
14
|
+
* @param {import("./base.js").QueryRowType} row - Database index metadata row.
|
|
15
|
+
* @returns {IndexMetadataType} - Validated index metadata.
|
|
16
|
+
*/
|
|
17
|
+
export function normalizeIndexMetadataRow(row) {
|
|
18
|
+
return {
|
|
19
|
+
column_name: forcedString(row.column_name, "index column_name"),
|
|
20
|
+
index_name: forcedString(row.index_name, "index index_name"),
|
|
21
|
+
is_primary_key: forcedBoolean(row.is_primary_key, "index is_primary_key"),
|
|
22
|
+
is_unique: forcedBoolean(row.is_unique, "index is_unique"),
|
|
23
|
+
table_name: forcedString(row.table_name, "index table_name")
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtbWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9pbmRleC1tZXRhZGF0YS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFFckQ7Ozs7Ozs7O0dBUUc7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUFDLEdBQUc7SUFDM0MsT0FBTztRQUNMLFdBQVcsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQztRQUMvRCxVQUFVLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLENBQUM7UUFDNUQsY0FBYyxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLHNCQUFzQixDQUFDO1FBQ3pFLFNBQVMsRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQztRQUMxRCxVQUFVLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLENBQUM7S0FDN0QsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IHsgZm9yY2VkQm9vbGVhbiwgZm9yY2VkU3RyaW5nIH0gZnJvbSBcInR5cGFuaWNcIlxuXG4vKipcbiAqIEluZGV4TWV0YWRhdGFUeXBlIHR5cGUuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBJbmRleE1ldGFkYXRhVHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IGNvbHVtbl9uYW1lIC0gSW5kZXggY29sdW1uIG5hbWUuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gaW5kZXhfbmFtZSAtIEluZGV4IG5hbWUuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzX3ByaW1hcnlfa2V5IC0gV2hldGhlciB0aGUgaW5kZXggaXMgcHJpbWFyeS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gaXNfdW5pcXVlIC0gV2hldGhlciB0aGUgaW5kZXggaXMgdW5pcXVlLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHRhYmxlX25hbWUgLSBUYWJsZSBuYW1lLlxuICovXG5cbi8qKlxuICogTm9ybWFsaXplcyBvbmUgdW50cnVzdGVkIGRhdGFiYXNlIGluZGV4IG1ldGFkYXRhIHJvdy5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9iYXNlLmpzXCIpLlF1ZXJ5Um93VHlwZX0gcm93IC0gRGF0YWJhc2UgaW5kZXggbWV0YWRhdGEgcm93LlxuICogQHJldHVybnMge0luZGV4TWV0YWRhdGFUeXBlfSAtIFZhbGlkYXRlZCBpbmRleCBtZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUluZGV4TWV0YWRhdGFSb3cocm93KSB7XG4gIHJldHVybiB7XG4gICAgY29sdW1uX25hbWU6IGZvcmNlZFN0cmluZyhyb3cuY29sdW1uX25hbWUsIFwiaW5kZXggY29sdW1uX25hbWVcIiksXG4gICAgaW5kZXhfbmFtZTogZm9yY2VkU3RyaW5nKHJvdy5pbmRleF9uYW1lLCBcImluZGV4IGluZGV4X25hbWVcIiksXG4gICAgaXNfcHJpbWFyeV9rZXk6IGZvcmNlZEJvb2xlYW4ocm93LmlzX3ByaW1hcnlfa2V5LCBcImluZGV4IGlzX3ByaW1hcnlfa2V5XCIpLFxuICAgIGlzX3VuaXF1ZTogZm9yY2VkQm9vbGVhbihyb3cuaXNfdW5pcXVlLCBcImluZGV4IGlzX3VuaXF1ZVwiKSxcbiAgICB0YWJsZV9uYW1lOiBmb3JjZWRTdHJpbmcocm93LnRhYmxlX25hbWUsIFwiaW5kZXggdGFibGVfbmFtZVwiKVxuICB9XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/mssql/column.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/mssql/column.js"],"names":[],"mappings":"AAKA;IACE;;;;OAIG;IACH,mBAHW,OAAO,kBAAkB,EAAE,OAAO,QAClC,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,EAM3B;IAFC,0BAAgB;IAChB,0CAAkB;IAYpB,oBAAwE;IACxE,eAAsD;IAatD,eAAoD;CACrD;uBAvCsB,mBAAmB"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
import BaseColumn from "../base-column.js";
|
|
3
|
-
import ColumnsIndex from "./columns-index.js";
|
|
4
3
|
import { digg } from "diggerize";
|
|
5
4
|
export default class VelociousDatabaseDriversMssqlColumn extends BaseColumn {
|
|
6
5
|
/**
|
|
@@ -15,35 +14,8 @@ export default class VelociousDatabaseDriversMssqlColumn extends BaseColumn {
|
|
|
15
14
|
}
|
|
16
15
|
getAutoIncrement() { return digg(this, "data", "isIdentity") === 1; }
|
|
17
16
|
async getIndexes() {
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
SELECT
|
|
21
|
-
sys.tables.name AS TableName,
|
|
22
|
-
sys.columns.name AS ColumnName,
|
|
23
|
-
sys.indexes.name AS index_name,
|
|
24
|
-
sys.indexes.type_desc AS IndexType,
|
|
25
|
-
sys.index_columns.is_included_column AS IsIncludedColumn,
|
|
26
|
-
sys.indexes.is_unique,
|
|
27
|
-
sys.indexes.is_primary_key,
|
|
28
|
-
sys.indexes.is_unique_constraint
|
|
29
|
-
FROM sys.indexes
|
|
30
|
-
INNER JOIN sys.index_columns ON sys.indexes.object_id = sys.index_columns.object_id AND sys.indexes.index_id = sys.index_columns.index_id
|
|
31
|
-
INNER JOIN sys.columns ON sys.index_columns.object_id = sys.columns.object_id AND sys.index_columns.column_id = sys.columns.column_id
|
|
32
|
-
INNER JOIN sys.tables ON sys.indexes.object_id = sys.tables.object_id
|
|
33
|
-
WHERE
|
|
34
|
-
sys.tables.name = ${options.quote(this.getTable().getName())} AND
|
|
35
|
-
sys.columns.name = ${options.quote(this.getName())}
|
|
36
|
-
ORDER BY
|
|
37
|
-
sys.indexes.name,
|
|
38
|
-
sys.index_columns.key_ordinal
|
|
39
|
-
`;
|
|
40
|
-
const rows = await this.getDriver().query(sql);
|
|
41
|
-
const indexes = [];
|
|
42
|
-
for (const row of rows) {
|
|
43
|
-
const index = new ColumnsIndex(this.getTable(), row);
|
|
44
|
-
indexes.push(index);
|
|
45
|
-
}
|
|
46
|
-
return indexes;
|
|
17
|
+
const indexes = await this.getTable().getIndexes();
|
|
18
|
+
return indexes.filter((index) => index.getColumnNames().includes(this.getName()));
|
|
47
19
|
}
|
|
48
20
|
getDefault() { return digg(this, "data", "COLUMN_DEFAULT"); }
|
|
49
21
|
getMaxLength() { return digg(this, "data", "CHARACTER_MAXIMUM_LENGTH"); }
|
|
@@ -60,4 +32,4 @@ export default class VelociousDatabaseDriversMssqlColumn extends BaseColumn {
|
|
|
60
32
|
getPrimaryKey() { return digg(this, "data", "isIdentity") === 1; }
|
|
61
33
|
getType() { return digg(this, "data", "DATA_TYPE"); }
|
|
62
34
|
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL2RyaXZlcnMvbXNzcWwvY29sdW1uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLFVBQVUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBRTlCLE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUNBQW9DLFNBQVEsVUFBVTtJQUN6RTs7OztPQUlHO0lBQ0gsWUFBWSxLQUFLLEVBQUUsSUFBSTtRQUNyQixLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ3BCLENBQUM7SUFFRCxnQkFBZ0IsS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFFcEUsS0FBSyxDQUFDLFVBQVU7UUFDZCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUVsRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNuRixDQUFDO0lBRUQsVUFBVSxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFDNUQsWUFBWSxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsMEJBQTBCLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFDeEUsT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRXRELE9BQU87UUFDTCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQTtRQUVuRCxJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN0QixPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFDakUsT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUEsQ0FBQyxDQUFDO0NBQ3JEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCYXNlQ29sdW1uIGZyb20gXCIuLi9iYXNlLWNvbHVtbi5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNNc3NxbENvbHVtbiBleHRlbmRzIEJhc2VDb2x1bW4ge1xuICAvKipcbiAgICogUnVucyBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLXRhYmxlLmpzXCIpLmRlZmF1bHR9IHRhYmxlIC0gVGFibGUuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgPz59IGRhdGEgLSBEYXRhIHBheWxvYWQuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0YWJsZSwgZGF0YSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmRhdGEgPSBkYXRhXG4gICAgdGhpcy50YWJsZSA9IHRhYmxlXG4gIH1cblxuICBnZXRBdXRvSW5jcmVtZW50KCkgeyByZXR1cm4gZGlnZyh0aGlzLCBcImRhdGFcIiwgXCJpc0lkZW50aXR5XCIpID09PSAxIH1cblxuICBhc3luYyBnZXRJbmRleGVzKCkge1xuICAgIGNvbnN0IGluZGV4ZXMgPSBhd2FpdCB0aGlzLmdldFRhYmxlKCkuZ2V0SW5kZXhlcygpXG5cbiAgICByZXR1cm4gaW5kZXhlcy5maWx0ZXIoKGluZGV4KSA9PiBpbmRleC5nZXRDb2x1bW5OYW1lcygpLmluY2x1ZGVzKHRoaXMuZ2V0TmFtZSgpKSlcbiAgfVxuXG4gIGdldERlZmF1bHQoKSB7IHJldHVybiBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcIkNPTFVNTl9ERUZBVUxUXCIpIH1cbiAgZ2V0TWF4TGVuZ3RoKCkgeyByZXR1cm4gZGlnZyh0aGlzLCBcImRhdGFcIiwgXCJDSEFSQUNURVJfTUFYSU1VTV9MRU5HVEhcIikgfVxuICBnZXROYW1lKCkgeyByZXR1cm4gZGlnZyh0aGlzLCBcImRhdGFcIiwgXCJDT0xVTU5fTkFNRVwiKSB9XG5cbiAgZ2V0TnVsbCgpIHtcbiAgICBjb25zdCBudWxsVmFsdWUgPSBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcIklTX05VTExBQkxFXCIpXG5cbiAgICBpZiAobnVsbFZhbHVlID09IFwiTk9cIikge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgZ2V0UHJpbWFyeUtleSgpIHsgcmV0dXJuIGRpZ2codGhpcywgXCJkYXRhXCIsIFwiaXNJZGVudGl0eVwiKSA9PT0gMSB9XG4gIGdldFR5cGUoKSB7IHJldHVybiBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcIkRBVEFfVFlQRVwiKSB9XG59XG4iXX0=
|
|
@@ -1,4 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MssqlColumnsIndexDataType type.
|
|
3
|
+
* @typedef {object} MssqlColumnsIndexDataType
|
|
4
|
+
* @property {string[]} columnNames - Ordered index column names.
|
|
5
|
+
* @property {string} index_name - Index name.
|
|
6
|
+
* @property {boolean} is_primary_key - Whether the index is primary.
|
|
7
|
+
* @property {boolean} is_unique - Whether the index is unique.
|
|
8
|
+
* @property {string} table_name - Table name.
|
|
9
|
+
*/
|
|
1
10
|
export default class VelociousDatabaseDriversMssqlColumnsIndex extends BaseColumnsIndex {
|
|
11
|
+
/**
|
|
12
|
+
* Runs constructor.
|
|
13
|
+
* @param {import("../base-table.js").default} table - Table.
|
|
14
|
+
* @param {MssqlColumnsIndexDataType} data - Grouped index metadata.
|
|
15
|
+
*/
|
|
16
|
+
constructor(table: import("../base-table.js").default, data: MssqlColumnsIndexDataType);
|
|
17
|
+
indexData: MssqlColumnsIndexDataType;
|
|
2
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* MssqlColumnsIndexDataType type.
|
|
21
|
+
*/
|
|
22
|
+
export type MssqlColumnsIndexDataType = {
|
|
23
|
+
/**
|
|
24
|
+
* - Ordered index column names.
|
|
25
|
+
*/
|
|
26
|
+
columnNames: string[];
|
|
27
|
+
/**
|
|
28
|
+
* - Index name.
|
|
29
|
+
*/
|
|
30
|
+
index_name: string;
|
|
31
|
+
/**
|
|
32
|
+
* - Whether the index is primary.
|
|
33
|
+
*/
|
|
34
|
+
is_primary_key: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* - Whether the index is unique.
|
|
37
|
+
*/
|
|
38
|
+
is_unique: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* - Table name.
|
|
41
|
+
*/
|
|
42
|
+
table_name: string;
|
|
43
|
+
};
|
|
3
44
|
import BaseColumnsIndex from "../base-columns-index.js";
|
|
4
45
|
//# sourceMappingURL=columns-index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns-index.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/mssql/columns-index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"columns-index.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/mssql/columns-index.js"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AAEH;IACE;;;;OAIG;IACH,mBAHW,OAAO,kBAAkB,EAAE,OAAO,QAClC,yBAAyB,EAKnC;IADC,qCAAqB;CAmBxB;;;;;;;;iBAlCa,MAAM,EAAE;;;;gBACR,MAAM;;;;oBACN,OAAO;;;;eACP,OAAO;;;;gBACP,MAAM;;6BAVS,0BAA0B"}
|
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
import BaseColumnsIndex from "../base-columns-index.js";
|
|
3
|
+
import TableIndex from "../../table-data/table-index.js";
|
|
4
|
+
/**
|
|
5
|
+
* MssqlColumnsIndexDataType type.
|
|
6
|
+
* @typedef {object} MssqlColumnsIndexDataType
|
|
7
|
+
* @property {string[]} columnNames - Ordered index column names.
|
|
8
|
+
* @property {string} index_name - Index name.
|
|
9
|
+
* @property {boolean} is_primary_key - Whether the index is primary.
|
|
10
|
+
* @property {boolean} is_unique - Whether the index is unique.
|
|
11
|
+
* @property {string} table_name - Table name.
|
|
12
|
+
*/
|
|
3
13
|
export default class VelociousDatabaseDriversMssqlColumnsIndex extends BaseColumnsIndex {
|
|
14
|
+
/**
|
|
15
|
+
* Runs constructor.
|
|
16
|
+
* @param {import("../base-table.js").default} table - Table.
|
|
17
|
+
* @param {MssqlColumnsIndexDataType} data - Grouped index metadata.
|
|
18
|
+
*/
|
|
19
|
+
constructor(table, data) {
|
|
20
|
+
super(table, data);
|
|
21
|
+
this.indexData = data;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Runs get column names.
|
|
25
|
+
* @returns {string[]} - Ordered index column names.
|
|
26
|
+
*/
|
|
27
|
+
getColumnNames() { return this.indexData.columnNames; }
|
|
28
|
+
/**
|
|
29
|
+
* Runs get table data index.
|
|
30
|
+
* @returns {TableIndex} - Table-data index.
|
|
31
|
+
*/
|
|
32
|
+
getTableDataIndex() {
|
|
33
|
+
return new TableIndex(this.getColumnNames(), {
|
|
34
|
+
name: this.getName(),
|
|
35
|
+
unique: this.isUnique()
|
|
36
|
+
});
|
|
37
|
+
}
|
|
4
38
|
}
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1pbmRleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9kcml2ZXJzL21zc3FsL2NvbHVtbnMtaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sZ0JBQWdCLE1BQU0sMEJBQTBCLENBQUE7QUFDdkQsT0FBTyxVQUFVLE1BQU0saUNBQWlDLENBQUE7QUFFeEQ7Ozs7Ozs7O0dBUUc7QUFFSCxNQUFNLENBQUMsT0FBTyxPQUFPLHlDQUEwQyxTQUFRLGdCQUFnQjtJQUNyRjs7OztPQUlHO0lBQ0gsWUFBWSxLQUFLLEVBQUUsSUFBSTtRQUNyQixLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQSxDQUFDLENBQUM7SUFFdEQ7OztPQUdHO0lBQ0gsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDM0MsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDcEIsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7U0FDeEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCYXNlQ29sdW1uc0luZGV4IGZyb20gXCIuLi9iYXNlLWNvbHVtbnMtaW5kZXguanNcIlxuaW1wb3J0IFRhYmxlSW5kZXggZnJvbSBcIi4uLy4uL3RhYmxlLWRhdGEvdGFibGUtaW5kZXguanNcIlxuXG4vKipcbiAqIE1zc3FsQ29sdW1uc0luZGV4RGF0YVR5cGUgdHlwZS5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IE1zc3FsQ29sdW1uc0luZGV4RGF0YVR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IGNvbHVtbk5hbWVzIC0gT3JkZXJlZCBpbmRleCBjb2x1bW4gbmFtZXMuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gaW5kZXhfbmFtZSAtIEluZGV4IG5hbWUuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzX3ByaW1hcnlfa2V5IC0gV2hldGhlciB0aGUgaW5kZXggaXMgcHJpbWFyeS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gaXNfdW5pcXVlIC0gV2hldGhlciB0aGUgaW5kZXggaXMgdW5pcXVlLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHRhYmxlX25hbWUgLSBUYWJsZSBuYW1lLlxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlRHJpdmVyc01zc3FsQ29sdW1uc0luZGV4IGV4dGVuZHMgQmFzZUNvbHVtbnNJbmRleCB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2Jhc2UtdGFibGUuanNcIikuZGVmYXVsdH0gdGFibGUgLSBUYWJsZS5cbiAgICogQHBhcmFtIHtNc3NxbENvbHVtbnNJbmRleERhdGFUeXBlfSBkYXRhIC0gR3JvdXBlZCBpbmRleCBtZXRhZGF0YS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHRhYmxlLCBkYXRhKSB7XG4gICAgc3VwZXIodGFibGUsIGRhdGEpXG4gICAgdGhpcy5pbmRleERhdGEgPSBkYXRhXG4gIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgY29sdW1uIG5hbWVzLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nW119IC0gT3JkZXJlZCBpbmRleCBjb2x1bW4gbmFtZXMuXG4gICAqL1xuICBnZXRDb2x1bW5OYW1lcygpIHsgcmV0dXJuIHRoaXMuaW5kZXhEYXRhLmNvbHVtbk5hbWVzIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgdGFibGUgZGF0YSBpbmRleC5cbiAgICogQHJldHVybnMge1RhYmxlSW5kZXh9IC0gVGFibGUtZGF0YSBpbmRleC5cbiAgICovXG4gIGdldFRhYmxlRGF0YUluZGV4KCkge1xuICAgIHJldHVybiBuZXcgVGFibGVJbmRleCh0aGlzLmdldENvbHVtbk5hbWVzKCksIHtcbiAgICAgIG5hbWU6IHRoaXMuZ2V0TmFtZSgpLFxuICAgICAgdW5pcXVlOiB0aGlzLmlzVW5pcXVlKClcbiAgICB9KVxuICB9XG59XG4iXX0=
|
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MssqlGroupedIndexDataType type.
|
|
3
|
+
* @typedef {object} MssqlGroupedIndexDataType
|
|
4
|
+
* @property {string[]} columnNames - Ordered index column names.
|
|
5
|
+
* @property {string} index_name - Index name.
|
|
6
|
+
* @property {boolean} is_primary_key - Whether the index is primary.
|
|
7
|
+
* @property {boolean} is_unique - Whether the index is unique.
|
|
8
|
+
* @property {string} table_name - Table name.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Groups ordered SQL Server index rows into one metadata value per index.
|
|
12
|
+
* @param {import("../index-metadata.js").IndexMetadataType[]} indexRows - Ordered index metadata rows.
|
|
13
|
+
* @returns {MssqlGroupedIndexDataType[]} - Grouped index metadata.
|
|
14
|
+
*/
|
|
15
|
+
export function groupMssqlIndexRows(indexRows: import("../index-metadata.js").IndexMetadataType[]): MssqlGroupedIndexDataType[];
|
|
1
16
|
export default class VelociousDatabaseDriversMssqlTable extends BaseTable {
|
|
2
17
|
/**
|
|
3
18
|
* Runs constructor.
|
|
@@ -9,8 +24,35 @@ export default class VelociousDatabaseDriversMssqlTable extends BaseTable {
|
|
|
9
24
|
driver: import("../base.js").default;
|
|
10
25
|
getColumns(): Promise<Column[]>;
|
|
11
26
|
getForeignKeys(): Promise<ForeignKey[]>;
|
|
27
|
+
getIndexes(): Promise<ColumnsIndex[]>;
|
|
12
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* MssqlGroupedIndexDataType type.
|
|
31
|
+
*/
|
|
32
|
+
export type MssqlGroupedIndexDataType = {
|
|
33
|
+
/**
|
|
34
|
+
* - Ordered index column names.
|
|
35
|
+
*/
|
|
36
|
+
columnNames: string[];
|
|
37
|
+
/**
|
|
38
|
+
* - Index name.
|
|
39
|
+
*/
|
|
40
|
+
index_name: string;
|
|
41
|
+
/**
|
|
42
|
+
* - Whether the index is primary.
|
|
43
|
+
*/
|
|
44
|
+
is_primary_key: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* - Whether the index is unique.
|
|
47
|
+
*/
|
|
48
|
+
is_unique: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* - Table name.
|
|
51
|
+
*/
|
|
52
|
+
table_name: string;
|
|
53
|
+
};
|
|
13
54
|
import BaseTable from "../base-table.js";
|
|
14
55
|
import Column from "./column.js";
|
|
15
56
|
import ForeignKey from "./foreign-key.js";
|
|
57
|
+
import ColumnsIndex from "./columns-index.js";
|
|
16
58
|
//# sourceMappingURL=table.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/mssql/table.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/mssql/table.js"],"names":[],"mappings":"AASA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,+CAHW,OAAO,sBAAsB,EAAE,iBAAiB,EAAE,GAChD,yBAAyB,EAAE,CA6BvC;AAED;IACE;;;;OAIG;IACH,oBAHW,OAAO,YAAY,EAAE,OAAO,QAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAMhC;IAFC,6BAAgB;IAChB,qCAAoB;IAGtB,gCAmBC;IAED,wCAsCC;IAED,sCAkCC;CA4BF;;;;;;;;iBAhLa,MAAM,EAAE;;;;gBACR,MAAM;;;;oBACN,OAAO;;;;eACP,OAAO;;;;gBACP,MAAM;;sBAdE,kBAAkB;mBACrB,aAAa;uBAGT,kBAAkB;yBAFhB,oBAAoB"}
|
|
@@ -4,6 +4,44 @@ import Column from "./column.js";
|
|
|
4
4
|
import ColumnsIndex from "./columns-index.js";
|
|
5
5
|
import { digg } from "diggerize";
|
|
6
6
|
import ForeignKey from "./foreign-key.js";
|
|
7
|
+
import { normalizeIndexMetadataRow } from "../index-metadata.js";
|
|
8
|
+
/**
|
|
9
|
+
* MssqlGroupedIndexDataType type.
|
|
10
|
+
* @typedef {object} MssqlGroupedIndexDataType
|
|
11
|
+
* @property {string[]} columnNames - Ordered index column names.
|
|
12
|
+
* @property {string} index_name - Index name.
|
|
13
|
+
* @property {boolean} is_primary_key - Whether the index is primary.
|
|
14
|
+
* @property {boolean} is_unique - Whether the index is unique.
|
|
15
|
+
* @property {string} table_name - Table name.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Groups ordered SQL Server index rows into one metadata value per index.
|
|
19
|
+
* @param {import("../index-metadata.js").IndexMetadataType[]} indexRows - Ordered index metadata rows.
|
|
20
|
+
* @returns {MssqlGroupedIndexDataType[]} - Grouped index metadata.
|
|
21
|
+
*/
|
|
22
|
+
export function groupMssqlIndexRows(indexRows) {
|
|
23
|
+
/** @type {Map<string, MssqlGroupedIndexDataType>} */
|
|
24
|
+
const indexDataByName = new Map();
|
|
25
|
+
/** @type {MssqlGroupedIndexDataType[]} */
|
|
26
|
+
const groupedIndexData = [];
|
|
27
|
+
for (const indexRow of indexRows) {
|
|
28
|
+
const existingIndexData = indexDataByName.get(indexRow.index_name);
|
|
29
|
+
if (existingIndexData) {
|
|
30
|
+
existingIndexData.columnNames.push(indexRow.column_name);
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
const indexData = {
|
|
34
|
+
columnNames: [indexRow.column_name],
|
|
35
|
+
index_name: indexRow.index_name,
|
|
36
|
+
is_primary_key: indexRow.is_primary_key,
|
|
37
|
+
is_unique: indexRow.is_unique,
|
|
38
|
+
table_name: indexRow.table_name
|
|
39
|
+
};
|
|
40
|
+
indexDataByName.set(indexRow.index_name, indexData);
|
|
41
|
+
groupedIndexData.push(indexData);
|
|
42
|
+
}
|
|
43
|
+
return groupedIndexData;
|
|
44
|
+
}
|
|
7
45
|
export default class VelociousDatabaseDriversMssqlTable extends BaseTable {
|
|
8
46
|
/**
|
|
9
47
|
* Runs constructor.
|
|
@@ -36,7 +74,7 @@ export default class VelociousDatabaseDriversMssqlTable extends BaseTable {
|
|
|
36
74
|
return await this.getDriver()._cachedTableSchemaMetadata(this.getName(), "foreignKeys", async () => {
|
|
37
75
|
const sql = `
|
|
38
76
|
SELECT
|
|
39
|
-
fk.name AS
|
|
77
|
+
fk.name AS CONSTRAINT_NAME,
|
|
40
78
|
tp.name AS ParentTable,
|
|
41
79
|
ref.name AS ReferencedTable,
|
|
42
80
|
cp.name AS ParentColumn,
|
|
@@ -56,7 +94,7 @@ export default class VelociousDatabaseDriversMssqlTable extends BaseTable {
|
|
|
56
94
|
ON fkc.referenced_object_id = cref.object_id
|
|
57
95
|
AND fkc.referenced_column_id = cref.column_id
|
|
58
96
|
WHERE tp.name = ${this.driver.quote(this.getName())}
|
|
59
|
-
ORDER BY
|
|
97
|
+
ORDER BY CONSTRAINT_NAME, ParentTable, ReferencedTable;
|
|
60
98
|
`;
|
|
61
99
|
const foreignKeyRows = await this.driver.query(sql);
|
|
62
100
|
const foreignKeys = [];
|
|
@@ -72,28 +110,27 @@ export default class VelociousDatabaseDriversMssqlTable extends BaseTable {
|
|
|
72
110
|
const options = this.getOptions();
|
|
73
111
|
const sql = `
|
|
74
112
|
SELECT
|
|
75
|
-
sys.tables.name AS
|
|
76
|
-
sys.columns.name AS
|
|
113
|
+
sys.tables.name AS table_name,
|
|
114
|
+
sys.columns.name AS column_name,
|
|
77
115
|
sys.indexes.name AS index_name,
|
|
78
|
-
sys.indexes.type_desc AS IndexType,
|
|
79
|
-
sys.index_columns.is_included_column AS IsIncludedColumn,
|
|
80
116
|
sys.indexes.is_unique,
|
|
81
|
-
sys.indexes.is_primary_key
|
|
82
|
-
sys.indexes.is_unique_constraint
|
|
117
|
+
sys.indexes.is_primary_key
|
|
83
118
|
FROM sys.indexes
|
|
84
119
|
INNER JOIN sys.index_columns ON sys.indexes.object_id = sys.index_columns.object_id AND sys.indexes.index_id = sys.index_columns.index_id
|
|
85
120
|
INNER JOIN sys.columns ON sys.index_columns.object_id = sys.columns.object_id AND sys.index_columns.column_id = sys.columns.column_id
|
|
86
121
|
INNER JOIN sys.tables ON sys.indexes.object_id = sys.tables.object_id
|
|
87
122
|
WHERE
|
|
88
|
-
sys.tables.name = ${options.quote(this.getName())}
|
|
123
|
+
sys.tables.name = ${options.quote(this.getName())} AND
|
|
124
|
+
sys.index_columns.is_included_column = 0
|
|
89
125
|
ORDER BY
|
|
90
126
|
sys.indexes.name,
|
|
91
127
|
sys.index_columns.key_ordinal
|
|
92
128
|
`;
|
|
93
129
|
const rows = await this.getDriver().query(sql);
|
|
94
130
|
const indexes = [];
|
|
95
|
-
|
|
96
|
-
|
|
131
|
+
const indexRows = rows.map((row) => normalizeIndexMetadataRow(row));
|
|
132
|
+
for (const indexData of groupMssqlIndexRows(indexRows)) {
|
|
133
|
+
const index = new ColumnsIndex(this, indexData);
|
|
97
134
|
indexes.push(index);
|
|
98
135
|
}
|
|
99
136
|
return indexes;
|
|
@@ -127,4 +164,4 @@ export default class VelociousDatabaseDriversMssqlTable extends BaseTable {
|
|
|
127
164
|
}
|
|
128
165
|
}
|
|
129
166
|
}
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9tc3NxbC90YWJsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxVQUFVLE1BQU0sa0JBQWtCLENBQUE7QUFFekMsTUFBTSxDQUFDLE9BQU8sT0FBTyxrQ0FBbUMsU0FBUSxTQUFTO0lBQ3ZFOzs7O09BSUc7SUFDSCxZQUFZLE1BQU0sRUFBRSxJQUFJO1FBQ3RCLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFDdEIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsT0FBTyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzdGLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Ozs7OytCQUtkLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztPQUN6RCxDQUFDLENBQUE7WUFDRixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7WUFFbEIsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO2dCQUVyQyxP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LEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUN4RyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxLQUFLLENBQUE7WUFDYixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQmFzZVRhYmxlIGZyb20gXCIuLi9iYXNlLXRhYmxlLmpzXCJcbmltcG9ydCBDb2x1bW4gZnJvbSBcIi4vY29sdW1uLmpzXCJcbmltcG9ydCBDb2x1bW5zSW5kZXggZnJvbSBcIi4vY29sdW1ucy1pbmRleC5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IEZvcmVpZ25LZXkgZnJvbSBcIi4vZm9yZWlnbi1rZXkuanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNNc3NxbFRhYmxlIGV4dGVuZHMgQmFzZVRhYmxlIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5kZWZhdWx0fSBkcml2ZXIgLSBEYXRhYmFzZSBkcml2ZXIgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gZGF0YSAtIERhdGEgcGF5bG9hZC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGRyaXZlciwgZGF0YSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmRhdGEgPSBkYXRhXG4gICAgdGhpcy5kcml2ZXIgPSBkcml2ZXJcbiAgfVxuXG4gIGFzeW5jIGdldENvbHVtbnMoKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RHJpdmVyKCkuX2NhY2hlZFRhYmxlU2NoZW1hTWV0YWRhdGEodGhpcy5nZXROYW1lKCksIFwiY29sdW1uc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmRyaXZlci5xdWVyeShgXG4gICAgICAgIFNFTEVDVFxuICAgICAgICAgICosXG4gICAgICAgICAgQ09MVU1OUFJPUEVSVFkob2JqZWN0X2lkKFRBQkxFX1NDSEVNQSArICcuJyArIFRBQkxFX05BTUUpLCBDT0xVTU5fTkFNRSwgJ0lzSWRlbnRpdHknKSBBUyBpc0lkZW50aXR5XG4gICAgICAgIEZST00gW0lORk9STUFUSU9OX1NDSEVNQV0uW0NPTFVNTlNdXG4gICAgICAgIFdIRVJFIFtUQUJMRV9OQU1FXSA9ICR7dGhpcy5kcml2ZXIucXVvdGUodGhpcy5nZXROYW1lKCkpfVxuICAgICAgYClcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSBbXVxuXG4gICAgICBmb3IgKGNvbnN0IGRhdGEgb2YgcmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IG5ldyBDb2x1bW4odGhpcywgZGF0YSlcblxuICAgICAgICBjb2x1bW5zLnB1c2goY29sdW1uKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29sdW1uc1xuICAgIH0pXG4gIH1cblxuICBhc3luYyBnZXRGb3JlaWduS2V5cygpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXREcml2ZXIoKS5fY2FjaGVkVGFibGVTY2hlbWFNZXRhZGF0YSh0aGlzLmdldE5hbWUoKSwgXCJmb3JlaWduS2V5c1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBzcWwgPSBgXG4gICAgICAgIFNFTEVDVFxuICAgICAgICAgICAgZmsubmFtZSBBUyBGb3JlaWduS2V5TmFtZSxcbiAgICAgICAgICAgIHRwLm5hbWUgQVMgUGFyZW50VGFibGUsXG4gICAgICAgICAgICByZWYubmFtZSBBUyBSZWZlcmVuY2VkVGFibGUsXG4gICAgICAgICAgICBjcC5uYW1lIEFTIFBhcmVudENvbHVtbixcbiAgICAgICAgICAgIGNyZWYubmFtZSBBUyBSZWZlcmVuY2VkQ29sdW1uLFxuICAgICAgICAgICAgdHAubmFtZSBBUyBUYWJsZU5hbWVcbiAgICAgICAgRlJPTSBzeXMuZm9yZWlnbl9rZXlzIGZrXG4gICAgICAgIElOTkVSIEpPSU4gc3lzLmZvcmVpZ25fa2V5X2NvbHVtbnMgZmtjXG4gICAgICAgICAgICBPTiBma2MuY29uc3RyYWludF9vYmplY3RfaWQgPSBmay5vYmplY3RfaWRcbiAgICAgICAgSU5ORVIgSk9JTiBzeXMudGFibGVzIHRwXG4gICAgICAgICAgICBPTiBma2MucGFyZW50X29iamVjdF9pZCA9IHRwLm9iamVjdF9pZFxuICAgICAgICBJTk5FUiBKT0lOIHN5cy5jb2x1bW5zIGNwXG4gICAgICAgICAgICBPTiBma2MucGFyZW50X29iamVjdF9pZCA9IGNwLm9iamVjdF9pZFxuICAgICAgICAgICAgQU5EIGZrYy5wYXJlbnRfY29sdW1uX2lkID0gY3AuY29sdW1uX2lkXG4gICAgICAgIElOTkVSIEpPSU4gc3lzLnRhYmxlcyByZWZcbiAgICAgICAgICAgIE9OIGZrYy5yZWZlcmVuY2VkX29iamVjdF9pZCA9IHJlZi5vYmplY3RfaWRcbiAgICAgICAgSU5ORVIgSk9JTiBzeXMuY29sdW1ucyBjcmVmXG4gICAgICAgICAgICBPTiBma2MucmVmZXJlbmNlZF9vYmplY3RfaWQgPSBjcmVmLm9iamVjdF9pZFxuICAgICAgICAgICAgQU5EIGZrYy5yZWZlcmVuY2VkX2NvbHVtbl9pZCA9IGNyZWYuY29sdW1uX2lkXG4gICAgICAgIFdIRVJFIHRwLm5hbWUgPSAke3RoaXMuZHJpdmVyLnF1b3RlKHRoaXMuZ2V0TmFtZSgpKX1cbiAgICAgICAgT1JERVIgQlkgRm9yZWlnbktleU5hbWUsIFBhcmVudFRhYmxlLCBSZWZlcmVuY2VkVGFibGU7XG4gICAgICBgXG5cbiAgICAgIGNvbnN0IGZvcmVpZ25LZXlSb3dzID0gYXdhaXQgdGhpcy5kcml2ZXIucXVlcnkoc3FsKVxuICAgICAgY29uc3QgZm9yZWlnbktleXMgPSBbXVxuXG4gICAgICBmb3IgKGNvbnN0IGZvcmVpZ25LZXlSb3cgb2YgZm9yZWlnbktleVJvd3MpIHtcbiAgICAgICAgY29uc3QgZm9yZWlnbktleSA9IG5ldyBGb3JlaWduS2V5KGZvcmVpZ25LZXlSb3cpXG5cbiAgICAgICAgZm9yZWlnbktleXMucHVzaChmb3JlaWduS2V5KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm9yZWlnbktleXNcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0SW5kZXhlcygpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXREcml2ZXIoKS5fY2FjaGVkVGFibGVTY2hlbWFNZXRhZGF0YSh0aGlzLmdldE5hbWUoKSwgXCJpbmRleGVzXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbnMoKVxuICAgICAgY29uc3Qgc3FsID0gYFxuICAgICAgICBTRUxFQ1RcbiAgICAgICAgICBzeXMudGFibGVzLm5hbWUgQVMgVGFibGVOYW1lLFxuICAgICAgICAgIHN5cy5jb2x1bW5zLm5hbWUgQVMgQ29sdW1uTmFtZSxcbiAgICAgICAgICBzeXMuaW5kZXhlcy5uYW1lIEFTIGluZGV4X25hbWUsXG4gICAgICAgICAgc3lzLmluZGV4ZXMudHlwZV9kZXNjIEFTIEluZGV4VHlwZSxcbiAgICAgICAgICBzeXMuaW5kZXhfY29sdW1ucy5pc19pbmNsdWRlZF9jb2x1bW4gQVMgSXNJbmNsdWRlZENvbHVtbixcbiAgICAgICAgICBzeXMuaW5kZXhlcy5pc191bmlxdWUsXG4gICAgICAgICAgc3lzLmluZGV4ZXMuaXNfcHJpbWFyeV9rZXksXG4gICAgICAgICAgc3lzLmluZGV4ZXMuaXNfdW5pcXVlX2NvbnN0cmFpbnRcbiAgICAgICAgRlJPTSBzeXMuaW5kZXhlc1xuICAgICAgICBJTk5FUiBKT0lOIHN5cy5pbmRleF9jb2x1bW5zIE9OIHN5cy5pbmRleGVzLm9iamVjdF9pZCA9IHN5cy5pbmRleF9jb2x1bW5zLm9iamVjdF9pZCBBTkQgc3lzLmluZGV4ZXMuaW5kZXhfaWQgPSBzeXMuaW5kZXhfY29sdW1ucy5pbmRleF9pZFxuICAgICAgICBJTk5FUiBKT0lOIHN5cy5jb2x1bW5zIE9OIHN5cy5pbmRleF9jb2x1bW5zLm9iamVjdF9pZCA9IHN5cy5jb2x1bW5zLm9iamVjdF9pZCBBTkQgc3lzLmluZGV4X2NvbHVtbnMuY29sdW1uX2lkID0gc3lzLmNvbHVtbnMuY29sdW1uX2lkXG4gICAgICAgIElOTkVSIEpPSU4gc3lzLnRhYmxlcyBPTiBzeXMuaW5kZXhlcy5vYmplY3RfaWQgPSBzeXMudGFibGVzLm9iamVjdF9pZFxuICAgICAgICBXSEVSRVxuICAgICAgICAgIHN5cy50YWJsZXMubmFtZSA9ICR7b3B0aW9ucy5xdW90ZSh0aGlzLmdldE5hbWUoKSl9XG4gICAgICAgIE9SREVSIEJZXG4gICAgICAgICAgc3lzLmluZGV4ZXMubmFtZSxcbiAgICAgICAgICBzeXMuaW5kZXhfY29sdW1ucy5rZXlfb3JkaW5hbFxuICAgICAgYFxuXG4gICAgICBjb25zdCByb3dzID0gYXdhaXQgdGhpcy5nZXREcml2ZXIoKS5xdWVyeShzcWwpXG4gICAgICBjb25zdCBpbmRleGVzID0gW11cblxuICAgICAgZm9yIChjb25zdCByb3cgb2Ygcm93cykge1xuICAgICAgICBjb25zdCBpbmRleCA9IG5ldyBDb2x1bW5zSW5kZXgodGhpcywgcm93KVxuXG4gICAgICAgIGluZGV4ZXMucHVzaChpbmRleClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGluZGV4ZXNcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IG5hbWUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIHRhYmxlIG5hbWUuXG4gICAqL1xuICBnZXROYW1lKCkge1xuICAgIHJldHVybiAvKiogQHR5cGUge3N0cmluZ30gKi8gKGRpZ2codGhpcy5kYXRhLCBcIlRBQkxFX05BTUVcIikpXG4gIH1cblxuICAvKipcbiAgICogUnVucyB0cnVuY2F0ZS5cbiAgICogQHBhcmFtIHt7Y2FzY2FkZTogYm9vbGVhbn19IFthcmdzXSAtIFRydW5jYXRlIG9wdGlvbnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5PFJlY29yZDxzdHJpbmcsID8+Pj59IC0gUmVzb2x2ZXMgd2l0aCB0aGUgdHJ1bmNhdGUuXG4gICAqL1xuICBhc3luYyB0cnVuY2F0ZShhcmdzKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICB0aGlzLmdldERyaXZlcigpLl9hc3NlcnROb3RSZWFkT25seSgpXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmdldERyaXZlcigpLnF1ZXJ5KGBUUlVOQ0FURSBUQUJMRSAke3RoaXMuZ2V0T3B0aW9ucygpLnF1b3RlVGFibGVOYW1lKHRoaXMuZ2V0TmFtZSgpKX1gKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiBlcnJvci5tZXNzYWdlLnN0YXJ0c1dpdGgoXCJRdWVyeSBmYWlsZWQgJ0Nhbm5vdCB0cnVuY2F0ZSB0YWJsZVwiKSkge1xuICAgICAgICAvLyBUcnVuY2F0ZSB0YWJsZSBpcyByZWFsbHkgYnVnZ3kgZm9yIHNvbWUgcmVhc29uIC0gZmFsbCBiYWNrIHRvIGRlbGV0ZSBhbGwgcm93cyBpbnN0ZWFkXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmdldERyaXZlcigpLnF1ZXJ5KGBERUxFVEUgRlJPTSAke3RoaXMuZ2V0T3B0aW9ucygpLnF1b3RlVGFibGVOYW1lKHRoaXMuZ2V0TmFtZSgpKX1gKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9tc3NxbC90YWJsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxVQUFVLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFaEU7Ozs7Ozs7O0dBUUc7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFNBQVM7SUFDM0MscURBQXFEO0lBQ3JELE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUE7SUFDakMsMENBQTBDO0lBQzFDLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFBO0lBRTNCLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7UUFDakMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUVsRSxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEIsaUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7WUFDeEQsU0FBUTtRQUNWLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRztZQUNoQixXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1lBQ25DLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtZQUMvQixjQUFjLEVBQUUsUUFBUSxDQUFDLGNBQWM7WUFDdkMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTO1lB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Q0FBQyxDQUFBO1lBQ3hHLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLEtBQUssQ0FBQTtZQUNiLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCYXNlVGFibGUgZnJvbSBcIi4uL2Jhc2UtdGFibGUuanNcIlxuaW1wb3J0IENvbHVtbiBmcm9tIFwiLi9jb2x1bW4uanNcIlxuaW1wb3J0IENvbHVtbnNJbmRleCBmcm9tIFwiLi9jb2x1bW5zLWluZGV4LmpzXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgRm9yZWlnbktleSBmcm9tIFwiLi9mb3JlaWduLWtleS5qc1wiXG5pbXBvcnQgeyBub3JtYWxpemVJbmRleE1ldGFkYXRhUm93IH0gZnJvbSBcIi4uL2luZGV4LW1ldGFkYXRhLmpzXCJcblxuLyoqXG4gKiBNc3NxbEdyb3VwZWRJbmRleERhdGFUeXBlIHR5cGUuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBNc3NxbEdyb3VwZWRJbmRleERhdGFUeXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBjb2x1bW5OYW1lcyAtIE9yZGVyZWQgaW5kZXggY29sdW1uIG5hbWVzLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGluZGV4X25hbWUgLSBJbmRleCBuYW1lLlxuICogQHByb3BlcnR5IHtib29sZWFufSBpc19wcmltYXJ5X2tleSAtIFdoZXRoZXIgdGhlIGluZGV4IGlzIHByaW1hcnkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzX3VuaXF1ZSAtIFdoZXRoZXIgdGhlIGluZGV4IGlzIHVuaXF1ZS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0YWJsZV9uYW1lIC0gVGFibGUgbmFtZS5cbiAqL1xuXG4vKipcbiAqIEdyb3VwcyBvcmRlcmVkIFNRTCBTZXJ2ZXIgaW5kZXggcm93cyBpbnRvIG9uZSBtZXRhZGF0YSB2YWx1ZSBwZXIgaW5kZXguXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL2luZGV4LW1ldGFkYXRhLmpzXCIpLkluZGV4TWV0YWRhdGFUeXBlW119IGluZGV4Um93cyAtIE9yZGVyZWQgaW5kZXggbWV0YWRhdGEgcm93cy5cbiAqIEByZXR1cm5zIHtNc3NxbEdyb3VwZWRJbmRleERhdGFUeXBlW119IC0gR3JvdXBlZCBpbmRleCBtZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwTXNzcWxJbmRleFJvd3MoaW5kZXhSb3dzKSB7XG4gIC8qKiBAdHlwZSB7TWFwPHN0cmluZywgTXNzcWxHcm91cGVkSW5kZXhEYXRhVHlwZT59ICovXG4gIGNvbnN0IGluZGV4RGF0YUJ5TmFtZSA9IG5ldyBNYXAoKVxuICAvKiogQHR5cGUge01zc3FsR3JvdXBlZEluZGV4RGF0YVR5cGVbXX0gKi9cbiAgY29uc3QgZ3JvdXBlZEluZGV4RGF0YSA9IFtdXG5cbiAgZm9yIChjb25zdCBpbmRleFJvdyBvZiBpbmRleFJvd3MpIHtcbiAgICBjb25zdCBleGlzdGluZ0luZGV4RGF0YSA9IGluZGV4RGF0YUJ5TmFtZS5nZXQoaW5kZXhSb3cuaW5kZXhfbmFtZSlcblxuICAgIGlmIChleGlzdGluZ0luZGV4RGF0YSkge1xuICAgICAgZXhpc3RpbmdJbmRleERhdGEuY29sdW1uTmFtZXMucHVzaChpbmRleFJvdy5jb2x1bW5fbmFtZSlcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgY29uc3QgaW5kZXhEYXRhID0ge1xuICAgICAgY29sdW1uTmFtZXM6IFtpbmRleFJvdy5jb2x1bW5fbmFtZV0sXG4gICAgICBpbmRleF9uYW1lOiBpbmRleFJvdy5pbmRleF9uYW1lLFxuICAgICAgaXNfcHJpbWFyeV9rZXk6IGluZGV4Um93LmlzX3ByaW1hcnlfa2V5LFxuICAgICAgaXNfdW5pcXVlOiBpbmRleFJvdy5pc191bmlxdWUsXG4gICAgICB0YWJsZV9uYW1lOiBpbmRleFJvdy50YWJsZV9uYW1lXG4gICAgfVxuXG4gICAgaW5kZXhEYXRhQnlOYW1lLnNldChpbmRleFJvdy5pbmRleF9uYW1lLCBpbmRleERhdGEpXG4gICAgZ3JvdXBlZEluZGV4RGF0YS5wdXNoKGluZGV4RGF0YSlcbiAgfVxuXG4gIHJldHVybiBncm91cGVkSW5kZXhEYXRhXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlRHJpdmVyc01zc3FsVGFibGUgZXh0ZW5kcyBCYXNlVGFibGUge1xuICAvKipcbiAgICogUnVucyBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLmpzXCIpLmRlZmF1bHR9IGRyaXZlciAtIERhdGFiYXNlIGRyaXZlciBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBkYXRhIC0gRGF0YSBwYXlsb2FkLlxuICAgKi9cbiAgY29uc3RydWN0b3IoZHJpdmVyLCBkYXRhKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuZGF0YSA9IGRhdGFcbiAgICB0aGlzLmRyaXZlciA9IGRyaXZlclxuICB9XG5cbiAgYXN5bmMgZ2V0Q29sdW1ucygpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXREcml2ZXIoKS5fY2FjaGVkVGFibGVTY2hlbWFNZXRhZGF0YSh0aGlzLmdldE5hbWUoKSwgXCJjb2x1bW5zXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZHJpdmVyLnF1ZXJ5KGBcbiAgICAgICAgU0VMRUNUXG4gICAgICAgICAgKixcbiAgICAgICAgICBDT0xVTU5QUk9QRVJUWShvYmplY3RfaWQoVEFCTEVfU0NIRU1BICsgJy4nICsgVEFCTEVfTkFNRSksIENPTFVNTl9OQU1FLCAnSXNJZGVudGl0eScpIEFTIGlzSWRlbnRpdHlcbiAgICAgICAgRlJPTSBbSU5GT1JNQVRJT05fU0NIRU1BXS5bQ09MVU1OU11cbiAgICAgICAgV0hFUkUgW1RBQkxFX05BTUVdID0gJHt0aGlzLmRyaXZlci5xdW90ZSh0aGlzLmdldE5hbWUoKSl9XG4gICAgICBgKVxuICAgICAgY29uc3QgY29sdW1ucyA9IFtdXG5cbiAgICAgIGZvciAoY29uc3QgZGF0YSBvZiByZXN1bHQpIHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gbmV3IENvbHVtbih0aGlzLCBkYXRhKVxuXG4gICAgICAgIGNvbHVtbnMucHVzaChjb2x1bW4pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb2x1bW5zXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldEZvcmVpZ25LZXlzKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldERyaXZlcigpLl9jYWNoZWRUYWJsZVNjaGVtYU1ldGFkYXRhKHRoaXMuZ2V0TmFtZSgpLCBcImZvcmVpZ25LZXlzXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHNxbCA9IGBcbiAgICAgICAgU0VMRUNUXG4gICAgICAgICAgICBmay5uYW1lIEFTIENPTlNUUkFJTlRfTkFNRSxcbiAgICAgICAgICAgIHRwLm5hbWUgQVMgUGFyZW50VGFibGUsXG4gICAgICAgICAgICByZWYubmFtZSBBUyBSZWZlcmVuY2VkVGFibGUsXG4gICAgICAgICAgICBjcC5uYW1lIEFTIFBhcmVudENvbHVtbixcbiAgICAgICAgICAgIGNyZWYubmFtZSBBUyBSZWZlcmVuY2VkQ29sdW1uLFxuICAgICAgICAgICAgdHAubmFtZSBBUyBUYWJsZU5hbWVcbiAgICAgICAgRlJPTSBzeXMuZm9yZWlnbl9rZXlzIGZrXG4gICAgICAgIElOTkVSIEpPSU4gc3lzLmZvcmVpZ25fa2V5X2NvbHVtbnMgZmtjXG4gICAgICAgICAgICBPTiBma2MuY29uc3RyYWludF9vYmplY3RfaWQgPSBmay5vYmplY3RfaWRcbiAgICAgICAgSU5ORVIgSk9JTiBzeXMudGFibGVzIHRwXG4gICAgICAgICAgICBPTiBma2MucGFyZW50X29iamVjdF9pZCA9IHRwLm9iamVjdF9pZFxuICAgICAgICBJTk5FUiBKT0lOIHN5cy5jb2x1bW5zIGNwXG4gICAgICAgICAgICBPTiBma2MucGFyZW50X29iamVjdF9pZCA9IGNwLm9iamVjdF9pZFxuICAgICAgICAgICAgQU5EIGZrYy5wYXJlbnRfY29sdW1uX2lkID0gY3AuY29sdW1uX2lkXG4gICAgICAgIElOTkVSIEpPSU4gc3lzLnRhYmxlcyByZWZcbiAgICAgICAgICAgIE9OIGZrYy5yZWZlcmVuY2VkX29iamVjdF9pZCA9IHJlZi5vYmplY3RfaWRcbiAgICAgICAgSU5ORVIgSk9JTiBzeXMuY29sdW1ucyBjcmVmXG4gICAgICAgICAgICBPTiBma2MucmVmZXJlbmNlZF9vYmplY3RfaWQgPSBjcmVmLm9iamVjdF9pZFxuICAgICAgICAgICAgQU5EIGZrYy5yZWZlcmVuY2VkX2NvbHVtbl9pZCA9IGNyZWYuY29sdW1uX2lkXG4gICAgICAgIFdIRVJFIHRwLm5hbWUgPSAke3RoaXMuZHJpdmVyLnF1b3RlKHRoaXMuZ2V0TmFtZSgpKX1cbiAgICAgICAgT1JERVIgQlkgQ09OU1RSQUlOVF9OQU1FLCBQYXJlbnRUYWJsZSwgUmVmZXJlbmNlZFRhYmxlO1xuICAgICAgYFxuXG4gICAgICBjb25zdCBmb3JlaWduS2V5Um93cyA9IGF3YWl0IHRoaXMuZHJpdmVyLnF1ZXJ5KHNxbClcbiAgICAgIGNvbnN0IGZvcmVpZ25LZXlzID0gW11cblxuICAgICAgZm9yIChjb25zdCBmb3JlaWduS2V5Um93IG9mIGZvcmVpZ25LZXlSb3dzKSB7XG4gICAgICAgIGNvbnN0IGZvcmVpZ25LZXkgPSBuZXcgRm9yZWlnbktleShmb3JlaWduS2V5Um93KVxuXG4gICAgICAgIGZvcmVpZ25LZXlzLnB1c2goZm9yZWlnbktleSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcmVpZ25LZXlzXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldEluZGV4ZXMoKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RHJpdmVyKCkuX2NhY2hlZFRhYmxlU2NoZW1hTWV0YWRhdGEodGhpcy5nZXROYW1lKCksIFwiaW5kZXhlc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5nZXRPcHRpb25zKClcbiAgICAgIGNvbnN0IHNxbCA9IGBcbiAgICAgICAgU0VMRUNUXG4gICAgICAgICAgc3lzLnRhYmxlcy5uYW1lIEFTIHRhYmxlX25hbWUsXG4gICAgICAgICAgc3lzLmNvbHVtbnMubmFtZSBBUyBjb2x1bW5fbmFtZSxcbiAgICAgICAgICBzeXMuaW5kZXhlcy5uYW1lIEFTIGluZGV4X25hbWUsXG4gICAgICAgICAgc3lzLmluZGV4ZXMuaXNfdW5pcXVlLFxuICAgICAgICAgIHN5cy5pbmRleGVzLmlzX3ByaW1hcnlfa2V5XG4gICAgICAgIEZST00gc3lzLmluZGV4ZXNcbiAgICAgICAgSU5ORVIgSk9JTiBzeXMuaW5kZXhfY29sdW1ucyBPTiBzeXMuaW5kZXhlcy5vYmplY3RfaWQgPSBzeXMuaW5kZXhfY29sdW1ucy5vYmplY3RfaWQgQU5EIHN5cy5pbmRleGVzLmluZGV4X2lkID0gc3lzLmluZGV4X2NvbHVtbnMuaW5kZXhfaWRcbiAgICAgICAgSU5ORVIgSk9JTiBzeXMuY29sdW1ucyBPTiBzeXMuaW5kZXhfY29sdW1ucy5vYmplY3RfaWQgPSBzeXMuY29sdW1ucy5vYmplY3RfaWQgQU5EIHN5cy5pbmRleF9jb2x1bW5zLmNvbHVtbl9pZCA9IHN5cy5jb2x1bW5zLmNvbHVtbl9pZFxuICAgICAgICBJTk5FUiBKT0lOIHN5cy50YWJsZXMgT04gc3lzLmluZGV4ZXMub2JqZWN0X2lkID0gc3lzLnRhYmxlcy5vYmplY3RfaWRcbiAgICAgICAgV0hFUkVcbiAgICAgICAgICBzeXMudGFibGVzLm5hbWUgPSAke29wdGlvbnMucXVvdGUodGhpcy5nZXROYW1lKCkpfSBBTkRcbiAgICAgICAgICBzeXMuaW5kZXhfY29sdW1ucy5pc19pbmNsdWRlZF9jb2x1bW4gPSAwXG4gICAgICAgIE9SREVSIEJZXG4gICAgICAgICAgc3lzLmluZGV4ZXMubmFtZSxcbiAgICAgICAgICBzeXMuaW5kZXhfY29sdW1ucy5rZXlfb3JkaW5hbFxuICAgICAgYFxuXG4gICAgICBjb25zdCByb3dzID0gYXdhaXQgdGhpcy5nZXREcml2ZXIoKS5xdWVyeShzcWwpXG4gICAgICBjb25zdCBpbmRleGVzID0gW11cbiAgICAgIGNvbnN0IGluZGV4Um93cyA9IHJvd3MubWFwKChyb3cpID0+IG5vcm1hbGl6ZUluZGV4TWV0YWRhdGFSb3cocm93KSlcblxuICAgICAgZm9yIChjb25zdCBpbmRleERhdGEgb2YgZ3JvdXBNc3NxbEluZGV4Um93cyhpbmRleFJvd3MpKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gbmV3IENvbHVtbnNJbmRleCh0aGlzLCBpbmRleERhdGEpXG5cbiAgICAgICAgaW5kZXhlcy5wdXNoKGluZGV4KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW5kZXhlc1xuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgbmFtZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgdGFibGUgbmFtZS5cbiAgICovXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAoZGlnZyh0aGlzLmRhdGEsIFwiVEFCTEVfTkFNRVwiKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHRydW5jYXRlLlxuICAgKiBAcGFyYW0ge3tjYXNjYWRlOiBib29sZWFufX0gW2FyZ3NdIC0gVHJ1bmNhdGUgb3B0aW9ucy5cbiAgICogQHJldHVybnMge1Byb21pc2U8QXJyYXk8UmVjb3JkPHN0cmluZywgPz4+Pn0gLSBSZXNvbHZlcyB3aXRoIHRoZSB0cnVuY2F0ZS5cbiAgICovXG4gIGFzeW5jIHRydW5jYXRlKGFyZ3MpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIHRoaXMuZ2V0RHJpdmVyKCkuX2Fzc2VydE5vdFJlYWRPbmx5KClcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RHJpdmVyKCkucXVlcnkoYFRSVU5DQVRFIFRBQkxFICR7dGhpcy5nZXRPcHRpb25zKCkucXVvdGVUYWJsZU5hbWUodGhpcy5nZXROYW1lKCkpfWApXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGVycm9yLm1lc3NhZ2Uuc3RhcnRzV2l0aChcIlF1ZXJ5IGZhaWxlZCAnQ2Fubm90IHRydW5jYXRlIHRhYmxlXCIpKSB7XG4gICAgICAgIC8vIFRydW5jYXRlIHRhYmxlIGlzIHJlYWxseSBidWdneSBmb3Igc29tZSByZWFzb24gLSBmYWxsIGJhY2sgdG8gZGVsZXRlIGFsbCByb3dzIGluc3RlYWRcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RHJpdmVyKCkucXVlcnkoYERFTEVURSBGUk9NICR7dGhpcy5nZXRPcHRpb25zKCkucXVvdGVUYWJsZU5hbWUodGhpcy5nZXROYW1lKCkpfWApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alter-table.d.ts","sourceRoot":"","sources":["../../../../../../src/database/drivers/mysql/sql/alter-table.js"],"names":[],"mappings":"AAKA;
|
|
1
|
+
{"version":3,"file":"alter-table.d.ts","sourceRoot":"","sources":["../../../../../../src/database/drivers/mysql/sql/alter-table.js"],"names":[],"mappings":"AAKA;CAuDC;2BA1D0B,oCAAoC"}
|
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
import AlterTableBase from "../../../query/alter-table-base.js";
|
|
3
3
|
import TableColumn from "../../../table-data/table-column.js";
|
|
4
4
|
export default class VelociousDatabaseConnectionDriversMysqlSqlAlterTable extends AlterTableBase {
|
|
5
|
+
/**
|
|
6
|
+
* Runs get drop foreign key sql.
|
|
7
|
+
* @param {import("../../../table-data/table-foreign-key.js").default} foreignKey - Foreign key to drop.
|
|
8
|
+
* @returns {string} - SQL fragment that removes the foreign key.
|
|
9
|
+
*/
|
|
10
|
+
getDropForeignKeySQL(foreignKey) {
|
|
11
|
+
const name = foreignKey.getName();
|
|
12
|
+
if (!name)
|
|
13
|
+
throw new Error(`Cannot remove unnamed foreign key on ${foreignKey.getTableName()}.${foreignKey.getColumnName()}`);
|
|
14
|
+
return `DROP FOREIGN KEY ${this.getOptions().quoteIndexName(name)}`;
|
|
15
|
+
}
|
|
5
16
|
/**
|
|
6
17
|
* Builds MySQL ALTER TABLE statements, adding indexes atomically with columns.
|
|
7
18
|
* @returns {Promise<string[]>} - Resolves with SQL statements.
|
|
@@ -37,4 +48,4 @@ export default class VelociousDatabaseConnectionDriversMysqlSqlAlterTable extend
|
|
|
37
48
|
return [sql];
|
|
38
49
|
}
|
|
39
50
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWx0ZXItdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9teXNxbC9zcWwvYWx0ZXItdGFibGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sY0FBYyxNQUFNLG9DQUFvQyxDQUFBO0FBQy9ELE9BQU8sV0FBVyxNQUFNLHFDQUFxQyxDQUFBO0FBRTdELE1BQU0sQ0FBQyxPQUFPLE9BQU8sb0RBQXFELFNBQVEsY0FBYztJQUM5Rjs7OztPQUlHO0lBQ0gsb0JBQW9CLENBQUMsVUFBVTtRQUM3QixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUE7UUFFakMsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxVQUFVLENBQUMsWUFBWSxFQUFFLElBQUksVUFBVSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUU3SCxPQUFPLG9CQUFvQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUE7SUFDckUsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxNQUFNO1FBQ1YsTUFBTSxJQUFJLEdBQUcsTUFBTSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUUzQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFBO1FBQ3JDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFBO1FBRXRHLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNqQyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFakIsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM1QixHQUFHLElBQUksT0FBTyxDQUFBO1lBRWQsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO2dCQUFFLEdBQUcsSUFBSSxTQUFTLENBQUE7WUFFdkMsR0FBRyxJQUFJLFFBQVEsQ0FBQTtZQUVmLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQTtZQUVqQyxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNsQyxHQUFHLElBQUksSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUE7WUFDaEQsQ0FBQztZQUVELEdBQUcsSUFBSSxJQUFJLENBQUE7WUFDWCxHQUFHLElBQUksS0FBSztpQkFDVCxVQUFVLEVBQUU7aUJBQ1osR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2QsTUFBTSxVQUFVLEdBQUcsTUFBTSxZQUFZLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7Z0JBRTVFLE9BQU8sT0FBTyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUM1QyxDQUFDLENBQUM7aUJBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ2IsR0FBRyxJQUFJLEdBQUcsQ0FBQTtRQUNaLENBQUM7UUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEFsdGVyVGFibGVCYXNlIGZyb20gXCIuLi8uLi8uLi9xdWVyeS9hbHRlci10YWJsZS1iYXNlLmpzXCJcbmltcG9ydCBUYWJsZUNvbHVtbiBmcm9tIFwiLi4vLi4vLi4vdGFibGUtZGF0YS90YWJsZS1jb2x1bW4uanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZUNvbm5lY3Rpb25Ecml2ZXJzTXlzcWxTcWxBbHRlclRhYmxlIGV4dGVuZHMgQWx0ZXJUYWJsZUJhc2Uge1xuICAvKipcbiAgICogUnVucyBnZXQgZHJvcCBmb3JlaWduIGtleSBzcWwuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vLi4vLi4vdGFibGUtZGF0YS90YWJsZS1mb3JlaWduLWtleS5qc1wiKS5kZWZhdWx0fSBmb3JlaWduS2V5IC0gRm9yZWlnbiBrZXkgdG8gZHJvcC5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBTUUwgZnJhZ21lbnQgdGhhdCByZW1vdmVzIHRoZSBmb3JlaWduIGtleS5cbiAgICovXG4gIGdldERyb3BGb3JlaWduS2V5U1FMKGZvcmVpZ25LZXkpIHtcbiAgICBjb25zdCBuYW1lID0gZm9yZWlnbktleS5nZXROYW1lKClcblxuICAgIGlmICghbmFtZSkgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVtb3ZlIHVubmFtZWQgZm9yZWlnbiBrZXkgb24gJHtmb3JlaWduS2V5LmdldFRhYmxlTmFtZSgpfS4ke2ZvcmVpZ25LZXkuZ2V0Q29sdW1uTmFtZSgpfWApXG5cbiAgICByZXR1cm4gYERST1AgRk9SRUlHTiBLRVkgJHt0aGlzLmdldE9wdGlvbnMoKS5xdW90ZUluZGV4TmFtZShuYW1lKX1gXG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIE15U1FMIEFMVEVSIFRBQkxFIHN0YXRlbWVudHMsIGFkZGluZyBpbmRleGVzIGF0b21pY2FsbHkgd2l0aCBjb2x1bW5zLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmdbXT59IC0gUmVzb2x2ZXMgd2l0aCBTUUwgc3RhdGVtZW50cy5cbiAgICovXG4gIGFzeW5jIHRvU1FMcygpIHtcbiAgICBjb25zdCBzcWxzID0gYXdhaXQgc3VwZXIudG9TUUxzKClcbiAgICBjb25zdCBpbmRleGVzID0gdGhpcy50YWJsZURhdGEuZ2V0SW5kZXhlcygpXG5cbiAgICBpZiAoaW5kZXhlcy5sZW5ndGggPT09IDApIHJldHVybiBzcWxzXG4gICAgaWYgKHNxbHMubGVuZ3RoICE9PSAxKSB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBvbmUgTXlTUUwgQUxURVIgVEFCTEUgc3RhdGVtZW50IHdoZW4gYWRkaW5nIGluZGV4ZXNcIilcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbnMoKVxuICAgIGxldCBzcWwgPSBzcWxzWzBdXG5cbiAgICBmb3IgKGNvbnN0IGluZGV4IG9mIGluZGV4ZXMpIHtcbiAgICAgIHNxbCArPSBcIiwgQUREXCJcblxuICAgICAgaWYgKGluZGV4LmdldFVuaXF1ZSgpKSBzcWwgKz0gXCIgVU5JUVVFXCJcblxuICAgICAgc3FsICs9IFwiIElOREVYXCJcblxuICAgICAgY29uc3QgaW5kZXhOYW1lID0gaW5kZXguZ2V0TmFtZSgpXG5cbiAgICAgIGlmICh0eXBlb2YgaW5kZXhOYW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHNxbCArPSBgICR7b3B0aW9ucy5xdW90ZUluZGV4TmFtZShpbmRleE5hbWUpfWBcbiAgICAgIH1cblxuICAgICAgc3FsICs9IFwiIChcIlxuICAgICAgc3FsICs9IGluZGV4XG4gICAgICAgIC5nZXRDb2x1bW5zKClcbiAgICAgICAgLm1hcCgoY29sdW1uKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29sdW1uTmFtZSA9IGNvbHVtbiBpbnN0YW5jZW9mIFRhYmxlQ29sdW1uID8gY29sdW1uLmdldE5hbWUoKSA6IGNvbHVtblxuXG4gICAgICAgICAgcmV0dXJuIG9wdGlvbnMucXVvdGVDb2x1bW5OYW1lKGNvbHVtbk5hbWUpXG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKFwiLCBcIilcbiAgICAgIHNxbCArPSBcIilcIlxuICAgIH1cblxuICAgIHJldHVybiBbc3FsXVxuICB9XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/column.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/column.js"],"names":[],"mappings":"AAKA;IACE;;;;OAIG;IACH,mBAHW,OAAO,kBAAkB,EAAE,OAAO,QAClC,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,EAM3B;IAFC,0BAAgB;IAChB,0CAAkB;IAqBpB,oBAEC;IAED,eAEC;IAED,gBAEC;IAYD,eAMC;CACF;uBA9DsB,mBAAmB"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
import BaseColumn from "../base-column.js";
|
|
3
|
-
import ColumnsIndex from "./columns-index.js";
|
|
4
3
|
import { digg } from "diggerize";
|
|
5
4
|
export default class VelociousDatabaseDriversPgsqlColumn extends BaseColumn {
|
|
6
5
|
/**
|
|
@@ -20,28 +19,8 @@ export default class VelociousDatabaseDriversPgsqlColumn extends BaseColumn {
|
|
|
20
19
|
return digg(this, "data", "is_primary_key") === 1;
|
|
21
20
|
}
|
|
22
21
|
async getIndexes() {
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
SELECT
|
|
26
|
-
pg_attribute.attname AS column_name,
|
|
27
|
-
pg_index.indexrelid::regclass as index_name,
|
|
28
|
-
pg_class.relnamespace::regnamespace as schema_name,
|
|
29
|
-
pg_class.relname as table_name,
|
|
30
|
-
pg_index.indisprimary as is_primary_key,
|
|
31
|
-
pg_index.indisunique as is_unique
|
|
32
|
-
FROM pg_index
|
|
33
|
-
JOIN pg_class ON pg_class.oid = pg_index.indrelid
|
|
34
|
-
JOIN pg_attribute ON pg_attribute.attrelid = pg_class.oid AND pg_attribute.attnum = ANY(pg_index.indkey)
|
|
35
|
-
WHERE
|
|
36
|
-
pg_attribute.attname = ${options.quote(this.getName())} AND
|
|
37
|
-
pg_class.relname = ${options.quote(this.getTable().getName())}
|
|
38
|
-
`);
|
|
39
|
-
const indexes = [];
|
|
40
|
-
for (const indexRow of indexesRows) {
|
|
41
|
-
const columnsIndex = new ColumnsIndex(this.getTable(), indexRow);
|
|
42
|
-
indexes.push(columnsIndex);
|
|
43
|
-
}
|
|
44
|
-
return indexes;
|
|
22
|
+
const indexes = await this.getTable().getIndexes();
|
|
23
|
+
return indexes.filter((index) => index.getColumnNames().includes(this.getName()));
|
|
45
24
|
}
|
|
46
25
|
getDefault() {
|
|
47
26
|
return digg(this, "data", "column_default");
|
|
@@ -71,4 +50,4 @@ export default class VelociousDatabaseDriversPgsqlColumn extends BaseColumn {
|
|
|
71
50
|
return digg(this, "data", "data_type");
|
|
72
51
|
}
|
|
73
52
|
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL2RyaXZlcnMvcGdzcWwvY29sdW1uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLFVBQVUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBRTlCLE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUNBQW9DLFNBQVEsVUFBVTtJQUN6RTs7OztPQUlHO0lBQ0gsWUFBWSxLQUFLLEVBQUUsSUFBSTtRQUNyQixLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ3BCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxZQUFZLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFBO0lBQ3ZHLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUVsRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNuRixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsMEJBQTBCLENBQUMsQ0FBQTtJQUN2RCxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUE7SUFDMUMsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLElBQUksU0FBUyxDQUFBO0lBQzFELENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUE7UUFFbkQsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdEIsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7UUFFNUMsSUFBSSxRQUFRLElBQUksU0FBUztZQUFFLE9BQU8sU0FBUyxDQUFBO1FBRTNDLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDeEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCYXNlQ29sdW1uIGZyb20gXCIuLi9iYXNlLWNvbHVtbi5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNQZ3NxbENvbHVtbiBleHRlbmRzIEJhc2VDb2x1bW4ge1xuICAvKipcbiAgICogUnVucyBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLXRhYmxlLmpzXCIpLmRlZmF1bHR9IHRhYmxlIC0gVGFibGUuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgPz59IGRhdGEgLSBEYXRhIHBheWxvYWQuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0YWJsZSwgZGF0YSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmRhdGEgPSBkYXRhXG4gICAgdGhpcy50YWJsZSA9IHRhYmxlXG4gIH1cblxuICBnZXRBdXRvSW5jcmVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLmdldERlZmF1bHQoKSA9PSBgbmV4dHZhbCgnJHt0aGlzLmdldFRhYmxlKCkuZ2V0TmFtZSgpfV8ke3RoaXMuZ2V0TmFtZSgpfV9zZXEnOjpyZWdjbGFzcylgXG4gIH1cblxuICBnZXRQcmltYXJ5S2V5KCkge1xuICAgIHJldHVybiBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcImlzX3ByaW1hcnlfa2V5XCIpID09PSAxXG4gIH1cblxuICBhc3luYyBnZXRJbmRleGVzKCkge1xuICAgIGNvbnN0IGluZGV4ZXMgPSBhd2FpdCB0aGlzLmdldFRhYmxlKCkuZ2V0SW5kZXhlcygpXG5cbiAgICByZXR1cm4gaW5kZXhlcy5maWx0ZXIoKGluZGV4KSA9PiBpbmRleC5nZXRDb2x1bW5OYW1lcygpLmluY2x1ZGVzKHRoaXMuZ2V0TmFtZSgpKSlcbiAgfVxuXG4gIGdldERlZmF1bHQoKSB7XG4gICAgcmV0dXJuIGRpZ2codGhpcywgXCJkYXRhXCIsIFwiY29sdW1uX2RlZmF1bHRcIilcbiAgfVxuXG4gIGdldE1heExlbmd0aCgpIHtcbiAgICByZXR1cm4gZGlnZyh0aGlzLCBcImRhdGFcIiwgXCJjaGFyYWN0ZXJfbWF4aW11bV9sZW5ndGhcIilcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIGRpZ2codGhpcywgXCJkYXRhXCIsIFwiY29sdW1uX25hbWVcIilcbiAgfVxuXG4gIGdldE5vdGVzKCkge1xuICAgIHJldHVybiBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcImNvbHVtbl9jb21tZW50XCIpIHx8IHVuZGVmaW5lZFxuICB9XG5cbiAgZ2V0TnVsbCgpIHtcbiAgICBjb25zdCBudWxsVmFsdWUgPSBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcImlzX251bGxhYmxlXCIpXG5cbiAgICBpZiAobnVsbFZhbHVlID09IFwiTk9cIikge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICBjb25zdCB0eXBlSGludCA9IHRoaXMuZ2V0VHlwZUhpbnRGcm9tTm90ZXMoKVxuXG4gICAgaWYgKHR5cGVIaW50ID09IFwiYm9vbGVhblwiKSByZXR1cm4gXCJib29sZWFuXCJcblxuICAgIHJldHVybiBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcImRhdGFfdHlwZVwiKVxuICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PgsqlColumnsIndexDataType type.
|
|
3
|
+
* @typedef {object} PgsqlColumnsIndexDataType
|
|
4
|
+
* @property {string[]} columnNames - Ordered index column names.
|
|
5
|
+
* @property {string} index_name - Index name.
|
|
6
|
+
* @property {boolean} is_primary_key - Whether the index is primary.
|
|
7
|
+
* @property {boolean} is_unique - Whether the index is unique.
|
|
8
|
+
* @property {string} table_name - Table name.
|
|
9
|
+
*/
|
|
1
10
|
export default class VelociousDatabaseDriversPgsqlColumn extends BaseColumnsIndex {
|
|
11
|
+
/**
|
|
12
|
+
* Runs constructor.
|
|
13
|
+
* @param {import("../base-table.js").default} table - Table.
|
|
14
|
+
* @param {PgsqlColumnsIndexDataType} data - Grouped index metadata.
|
|
15
|
+
*/
|
|
16
|
+
constructor(table: import("../base-table.js").default, data: PgsqlColumnsIndexDataType);
|
|
17
|
+
indexData: PgsqlColumnsIndexDataType;
|
|
2
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* PgsqlColumnsIndexDataType type.
|
|
21
|
+
*/
|
|
22
|
+
export type PgsqlColumnsIndexDataType = {
|
|
23
|
+
/**
|
|
24
|
+
* - Ordered index column names.
|
|
25
|
+
*/
|
|
26
|
+
columnNames: string[];
|
|
27
|
+
/**
|
|
28
|
+
* - Index name.
|
|
29
|
+
*/
|
|
30
|
+
index_name: string;
|
|
31
|
+
/**
|
|
32
|
+
* - Whether the index is primary.
|
|
33
|
+
*/
|
|
34
|
+
is_primary_key: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* - Whether the index is unique.
|
|
37
|
+
*/
|
|
38
|
+
is_unique: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* - Table name.
|
|
41
|
+
*/
|
|
42
|
+
table_name: string;
|
|
43
|
+
};
|
|
3
44
|
import BaseColumnsIndex from "../base-columns-index.js";
|
|
4
45
|
//# sourceMappingURL=columns-index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns-index.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/columns-index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"columns-index.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/columns-index.js"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AAEH;IACE;;;;OAIG;IACH,mBAHW,OAAO,kBAAkB,EAAE,OAAO,QAClC,yBAAyB,EAKnC;IADC,qCAAqB;CAmBxB;;;;;;;;iBAlCa,MAAM,EAAE;;;;gBACR,MAAM;;;;oBACN,OAAO;;;;eACP,OAAO;;;;gBACP,MAAM;;6BAVS,0BAA0B"}
|