typeorm 0.3.27-dev.fa3cd43 → 0.3.28-dev.1f19abb
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/browser/data-source/BaseDataSourceOptions.d.ts +18 -0
- package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
- package/browser/decorator/columns/Column.d.ts +7 -7
- package/browser/decorator/columns/Column.js +1 -1
- package/browser/decorator/columns/Column.js.map +1 -1
- package/browser/decorator/options/ColumnNumericOptions.d.ts +8 -1
- package/browser/decorator/options/ColumnNumericOptions.js.map +1 -1
- package/browser/decorator/options/ColumnOptions.d.ts +6 -0
- package/browser/decorator/options/ColumnOptions.js.map +1 -1
- package/browser/decorator/options/ColumnUnsignedOptions.d.ts +28 -0
- package/browser/decorator/options/ColumnUnsignedOptions.js +3 -0
- package/browser/decorator/options/ColumnUnsignedOptions.js.map +1 -0
- package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +3 -0
- package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.d.ts +15 -19
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +7 -27
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +7 -7
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +15 -13
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/typings.d.ts +5 -0
- package/browser/driver/mongodb/typings.js.map +1 -1
- package/browser/driver/mysql/MysqlDriver.d.ts +23 -19
- package/browser/driver/mysql/MysqlDriver.js +63 -29
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.d.ts +1 -0
- package/browser/driver/mysql/MysqlQueryRunner.js +12 -6
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.d.ts +2 -2
- package/browser/driver/postgres/PostgresDriver.js +42 -3
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.js +7 -0
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapDriver.js +6 -0
- package/browser/driver/sap/SapDriver.js.map +1 -1
- package/browser/driver/spanner/SpannerConnectionOptions.d.ts +0 -5
- package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -1
- package/browser/driver/spanner/SpannerDriver.d.ts +0 -4
- package/browser/driver/spanner/SpannerDriver.js +0 -4
- package/browser/driver/spanner/SpannerDriver.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
- package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/driver/types/ColumnTypes.d.ts +4 -4
- package/browser/driver/types/ColumnTypes.js.map +1 -1
- package/browser/entity-schema/EntitySchemaOptions.d.ts +2 -0
- package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaTransformer.js +9 -0
- package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.js +1 -8
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/query-builder/QueryBuilder.js +26 -12
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.js +42 -35
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/commands/InitCommand.js +22 -15
- package/commands/InitCommand.js.map +1 -1
- package/data-source/BaseDataSourceOptions.d.ts +18 -0
- package/data-source/BaseDataSourceOptions.js.map +1 -1
- package/decorator/columns/Column.d.ts +7 -7
- package/decorator/columns/Column.js +1 -1
- package/decorator/columns/Column.js.map +1 -1
- package/decorator/options/ColumnNumericOptions.d.ts +8 -1
- package/decorator/options/ColumnNumericOptions.js.map +1 -1
- package/decorator/options/ColumnOptions.d.ts +6 -0
- package/decorator/options/ColumnOptions.js.map +1 -1
- package/decorator/options/ColumnUnsignedOptions.d.ts +28 -0
- package/decorator/options/{ColumnWithWidthOptions.js → ColumnUnsignedOptions.js} +1 -1
- package/decorator/options/ColumnUnsignedOptions.js.map +1 -0
- package/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +3 -0
- package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlDriver.d.ts +15 -19
- package/driver/aurora-mysql/AuroraMysqlDriver.js +7 -27
- package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +7 -7
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +15 -13
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
- package/driver/mongodb/typings.d.ts +5 -0
- package/driver/mongodb/typings.js.map +1 -1
- package/driver/mysql/MysqlDriver.d.ts +23 -19
- package/driver/mysql/MysqlDriver.js +63 -29
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.d.ts +1 -0
- package/driver/mysql/MysqlQueryRunner.js +12 -6
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresDriver.d.ts +2 -2
- package/driver/postgres/PostgresDriver.js +42 -3
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.js +7 -0
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/sap/SapDriver.js +6 -0
- package/driver/sap/SapDriver.js.map +1 -1
- package/driver/spanner/SpannerConnectionOptions.d.ts +0 -5
- package/driver/spanner/SpannerConnectionOptions.js.map +1 -1
- package/driver/spanner/SpannerDriver.d.ts +0 -4
- package/driver/spanner/SpannerDriver.js +0 -4
- package/driver/spanner/SpannerDriver.js.map +1 -1
- package/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
- package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.js +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/driver/types/ColumnTypes.d.ts +4 -4
- package/driver/types/ColumnTypes.js.map +1 -1
- package/entity-schema/EntitySchemaOptions.d.ts +2 -0
- package/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/entity-schema/EntitySchemaTransformer.js +9 -0
- package/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.js +1 -8
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/package.json +1 -1
- package/query-builder/QueryBuilder.js +26 -12
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/SelectQueryBuilder.js +42 -35
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/decorator/options/ColumnWithWidthOptions.d.ts +0 -19
- package/browser/decorator/options/ColumnWithWidthOptions.js +0 -3
- package/browser/decorator/options/ColumnWithWidthOptions.js.map +0 -1
- package/decorator/options/ColumnWithWidthOptions.d.ts +0 -19
- package/decorator/options/ColumnWithWidthOptions.js.map +0 -1
|
@@ -83,8 +83,7 @@ export declare class PostgresDriver implements Driver {
|
|
|
83
83
|
/**
|
|
84
84
|
* Gets list of supported column data types by a driver.
|
|
85
85
|
*
|
|
86
|
-
* @see https://www.
|
|
87
|
-
* @see https://www.postgresql.org/docs/9.2/static/datatype.html
|
|
86
|
+
* @see https://www.postgresql.org/docs/current/datatype.html
|
|
88
87
|
*/
|
|
89
88
|
supportedDataTypes: ColumnType[];
|
|
90
89
|
/**
|
|
@@ -147,6 +146,7 @@ export declare class PostgresDriver implements Driver {
|
|
|
147
146
|
hasCubeColumns: boolean;
|
|
148
147
|
hasGeometryColumns: boolean;
|
|
149
148
|
hasLtreeColumns: boolean;
|
|
149
|
+
hasVectorColumns: boolean;
|
|
150
150
|
hasExclusionConstraints: boolean;
|
|
151
151
|
hasExtensions: boolean;
|
|
152
152
|
}>;
|
|
@@ -42,8 +42,7 @@ export class PostgresDriver {
|
|
|
42
42
|
/**
|
|
43
43
|
* Gets list of supported column data types by a driver.
|
|
44
44
|
*
|
|
45
|
-
* @see https://www.
|
|
46
|
-
* @see https://www.postgresql.org/docs/9.2/static/datatype.html
|
|
45
|
+
* @see https://www.postgresql.org/docs/current/datatype.html
|
|
47
46
|
*/
|
|
48
47
|
this.supportedDataTypes = [
|
|
49
48
|
"int",
|
|
@@ -102,6 +101,7 @@ export class PostgresDriver {
|
|
|
102
101
|
"xml",
|
|
103
102
|
"json",
|
|
104
103
|
"jsonb",
|
|
104
|
+
"jsonpath",
|
|
105
105
|
"int4range",
|
|
106
106
|
"int8range",
|
|
107
107
|
"numrange",
|
|
@@ -118,6 +118,8 @@ export class PostgresDriver {
|
|
|
118
118
|
"geography",
|
|
119
119
|
"cube",
|
|
120
120
|
"ltree",
|
|
121
|
+
"vector",
|
|
122
|
+
"halfvec",
|
|
121
123
|
];
|
|
122
124
|
/**
|
|
123
125
|
* Returns type of upsert supported by driver if any
|
|
@@ -138,6 +140,8 @@ export class PostgresDriver {
|
|
|
138
140
|
"bit",
|
|
139
141
|
"varbit",
|
|
140
142
|
"bit varying",
|
|
143
|
+
"vector",
|
|
144
|
+
"halfvec",
|
|
141
145
|
];
|
|
142
146
|
/**
|
|
143
147
|
* Gets list of column data types that support precision by a driver.
|
|
@@ -285,7 +289,7 @@ export class PostgresDriver {
|
|
|
285
289
|
}
|
|
286
290
|
async enableExtensions(extensionsMetadata, connection) {
|
|
287
291
|
const { logger } = this.connection;
|
|
288
|
-
const { hasUuidColumns, hasCitextColumns, hasHstoreColumns, hasCubeColumns, hasGeometryColumns, hasLtreeColumns, hasExclusionConstraints, } = extensionsMetadata;
|
|
292
|
+
const { hasUuidColumns, hasCitextColumns, hasHstoreColumns, hasCubeColumns, hasGeometryColumns, hasLtreeColumns, hasVectorColumns, hasExclusionConstraints, } = extensionsMetadata;
|
|
289
293
|
if (hasUuidColumns)
|
|
290
294
|
try {
|
|
291
295
|
await this.executeQuery(connection, `CREATE EXTENSION IF NOT EXISTS "${this.options.uuidExtension || "uuid-ossp"}"`);
|
|
@@ -328,6 +332,13 @@ export class PostgresDriver {
|
|
|
328
332
|
catch (_) {
|
|
329
333
|
logger.log("warn", "At least one of the entities has a ltree column, but the 'ltree' extension cannot be installed automatically. Please install it manually using superuser rights");
|
|
330
334
|
}
|
|
335
|
+
if (hasVectorColumns)
|
|
336
|
+
try {
|
|
337
|
+
await this.executeQuery(connection, `CREATE EXTENSION IF NOT EXISTS "vector"`);
|
|
338
|
+
}
|
|
339
|
+
catch (_) {
|
|
340
|
+
logger.log("warn", "At least one of the entities has a vector column, but the 'vector' extension (pgvector) cannot be installed automatically. Please install it manually using superuser rights");
|
|
341
|
+
}
|
|
331
342
|
if (hasExclusionConstraints)
|
|
332
343
|
try {
|
|
333
344
|
// The btree_gist extension provides operator support in PostgreSQL exclusion constraints
|
|
@@ -358,6 +369,9 @@ export class PostgresDriver {
|
|
|
358
369
|
return (metadata.columns.filter((column) => column.type === "ltree")
|
|
359
370
|
.length > 0);
|
|
360
371
|
});
|
|
372
|
+
const hasVectorColumns = this.connection.entityMetadatas.some((metadata) => {
|
|
373
|
+
return metadata.columns.some((column) => column.type === "vector" || column.type === "halfvec");
|
|
374
|
+
});
|
|
361
375
|
const hasExclusionConstraints = this.connection.entityMetadatas.some((metadata) => {
|
|
362
376
|
return metadata.exclusions.length > 0;
|
|
363
377
|
});
|
|
@@ -368,6 +382,7 @@ export class PostgresDriver {
|
|
|
368
382
|
hasCubeColumns,
|
|
369
383
|
hasGeometryColumns,
|
|
370
384
|
hasLtreeColumns,
|
|
385
|
+
hasVectorColumns,
|
|
371
386
|
hasExclusionConstraints,
|
|
372
387
|
hasExtensions: hasUuidColumns ||
|
|
373
388
|
hasCitextColumns ||
|
|
@@ -375,6 +390,7 @@ export class PostgresDriver {
|
|
|
375
390
|
hasGeometryColumns ||
|
|
376
391
|
hasCubeColumns ||
|
|
377
392
|
hasLtreeColumns ||
|
|
393
|
+
hasVectorColumns ||
|
|
378
394
|
hasExclusionConstraints,
|
|
379
395
|
};
|
|
380
396
|
}
|
|
@@ -429,6 +445,15 @@ export class PostgresDriver {
|
|
|
429
445
|
else if (["json", "jsonb", ...this.spatialTypes].indexOf(columnMetadata.type) >= 0) {
|
|
430
446
|
return JSON.stringify(value);
|
|
431
447
|
}
|
|
448
|
+
else if (columnMetadata.type === "vector" ||
|
|
449
|
+
columnMetadata.type === "halfvec") {
|
|
450
|
+
if (Array.isArray(value)) {
|
|
451
|
+
return `[${value.join(",")}]`;
|
|
452
|
+
}
|
|
453
|
+
else {
|
|
454
|
+
return value;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
432
457
|
else if (columnMetadata.type === "hstore") {
|
|
433
458
|
if (typeof value === "string") {
|
|
434
459
|
return value;
|
|
@@ -502,6 +527,16 @@ export class PostgresDriver {
|
|
|
502
527
|
else if (columnMetadata.type === "time") {
|
|
503
528
|
value = DateUtils.mixedTimeToString(value);
|
|
504
529
|
}
|
|
530
|
+
else if (columnMetadata.type === "vector" ||
|
|
531
|
+
columnMetadata.type === "halfvec") {
|
|
532
|
+
if (typeof value === "string" &&
|
|
533
|
+
value.startsWith("[") &&
|
|
534
|
+
value.endsWith("]")) {
|
|
535
|
+
if (value === "[]")
|
|
536
|
+
return [];
|
|
537
|
+
return value.slice(1, -1).split(",").map(Number);
|
|
538
|
+
}
|
|
539
|
+
}
|
|
505
540
|
else if (columnMetadata.type === "hstore") {
|
|
506
541
|
if (columnMetadata.hstoreType === "object") {
|
|
507
542
|
const unescapeString = (str) => str.replace(/\\./g, (m) => m[1]);
|
|
@@ -857,6 +892,10 @@ export class PostgresDriver {
|
|
|
857
892
|
type = column.type;
|
|
858
893
|
}
|
|
859
894
|
}
|
|
895
|
+
else if (column.type === "vector" || column.type === "halfvec") {
|
|
896
|
+
type =
|
|
897
|
+
column.type + (column.length ? "(" + column.length + ")" : "");
|
|
898
|
+
}
|
|
860
899
|
if (column.isArray)
|
|
861
900
|
type += " array";
|
|
862
901
|
return type;
|