typeorm 0.3.12-dev.8668c29 → 0.3.12-dev.8731858
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/DataSource.js +1 -1
- package/browser/data-source/DataSource.js.map +1 -1
- package/browser/decorator/options/SpatialColumnOptions.d.ts +2 -1
- package/browser/decorator/options/SpatialColumnOptions.js.map +1 -1
- package/browser/driver/Driver.d.ts +1 -1
- package/browser/driver/Driver.js.map +1 -1
- package/browser/driver/DriverUtils.js +1 -1
- package/browser/driver/DriverUtils.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.d.ts +2 -1
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +6 -0
- package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +3 -1
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +5 -0
- package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.d.ts +19 -14
- package/browser/driver/cockroachdb/CockroachDriver.js +128 -13
- package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +28 -0
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +283 -11
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/MongoDriver.d.ts +5 -0
- package/browser/driver/mongodb/MongoDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlDriver.d.ts +2 -1
- package/browser/driver/mysql/MysqlDriver.js +1 -1
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/oracle/OracleDriver.d.ts +5 -0
- package/browser/driver/oracle/OracleDriver.js +4 -0
- package/browser/driver/oracle/OracleDriver.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.js +15 -7
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.d.ts +2 -1
- package/browser/driver/postgres/PostgresDriver.js +1 -1
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.js +11 -36
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapDriver.d.ts +5 -0
- package/browser/driver/sap/SapDriver.js +4 -0
- package/browser/driver/sap/SapDriver.js.map +1 -1
- package/browser/driver/spanner/SpannerDriver.d.ts +2 -1
- package/browser/driver/spanner/SpannerDriver.js +1 -1
- package/browser/driver/spanner/SpannerDriver.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +2 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +13 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerDriver.d.ts +5 -0
- package/browser/driver/sqlserver/SqlServerDriver.js +4 -0
- package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/browser/driver/types/GeoJsonTypes.d.ts +87 -0
- package/browser/driver/types/GeoJsonTypes.js +3 -0
- package/browser/driver/types/GeoJsonTypes.js.map +1 -0
- package/browser/driver/types/UpsertType.d.ts +1 -1
- package/browser/driver/types/UpsertType.js.map +1 -1
- package/browser/entity-manager/EntityManager.js +2 -0
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/find-options/FindOperatorType.d.ts +1 -1
- package/browser/find-options/FindOperatorType.js.map +1 -1
- package/browser/find-options/FindOptionsWhere.d.ts +5 -1
- package/browser/find-options/FindOptionsWhere.js.map +1 -1
- package/browser/find-options/operator/JsonContains.d.ts +6 -0
- package/browser/find-options/operator/JsonContains.js +10 -0
- package/browser/find-options/operator/JsonContains.js.map +1 -0
- package/browser/index.d.ts +3 -0
- package/browser/index.js +3 -0
- package/browser/index.js.map +1 -1
- package/browser/metadata-builder/RelationJoinColumnBuilder.js +2 -1
- package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/browser/migration/MigrationExecutor.js +1 -1
- package/browser/migration/MigrationExecutor.js.map +1 -1
- package/browser/naming-strategy/LegacyOracleNamingStrategy.d.ts +21 -0
- package/browser/naming-strategy/LegacyOracleNamingStrategy.js +46 -0
- package/browser/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -0
- package/browser/platform/BrowserPlatformTools.js +2 -2
- package/browser/platform/BrowserPlatformTools.js.map +1 -1
- package/browser/query-builder/InsertOrUpdateOptions.d.ts +2 -0
- package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.d.ts +4 -4
- package/browser/query-builder/InsertQueryBuilder.js +80 -74
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryBuilder.d.ts +4 -0
- package/browser/query-builder/QueryBuilder.js +30 -8
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.d.ts +7 -0
- package/browser/query-builder/QueryExpressionMap.js +4 -0
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.d.ts +5 -1
- package/browser/query-builder/SelectQueryBuilder.js +30 -5
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/UpdateQueryBuilder.js +1 -2
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/query-builder/WhereClause.d.ts +1 -1
- package/browser/query-builder/WhereClause.js.map +1 -1
- package/browser/repository/UpsertOptions.d.ts +7 -0
- package/browser/repository/UpsertOptions.js.map +1 -1
- package/data-source/DataSource.js +1 -1
- package/data-source/DataSource.js.map +1 -1
- package/decorator/options/SpatialColumnOptions.d.ts +2 -1
- package/decorator/options/SpatialColumnOptions.js.map +1 -1
- package/driver/Driver.d.ts +1 -1
- package/driver/Driver.js.map +1 -1
- package/driver/DriverUtils.js +1 -1
- package/driver/DriverUtils.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlDriver.d.ts +2 -1
- package/driver/aurora-mysql/AuroraMysqlDriver.js +1 -1
- package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +6 -0
- package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
- package/driver/better-sqlite3/BetterSqlite3Driver.js +3 -1
- package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
- package/driver/cockroachdb/CockroachConnectionOptions.d.ts +5 -0
- package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
- package/driver/cockroachdb/CockroachDriver.d.ts +19 -14
- package/driver/cockroachdb/CockroachDriver.js +128 -13
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.d.ts +28 -0
- package/driver/cockroachdb/CockroachQueryRunner.js +283 -11
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/mongodb/MongoDriver.d.ts +5 -0
- package/driver/mongodb/MongoDriver.js.map +1 -1
- package/driver/mysql/MysqlDriver.d.ts +2 -1
- package/driver/mysql/MysqlDriver.js +1 -1
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/oracle/OracleDriver.d.ts +5 -0
- package/driver/oracle/OracleDriver.js +4 -0
- package/driver/oracle/OracleDriver.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.js +15 -7
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresDriver.d.ts +2 -1
- package/driver/postgres/PostgresDriver.js +1 -1
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.js +11 -36
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/sap/SapDriver.d.ts +5 -0
- package/driver/sap/SapDriver.js +4 -0
- package/driver/sap/SapDriver.js.map +1 -1
- package/driver/spanner/SpannerDriver.d.ts +2 -1
- package/driver/spanner/SpannerDriver.js +1 -1
- package/driver/spanner/SpannerDriver.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +2 -1
- package/driver/sqlite-abstract/AbstractSqliteDriver.js +13 -1
- package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/driver/sqlserver/SqlServerDriver.d.ts +5 -0
- package/driver/sqlserver/SqlServerDriver.js +4 -0
- package/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/driver/types/GeoJsonTypes.d.ts +87 -0
- package/driver/types/GeoJsonTypes.js +4 -0
- package/driver/types/GeoJsonTypes.js.map +1 -0
- package/driver/types/UpsertType.d.ts +1 -1
- package/driver/types/UpsertType.js.map +1 -1
- package/entity-manager/EntityManager.js +2 -0
- package/entity-manager/EntityManager.js.map +1 -1
- package/find-options/FindOperatorType.d.ts +1 -1
- package/find-options/FindOperatorType.js.map +1 -1
- package/find-options/FindOptionsWhere.d.ts +5 -1
- package/find-options/FindOptionsWhere.js.map +1 -1
- package/find-options/operator/JsonContains.d.ts +6 -0
- package/find-options/operator/JsonContains.js +14 -0
- package/find-options/operator/JsonContains.js.map +1 -0
- package/index.d.ts +3 -0
- package/index.js +5 -1
- package/index.js.map +1 -1
- package/index.mjs +4 -0
- package/metadata-builder/RelationJoinColumnBuilder.js +2 -1
- package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/migration/MigrationExecutor.js +1 -1
- package/migration/MigrationExecutor.js.map +1 -1
- package/naming-strategy/LegacyOracleNamingStrategy.d.ts +21 -0
- package/naming-strategy/LegacyOracleNamingStrategy.js +50 -0
- package/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -0
- package/package.json +1 -1
- package/query-builder/InsertOrUpdateOptions.d.ts +2 -0
- package/query-builder/InsertOrUpdateOptions.js.map +1 -1
- package/query-builder/InsertQueryBuilder.d.ts +4 -4
- package/query-builder/InsertQueryBuilder.js +80 -74
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/QueryBuilder.d.ts +4 -0
- package/query-builder/QueryBuilder.js +30 -8
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/QueryExpressionMap.d.ts +7 -0
- package/query-builder/QueryExpressionMap.js +4 -0
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +5 -1
- package/query-builder/SelectQueryBuilder.js +30 -5
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/UpdateQueryBuilder.js +1 -2
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/query-builder/WhereClause.d.ts +1 -1
- package/query-builder/WhereClause.js.map +1 -1
- package/repository/UpsertOptions.d.ts +7 -0
- package/repository/UpsertOptions.js.map +1 -1
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "name": "typeorm", "private": false, "version": "0.3.12-dev.
|
|
1
|
+
{ "name": "typeorm", "private": false, "version": "0.3.12-dev.8731858", "description": "Data-Mapper ORM for TypeScript, ES7, ES6, ES5. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, MongoDB databases.", "license": "MIT", "readmeFilename": "README.md", "author": { "name": "Umed Khudoiberdiev", "email": "pleerock.me@gmail.com" }, "engines": { "node": ">= 12.9.0" }, "exports": { ".": { "types": "./index.d.ts", "node": { "import": "./index.mjs", "require": "./index.js", "types": "./index.d.ts" }, "browser": { "require": "./index.js", "import": "./browser/index.js", "default": "./index.js" } }, "./browser": { "types": "./index.d.ts", "default": "./browser/index.js" }, "./*.js": "./*.js", "./*": { "require": "./*.js", "import": "./*" } }, "main": "./index.js", "module": "./index.mjs", "types": "./index.d.ts", "browser": { "./browser/connection/ConnectionOptionsReader.js": "./browser/platform/BrowserConnectionOptionsReaderDummy.js", "./browser/connection/options-reader/ConnectionOptionsXmlReader.js": "./browser/platform/BrowserConnectionOptionsReaderDummy.js", "./browser/connection/options-reader/ConnectionOptionsYmlReader.js": "./browser/platform/BrowserConnectionOptionsReaderDummy.js", "./browser/driver/aurora-data-api/AuroraDataApiDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/better-sqlite3/BetterSqlite3Driver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/cockroachdb/CockroachDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/mongodb/MongoDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/mongodb/MongoQueryRunner.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/mysql/MysqlDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/oracle/OracleDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/postgres/PostgresDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/sap/SapDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/sqlite/SqliteDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/sqlserver/SqlServerDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/entity-manager/MongoEntityManager.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/logger/FileLogger.js": "./browser/platform/BrowserFileLoggerDummy.js", "./browser/platform/PlatformTools.js": "./browser/platform/BrowserPlatformTools.js", "./browser/repository/MongoRepository.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/util/DirectoryExportedClassesLoader.js": "./browser/platform/BrowserDirectoryExportedClassesLoader.js", "./index.js": "./browser/index.js", "./index.mjs": "./browser/index.js" }, "repository": { "type": "git", "url": "https://github.com/typeorm/typeorm.git" }, "bugs": { "url": "https://github.com/typeorm/typeorm/issues" }, "homepage": "https://typeorm.io", "tags": [ "orm", "typescript", "typescript-orm", "mysql", "mysql-orm", "postgresql", "postgresql-orm", "mariadb", "mariadb-orm", "spanner", "sqlite", "sqlite-orm", "sql-server", "sql-server-orm", "oracle", "oracle-orm", "cloud-spanner", "cloud-spanner-orm" ], "devDependencies": { "@types/app-root-path": "^1.2.4", "@types/chai": "^4.2.15", "@types/chai-as-promised": "^7.1.3", "@types/debug": "^4.1.5", "@types/js-yaml": "^4.0.0", "@types/mkdirp": "^1.0.1", "@types/mocha": "^8.2.1", "@types/node": "^14.14.31", "@types/rimraf": "^3.0.0", "@types/sha.js": "^2.4.0", "@types/sinon": "^9.0.10", "@types/source-map-support": "^0.5.3", "@types/uuid": "^8.3.4", "@types/xml2js": "^0.4.8", "@types/yargs": "^17.0.2", "better-sqlite3": "^8.0.0", "chai": "^4.3.0", "chai-as-promised": "^7.1.1", "class-transformer": "^0.4.0", "conventional-changelog-angular": "^5.0.12", "conventional-changelog-cli": "^2.1.1", "del": "^6.0.0", "gulp": "^4.0.2", "gulp-istanbul": "^1.1.3", "gulp-mocha": "^8.0.0", "gulp-rename": "^2.0.0", "gulp-replace": "^1.0.0", "gulp-shell": "^0.8.0", "gulp-sourcemaps": "^3.0.0", "gulp-typescript": "^6.0.0-alpha.1", "gulpclass": "^0.2.0", "husky": "^5.1.1", "mocha": "^8.3.0", "mongodb": "^3.6.4", "mssql": "^7.3.0", "mysql": "^2.18.1", "mysql2": "^2.2.5", "pg": "^8.5.1", "pg-query-stream": "^4.0.0", "prettier": "^2.5.1", "redis": "^3.1.1", "remap-istanbul": "^0.13.0", "rimraf": "^3.0.2", "sinon": "^9.2.4", "sinon-chai": "^3.5.0", "source-map-support": "^0.5.19", "sql.js": "^1.4.0", "sqlite3": "^5.0.11", "ts-node": "^10.7.0", "typeorm-aurora-data-api-driver": "^2.0.0", "typescript": "^4.8.2" }, "peerDependencies": { "@google-cloud/spanner": "^5.18.0", "@sap/hana-client": "^2.12.25", "better-sqlite3": "^7.1.2 || ^8.0.0", "hdb-pool": "^0.1.6", "ioredis": "^5.0.4", "mongodb": "^3.6.0", "mssql": "^7.3.0", "mysql2": "^2.2.5 || ^3.0.1", "oracledb": "^5.1.0", "pg": "^8.5.1", "pg-native": "^3.0.0", "pg-query-stream": "^4.0.0", "redis": "^3.1.1 || ^4.0.0", "sql.js": "^1.4.0", "sqlite3": "^5.0.3", "ts-node": "^10.7.0", "typeorm-aurora-data-api-driver": "^2.0.0" }, "peerDependenciesMeta": { "@google-cloud/spanner": { "optional": true }, "@sap/hana-client": { "optional": true }, "better-sqlite3": { "optional": true }, "hdb-pool": { "optional": true }, "ioredis": { "optional": true }, "mongodb": { "optional": true }, "mssql": { "optional": true }, "mysql2": { "optional": true }, "oracledb": { "optional": true }, "pg": { "optional": true }, "pg-native": { "optional": true }, "pg-query-stream": { "optional": true }, "redis": { "optional": true }, "sql.js": { "optional": true }, "sqlite3": { "optional": true }, "ts-node": { "optional": true }, "typeorm-aurora-data-api-driver": { "optional": true } }, "dependencies": { "@sqltools/formatter": "^1.2.2", "app-root-path": "^3.0.0", "buffer": "^6.0.3", "chalk": "^4.1.0", "cli-highlight": "^2.1.11", "date-fns": "^2.28.0", "debug": "^4.3.3", "dotenv": "^16.0.0", "glob": "^7.2.0", "js-yaml": "^4.1.0", "mkdirp": "^1.0.4", "reflect-metadata": "^0.1.13", "sha.js": "^2.4.11", "tslib": "^2.3.1", "uuid": "^8.3.2", "xml2js": "^0.4.23", "yargs": "^17.3.1" }, "scripts": { "test": "rimraf ./build && tsc && mocha --file ./build/compiled/test/utils/test-setup.js --bail --recursive --timeout 60000 ./build/compiled/test", "test-fast": "mocha --file ./build/compiled/test/utils/test-setup.js --bail --recursive --timeout 60000 ./build/compiled/test", "compile": "rimraf ./build && tsc", "watch": "./node_modules/.bin/tsc -w", "package": "gulp package", "pack": "gulp pack", "lint": "prettier --check \"./src/**/*.ts\" \"./test/**/*.ts\" \"./sample/**/*.ts\"", "format": "prettier --write \"./src/**/*.ts\" \"./test/**/*.ts\" \"./sample/**/*.ts\"", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 2" }, "bin": { "typeorm": "./cli.js", "typeorm-ts-node-commonjs": "./cli-ts-node-commonjs.js", "typeorm-ts-node-esm": "./cli-ts-node-esm.js" }, "funding": "https://opencollective.com/typeorm", "collective": { "type": "opencollective", "url": "https://opencollective.com/typeorm", "logo": "https://opencollective.com/opencollective/logo.txt" }, "nyc": { "all": true, "cache": false, "exclude": [ "**/*.d.ts" ], "extension": [ ".ts" ], "include": [ "build/compiled/src/**", "src/**" ], "reporter": "json" } }
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { UpsertType } from "../driver/types/UpsertType";
|
|
1
2
|
export declare type InsertOrUpdateOptions = {
|
|
2
3
|
/**
|
|
3
4
|
* If true, postgres will skip the update if no values would be changed (reduces writes)
|
|
@@ -7,4 +8,5 @@ export declare type InsertOrUpdateOptions = {
|
|
|
7
8
|
* If included, postgres will apply the index predicate to a conflict target (partial index)
|
|
8
9
|
*/
|
|
9
10
|
indexPredicate?: string;
|
|
11
|
+
upsertType?: UpsertType;
|
|
10
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/query-builder/InsertOrUpdateOptions.ts"],"names":[],"mappings":"","file":"InsertOrUpdateOptions.js","sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../src/query-builder/InsertOrUpdateOptions.ts"],"names":[],"mappings":"","file":"InsertOrUpdateOptions.js","sourcesContent":["import { UpsertType } from \"../driver/types/UpsertType\"\n\nexport type InsertOrUpdateOptions = {\n /**\n * If true, postgres will skip the update if no values would be changed (reduces writes)\n */\n skipUpdateIfNoValuesChanged?: boolean\n /**\n * If included, postgres will apply the index predicate to a conflict target (partial index)\n */\n indexPredicate?: string\n upsertType?: UpsertType\n}\n"],"sourceRoot":".."}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { QueryBuilder } from "./QueryBuilder";
|
|
2
|
-
import { ObjectLiteral } from "../common/ObjectLiteral";
|
|
3
1
|
import { EntityTarget } from "../common/EntityTarget";
|
|
4
|
-
import {
|
|
5
|
-
import { InsertResult } from "./result/InsertResult";
|
|
2
|
+
import { ObjectLiteral } from "../common/ObjectLiteral";
|
|
6
3
|
import { ColumnMetadata } from "../metadata/ColumnMetadata";
|
|
7
4
|
import { InsertOrUpdateOptions } from "./InsertOrUpdateOptions";
|
|
5
|
+
import { QueryBuilder } from "./QueryBuilder";
|
|
6
|
+
import { QueryDeepPartialEntity } from "./QueryPartialEntity";
|
|
7
|
+
import { InsertResult } from "./result/InsertResult";
|
|
8
8
|
/**
|
|
9
9
|
* Allows to build complex sql queries in a fashion way and execute those queries.
|
|
10
10
|
*/
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.InsertQueryBuilder = void 0;
|
|
4
|
-
const QueryBuilder_1 = require("./QueryBuilder");
|
|
5
|
-
const InsertResult_1 = require("./result/InsertResult");
|
|
6
|
-
const ReturningStatementNotSupportedError_1 = require("../error/ReturningStatementNotSupportedError");
|
|
7
|
-
const InsertValuesMissingError_1 = require("../error/InsertValuesMissingError");
|
|
8
|
-
const ReturningResultsEntityUpdator_1 = require("./ReturningResultsEntityUpdator");
|
|
9
|
-
const BroadcasterResult_1 = require("../subscriber/BroadcasterResult");
|
|
10
|
-
const error_1 = require("../error");
|
|
11
4
|
const uuid_1 = require("uuid");
|
|
12
5
|
const DriverUtils_1 = require("../driver/DriverUtils");
|
|
13
|
-
const
|
|
6
|
+
const error_1 = require("../error");
|
|
7
|
+
const InsertValuesMissingError_1 = require("../error/InsertValuesMissingError");
|
|
8
|
+
const ReturningStatementNotSupportedError_1 = require("../error/ReturningStatementNotSupportedError");
|
|
9
|
+
const BroadcasterResult_1 = require("../subscriber/BroadcasterResult");
|
|
14
10
|
const InstanceChecker_1 = require("../util/InstanceChecker");
|
|
11
|
+
const ObjectUtils_1 = require("../util/ObjectUtils");
|
|
12
|
+
const QueryBuilder_1 = require("./QueryBuilder");
|
|
13
|
+
const InsertResult_1 = require("./result/InsertResult");
|
|
14
|
+
const ReturningResultsEntityUpdator_1 = require("./ReturningResultsEntityUpdator");
|
|
15
15
|
/**
|
|
16
16
|
* Allows to build complex sql queries in a fashion way and execute those queries.
|
|
17
17
|
*/
|
|
@@ -224,6 +224,7 @@ class InsertQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
224
224
|
columns: statementOrOverwrite === null || statementOrOverwrite === void 0 ? void 0 : statementOrOverwrite.columns,
|
|
225
225
|
overwrite: statementOrOverwrite === null || statementOrOverwrite === void 0 ? void 0 : statementOrOverwrite.overwrite,
|
|
226
226
|
skipUpdateIfNoValuesChanged: orUpdateOptions === null || orUpdateOptions === void 0 ? void 0 : orUpdateOptions.skipUpdateIfNoValuesChanged,
|
|
227
|
+
upsertType: orUpdateOptions === null || orUpdateOptions === void 0 ? void 0 : orUpdateOptions.upsertType,
|
|
227
228
|
};
|
|
228
229
|
return this;
|
|
229
230
|
}
|
|
@@ -232,6 +233,7 @@ class InsertQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
232
233
|
conflict: conflictTarget,
|
|
233
234
|
skipUpdateIfNoValuesChanged: orUpdateOptions === null || orUpdateOptions === void 0 ? void 0 : orUpdateOptions.skipUpdateIfNoValuesChanged,
|
|
234
235
|
indexPredicate: orUpdateOptions === null || orUpdateOptions === void 0 ? void 0 : orUpdateOptions.indexPredicate,
|
|
236
|
+
upsertType: orUpdateOptions === null || orUpdateOptions === void 0 ? void 0 : orUpdateOptions.upsertType,
|
|
235
237
|
};
|
|
236
238
|
return this;
|
|
237
239
|
}
|
|
@@ -242,6 +244,7 @@ class InsertQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
242
244
|
* Creates INSERT express used to perform insert query.
|
|
243
245
|
*/
|
|
244
246
|
createInsertExpression() {
|
|
247
|
+
var _a, _b;
|
|
245
248
|
const tableName = this.getTableName(this.getMainTableName());
|
|
246
249
|
const valuesExpression = this.createValuesExpression(); // its important to get values before returning expression because oracle rely on native parameters and ordering of them is important
|
|
247
250
|
const returningExpression = this.connection.driver.options.type === "oracle" &&
|
|
@@ -250,6 +253,9 @@ class InsertQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
250
253
|
: this.createReturningExpression("insert"); // oracle doesnt support returning with multi-row insert
|
|
251
254
|
const columnsExpression = this.createColumnNamesExpression();
|
|
252
255
|
let query = "INSERT ";
|
|
256
|
+
if (((_a = this.expressionMap.onUpdate) === null || _a === void 0 ? void 0 : _a.upsertType) === "primary-key") {
|
|
257
|
+
query = "UPSERT ";
|
|
258
|
+
}
|
|
253
259
|
if (DriverUtils_1.DriverUtils.isMySQLFamily(this.connection.driver) ||
|
|
254
260
|
this.connection.driver.options.type === "aurora-mysql") {
|
|
255
261
|
query += `${this.expressionMap.onIgnore ? " IGNORE " : ""}`;
|
|
@@ -295,79 +301,79 @@ class InsertQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
295
301
|
query += ` DEFAULT VALUES`;
|
|
296
302
|
}
|
|
297
303
|
}
|
|
298
|
-
if (this.
|
|
299
|
-
"on-conflict-do-update") {
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
304
|
+
if (((_b = this.expressionMap.onUpdate) === null || _b === void 0 ? void 0 : _b.upsertType) !== "primary-key") {
|
|
305
|
+
if (this.connection.driver.supportedUpsertTypes.includes("on-conflict-do-update")) {
|
|
306
|
+
if (this.expressionMap.onIgnore) {
|
|
307
|
+
query += " ON CONFLICT DO NOTHING ";
|
|
308
|
+
}
|
|
309
|
+
else if (this.expressionMap.onConflict) {
|
|
310
|
+
query += ` ON CONFLICT ${this.expressionMap.onConflict} `;
|
|
311
|
+
}
|
|
312
|
+
else if (this.expressionMap.onUpdate) {
|
|
313
|
+
const { overwrite, columns, conflict, skipUpdateIfNoValuesChanged, indexPredicate, } = this.expressionMap.onUpdate;
|
|
314
|
+
let conflictTarget = "ON CONFLICT";
|
|
315
|
+
if (Array.isArray(conflict)) {
|
|
316
|
+
conflictTarget += ` ( ${conflict
|
|
317
|
+
.map((column) => this.escape(column))
|
|
318
|
+
.join(", ")} )`;
|
|
319
|
+
if (indexPredicate &&
|
|
320
|
+
!DriverUtils_1.DriverUtils.isPostgresFamily(this.connection.driver)) {
|
|
321
|
+
throw new error_1.TypeORMError(`indexPredicate option is not supported by the current database driver`);
|
|
322
|
+
}
|
|
323
|
+
if (indexPredicate &&
|
|
324
|
+
DriverUtils_1.DriverUtils.isPostgresFamily(this.connection.driver)) {
|
|
325
|
+
conflictTarget += ` WHERE ( ${this.escape(indexPredicate)} )`;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
else if (conflict) {
|
|
329
|
+
conflictTarget += ` ON CONSTRAINT ${this.escape(conflict)}`;
|
|
316
330
|
}
|
|
317
|
-
if (
|
|
331
|
+
if (Array.isArray(overwrite)) {
|
|
332
|
+
query += ` ${conflictTarget} DO UPDATE SET `;
|
|
333
|
+
query += overwrite === null || overwrite === void 0 ? void 0 : overwrite.map((column) => `${this.escape(column)} = EXCLUDED.${this.escape(column)}`).join(", ");
|
|
334
|
+
query += " ";
|
|
335
|
+
}
|
|
336
|
+
else if (columns) {
|
|
337
|
+
query += ` ${conflictTarget} DO UPDATE SET `;
|
|
338
|
+
query += columns
|
|
339
|
+
.map((column) => `${this.escape(column)} = :${column}`)
|
|
340
|
+
.join(", ");
|
|
341
|
+
query += " ";
|
|
342
|
+
}
|
|
343
|
+
if (Array.isArray(overwrite) &&
|
|
344
|
+
skipUpdateIfNoValuesChanged &&
|
|
318
345
|
DriverUtils_1.DriverUtils.isPostgresFamily(this.connection.driver)) {
|
|
319
|
-
|
|
346
|
+
query += ` WHERE (`;
|
|
347
|
+
query += overwrite
|
|
348
|
+
.map((column) => `${tableName}.${this.escape(column)} IS DISTINCT FROM EXCLUDED.${this.escape(column)}`)
|
|
349
|
+
.join(" OR ");
|
|
350
|
+
query += ") ";
|
|
320
351
|
}
|
|
321
352
|
}
|
|
322
|
-
else if (conflict) {
|
|
323
|
-
conflictTarget += ` ON CONSTRAINT ${this.escape(conflict)}`;
|
|
324
|
-
}
|
|
325
|
-
if (Array.isArray(overwrite)) {
|
|
326
|
-
query += ` ${conflictTarget} DO UPDATE SET `;
|
|
327
|
-
query += overwrite === null || overwrite === void 0 ? void 0 : overwrite.map((column) => `${this.escape(column)} = EXCLUDED.${this.escape(column)}`).join(", ");
|
|
328
|
-
query += " ";
|
|
329
|
-
}
|
|
330
|
-
else if (columns) {
|
|
331
|
-
query += ` ${conflictTarget} DO UPDATE SET `;
|
|
332
|
-
query += columns
|
|
333
|
-
.map((column) => `${this.escape(column)} = :${column}`)
|
|
334
|
-
.join(", ");
|
|
335
|
-
query += " ";
|
|
336
|
-
}
|
|
337
|
-
if (Array.isArray(overwrite) &&
|
|
338
|
-
skipUpdateIfNoValuesChanged &&
|
|
339
|
-
DriverUtils_1.DriverUtils.isPostgresFamily(this.connection.driver)) {
|
|
340
|
-
query += ` WHERE (`;
|
|
341
|
-
query += overwrite
|
|
342
|
-
.map((column) => `${tableName}.${this.escape(column)} IS DISTINCT FROM EXCLUDED.${this.escape(column)}`)
|
|
343
|
-
.join(" OR ");
|
|
344
|
-
query += ") ";
|
|
345
|
-
}
|
|
346
353
|
}
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
query += " ";
|
|
354
|
+
else if (this.connection.driver.supportedUpsertTypes.includes("on-duplicate-key-update")) {
|
|
355
|
+
if (this.expressionMap.onUpdate) {
|
|
356
|
+
const { overwrite, columns } = this.expressionMap.onUpdate;
|
|
357
|
+
if (Array.isArray(overwrite)) {
|
|
358
|
+
query += " ON DUPLICATE KEY UPDATE ";
|
|
359
|
+
query += overwrite
|
|
360
|
+
.map((column) => `${this.escape(column)} = VALUES(${this.escape(column)})`)
|
|
361
|
+
.join(", ");
|
|
362
|
+
query += " ";
|
|
363
|
+
}
|
|
364
|
+
else if (Array.isArray(columns)) {
|
|
365
|
+
query += " ON DUPLICATE KEY UPDATE ";
|
|
366
|
+
query += columns
|
|
367
|
+
.map((column) => `${this.escape(column)} = :${column}`)
|
|
368
|
+
.join(", ");
|
|
369
|
+
query += " ";
|
|
370
|
+
}
|
|
365
371
|
}
|
|
366
372
|
}
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
373
|
+
else {
|
|
374
|
+
if (this.expressionMap.onUpdate) {
|
|
375
|
+
throw new error_1.TypeORMError(`onUpdate is not supported by the current database driver`);
|
|
376
|
+
}
|
|
371
377
|
}
|
|
372
378
|
}
|
|
373
379
|
// add RETURNING expression
|