typeorm 0.2.27 → 0.2.31
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 +9 -4
- package/browser/common/EntityFieldsNames.d.ts +6 -0
- package/browser/common/EntityFieldsNames.js +3 -0
- package/browser/common/EntityFieldsNames.js.map +1 -0
- package/browser/connection/Connection.d.ts +2 -2
- package/browser/connection/Connection.js +2 -2
- package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
- package/browser/connection/ConnectionOptionsReader.d.ts +3 -3
- package/browser/connection/ConnectionOptionsReader.js +30 -30
- package/browser/connection/ConnectionOptionsReader.js.map +1 -1
- package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +1 -1
- package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
- package/browser/decorator/columns/PrimaryColumn.d.ts +9 -2
- package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
- package/browser/decorator/entity/ChildEntity.js +1 -1
- package/browser/decorator/entity/ChildEntity.js.map +1 -1
- package/browser/decorator/options/RelationOptions.d.ts +10 -0
- package/browser/decorator/options/RelationOptions.js.map +1 -1
- package/browser/decorator/relations/ManyToOne.d.ts +6 -6
- package/browser/decorator/relations/ManyToOne.js +5 -5
- package/browser/decorator/relations/ManyToOne.js.map +1 -1
- package/browser/decorator/relations/OneToMany.d.ts +3 -2
- package/browser/decorator/relations/OneToMany.js +4 -3
- package/browser/decorator/relations/OneToMany.js.map +1 -1
- package/browser/decorator/transaction/Transaction.d.ts +1 -1
- package/browser/decorator/transaction/Transaction.js +2 -2
- package/browser/decorator/transaction/Transaction.js.map +1 -1
- package/browser/decorator/tree/Tree.d.ts +2 -1
- package/browser/decorator/tree/Tree.js +3 -2
- package/browser/decorator/tree/Tree.js.map +1 -1
- package/browser/driver/DriverFactory.js.map +1 -1
- package/browser/driver/DriverUtils.js +20 -12
- package/browser/driver/DriverUtils.js.map +1 -1
- package/browser/driver/aurora-data-api/AuroraDataApiDriver.d.ts +0 -1
- package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +2 -3
- package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +2 -1
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +57 -9
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
- package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +1 -2
- package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +3 -3
- package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
- package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +2 -1
- package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +59 -11
- package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.js +3 -3
- package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +112 -42
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/expo/ExpoQueryRunner.js +72 -14
- package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
- package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/browser/driver/mongodb/MongoDriver.d.ts +7 -3
- package/browser/driver/mongodb/MongoDriver.js +19 -14
- package/browser/driver/mongodb/MongoDriver.js.map +1 -1
- package/browser/driver/mongodb/MongoQueryRunner.d.ts +3 -3
- package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/browser/driver/mysql/MysqlDriver.js +4 -4
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.d.ts +4 -0
- package/browser/driver/mysql/MysqlQueryRunner.js +117 -42
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleConnectionOptions.d.ts +4 -0
- package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
- package/browser/driver/oracle/OracleDriver.js +3 -0
- package/browser/driver/oracle/OracleDriver.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.js +52 -6
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresConnectionOptions.d.ts +4 -0
- package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.d.ts +1 -1
- package/browser/driver/postgres/PostgresDriver.js +11 -8
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.d.ts +8 -0
- package/browser/driver/postgres/PostgresQueryRunner.js +154 -60
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/react-native/ReactNativeDriver.js +1 -2
- package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/browser/driver/sap/SapQueryRunner.js +56 -8
- package/browser/driver/sap/SapQueryRunner.js.map +1 -1
- package/browser/driver/sqlite/SqliteQueryRunner.js +4 -0
- package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +55 -7
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +140 -67
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/driver/types/ColumnTypes.d.ts +1 -1
- package/browser/driver/types/ColumnTypes.js.map +1 -1
- package/browser/entity-manager/EntityManager.d.ts +13 -13
- package/browser/entity-manager/EntityManager.js +5 -16
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/entity-manager/MongoEntityManager.d.ts +1 -1
- package/browser/entity-manager/MongoEntityManager.js +15 -4
- package/browser/entity-manager/MongoEntityManager.js.map +1 -1
- package/browser/error/index.d.ts +61 -0
- package/browser/error/index.js +63 -0
- package/browser/error/index.js.map +1 -0
- package/browser/find-options/FindOneOptions.d.ts +6 -1
- package/browser/find-options/FindOneOptions.js.map +1 -1
- package/browser/find-options/FindOperator.d.ts +25 -6
- package/browser/find-options/FindOperator.js +32 -6
- package/browser/find-options/FindOperator.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/FindOptionsUtils.d.ts +2 -2
- package/browser/find-options/FindOptionsUtils.js +5 -1
- package/browser/find-options/FindOptionsUtils.js.map +1 -1
- package/browser/find-options/operator/ILike.d.ts +6 -0
- package/browser/find-options/operator/ILike.js +10 -0
- package/browser/find-options/operator/ILike.js.map +1 -0
- package/browser/find-options/operator/Raw.d.ts +14 -2
- package/browser/find-options/operator/Raw.js +5 -6
- package/browser/find-options/operator/Raw.js.map +1 -1
- package/browser/index.d.ts +3 -1
- package/browser/index.js +2 -23
- package/browser/index.js.map +1 -1
- package/browser/logger/Logger.d.ts +1 -1
- package/browser/logger/Logger.js.map +1 -1
- package/browser/metadata/ColumnMetadata.js +16 -3
- package/browser/metadata/ColumnMetadata.js.map +1 -1
- package/browser/metadata/EntityMetadata.d.ts +5 -0
- package/browser/metadata/EntityMetadata.js +1 -0
- package/browser/metadata/EntityMetadata.js.map +1 -1
- package/browser/metadata/RelationMetadata.d.ts +15 -0
- package/browser/metadata/RelationMetadata.js +18 -2
- package/browser/metadata/RelationMetadata.js.map +1 -1
- package/browser/metadata/types/ClosureTreeOptions.d.ts +10 -0
- package/browser/metadata/types/ClosureTreeOptions.js +3 -0
- package/browser/metadata/types/ClosureTreeOptions.js.map +1 -0
- package/browser/metadata/types/EventListenerTypes.d.ts +7 -7
- package/browser/metadata/types/EventListenerTypes.js.map +1 -1
- package/browser/metadata-args/TreeMetadataArgs.d.ts +5 -0
- package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +3 -3
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.js +19 -9
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataValidator.js +8 -5
- package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +2 -2
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +1 -0
- package/browser/metadata-builder/RelationJoinColumnBuilder.js +5 -5
- package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/browser/persistence/EntityPersistExecutor.js +55 -52
- package/browser/persistence/EntityPersistExecutor.js.map +1 -1
- package/browser/persistence/Subject.d.ts +4 -4
- package/browser/persistence/Subject.js +6 -5
- package/browser/persistence/Subject.js.map +1 -1
- package/browser/persistence/SubjectExecutor.js +9 -5
- package/browser/persistence/SubjectExecutor.js.map +1 -1
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +9 -4
- package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
- package/browser/persistence/tree/ClosureSubjectExecutor.d.ts +1 -1
- package/browser/persistence/tree/ClosureSubjectExecutor.js +5 -5
- package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
- package/browser/query-builder/Alias.d.ts +3 -4
- package/browser/query-builder/Alias.js +3 -3
- package/browser/query-builder/DeleteQueryBuilder.js +2 -1
- package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.d.ts +6 -0
- package/browser/query-builder/InsertQueryBuilder.js +62 -13
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/JoinAttribute.d.ts +10 -10
- package/browser/query-builder/JoinAttribute.js +10 -10
- package/browser/query-builder/QueryBuilder.d.ts +8 -1
- package/browser/query-builder/QueryBuilder.js +168 -33
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.d.ts +6 -2
- package/browser/query-builder/QueryExpressionMap.js +3 -2
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/RelationLoader.js +1 -1
- package/browser/query-builder/RelationLoader.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.d.ts +5 -0
- package/browser/query-builder/SelectQueryBuilder.js +98 -56
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/UpdateQueryBuilder.js +2 -1
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
- package/browser/query-builder/relation-count/RelationCountAttribute.js +7 -7
- package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
- package/browser/query-builder/relation-id/RelationIdAttribute.js +8 -8
- package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
- package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +3 -3
- package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -3
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/browser/query-runner/QueryRunner.d.ts +1 -1
- package/browser/query-runner/QueryRunner.js.map +1 -1
- package/browser/repository/AbstractRepository.d.ts +2 -2
- package/browser/repository/AbstractRepository.js +2 -2
- package/browser/repository/BaseEntity.d.ts +1 -1
- package/browser/repository/BaseEntity.js +1 -1
- package/browser/repository/Repository.d.ts +4 -4
- package/browser/repository/Repository.js +1 -1
- package/browser/repository/Repository.js.map +1 -1
- package/browser/repository/TreeRepository.js +2 -2
- package/browser/repository/TreeRepository.js.map +1 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +2 -2
- package/browser/schema-builder/RdbmsSchemaBuilder.js +4 -3
- package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
- package/browser/schema-builder/table/Table.d.ts +1 -1
- package/browser/schema-builder/table/Table.js +1 -1
- package/browser/subscriber/Broadcaster.d.ts +24 -0
- package/browser/subscriber/Broadcaster.js +120 -0
- package/browser/subscriber/Broadcaster.js.map +1 -1
- package/browser/subscriber/EntitySubscriberInterface.d.ts +27 -0
- package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
- package/browser/subscriber/event/TransactionCommitEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionCommitEvent.js +3 -0
- package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -0
- package/browser/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionRollbackEvent.js +3 -0
- package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -0
- package/browser/subscriber/event/TransactionStartEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionStartEvent.js +3 -0
- package/browser/subscriber/event/TransactionStartEvent.js.map +1 -0
- package/browser/util/DateUtils.d.ts +1 -1
- package/browser/util/DateUtils.js +1 -7
- package/browser/util/DateUtils.js.map +1 -1
- package/browser/util/StringUtils.js.map +1 -1
- package/cache/DbQueryResultCache.js +0 -1
- package/cache/DbQueryResultCache.js.map +1 -1
- package/cache/QueryResultCacheFactory.js +0 -1
- package/cache/QueryResultCacheFactory.js.map +1 -1
- package/cache/RedisQueryResultCache.js +0 -1
- package/cache/RedisQueryResultCache.js.map +1 -1
- package/cli.js +2 -2
- package/cli.js.map +1 -1
- package/commands/CacheClearCommand.js +0 -1
- package/commands/CacheClearCommand.js.map +1 -1
- package/commands/CommandUtils.js +0 -1
- package/commands/CommandUtils.js.map +1 -1
- package/commands/EntityCreateCommand.js +5 -3
- package/commands/EntityCreateCommand.js.map +1 -1
- package/commands/InitCommand.js +1 -2
- package/commands/InitCommand.js.map +1 -1
- package/commands/MigrationCreateCommand.d.ts +6 -0
- package/commands/MigrationCreateCommand.js +22 -5
- package/commands/MigrationCreateCommand.js.map +1 -1
- package/commands/MigrationGenerateCommand.d.ts +6 -0
- package/commands/MigrationGenerateCommand.js +44 -31
- package/commands/MigrationGenerateCommand.js.map +1 -1
- package/commands/MigrationRevertCommand.js +0 -1
- package/commands/MigrationRevertCommand.js.map +1 -1
- package/commands/MigrationRunCommand.js +0 -1
- package/commands/MigrationRunCommand.js.map +1 -1
- package/commands/MigrationShowCommand.js +0 -1
- package/commands/MigrationShowCommand.js.map +1 -1
- package/commands/QueryCommand.d.ts +2 -0
- package/commands/QueryCommand.js +16 -7
- package/commands/QueryCommand.js.map +1 -1
- package/commands/SchemaDropCommand.js +0 -1
- package/commands/SchemaDropCommand.js.map +1 -1
- package/commands/SchemaLogCommand.js +0 -1
- package/commands/SchemaLogCommand.js.map +1 -1
- package/commands/SchemaSyncCommand.js +0 -1
- package/commands/SchemaSyncCommand.js.map +1 -1
- package/commands/SubscriberCreateCommand.js +5 -3
- package/commands/SubscriberCreateCommand.js.map +1 -1
- package/commands/VersionCommand.js +0 -1
- package/commands/VersionCommand.js.map +1 -1
- package/common/EntityFieldsNames.d.ts +6 -0
- package/common/EntityFieldsNames.js +4 -0
- package/common/EntityFieldsNames.js.map +1 -0
- package/connection/Connection.d.ts +2 -2
- package/connection/Connection.js +2 -3
- package/connection/Connection.js.map +1 -1
- package/connection/ConnectionManager.js +0 -1
- package/connection/ConnectionManager.js.map +1 -1
- package/connection/ConnectionMetadataBuilder.js +0 -1
- package/connection/ConnectionMetadataBuilder.js.map +1 -1
- package/connection/ConnectionOptionsReader.d.ts +3 -3
- package/connection/ConnectionOptionsReader.js +30 -31
- package/connection/ConnectionOptionsReader.js.map +1 -1
- package/connection/options-reader/ConnectionOptionsEnvReader.js +1 -2
- package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
- package/connection/options-reader/ConnectionOptionsXmlReader.js +0 -1
- package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
- package/connection/options-reader/ConnectionOptionsYmlReader.js +0 -1
- package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
- package/container.js +0 -1
- package/container.js.map +1 -1
- package/decorator/Check.js +0 -1
- package/decorator/Check.js.map +1 -1
- package/decorator/EntityRepository.js +0 -1
- package/decorator/EntityRepository.js.map +1 -1
- package/decorator/Exclusion.js +0 -1
- package/decorator/Exclusion.js.map +1 -1
- package/decorator/Generated.js +0 -1
- package/decorator/Generated.js.map +1 -1
- package/decorator/Index.js +0 -1
- package/decorator/Index.js.map +1 -1
- package/decorator/Unique.js +0 -1
- package/decorator/Unique.js.map +1 -1
- package/decorator/columns/Column.js +0 -1
- package/decorator/columns/Column.js.map +1 -1
- package/decorator/columns/CreateDateColumn.js +0 -1
- package/decorator/columns/CreateDateColumn.js.map +1 -1
- package/decorator/columns/DeleteDateColumn.js +0 -1
- package/decorator/columns/DeleteDateColumn.js.map +1 -1
- package/decorator/columns/ObjectIdColumn.js +0 -1
- package/decorator/columns/ObjectIdColumn.js.map +1 -1
- package/decorator/columns/PrimaryColumn.d.ts +9 -2
- package/decorator/columns/PrimaryColumn.js +0 -1
- package/decorator/columns/PrimaryColumn.js.map +1 -1
- package/decorator/columns/PrimaryGeneratedColumn.js +0 -1
- package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
- package/decorator/columns/UpdateDateColumn.js +0 -1
- package/decorator/columns/UpdateDateColumn.js.map +1 -1
- package/decorator/columns/VersionColumn.js +0 -1
- package/decorator/columns/VersionColumn.js.map +1 -1
- package/decorator/columns/ViewColumn.js +0 -1
- package/decorator/columns/ViewColumn.js.map +1 -1
- package/decorator/entity/ChildEntity.js +1 -2
- package/decorator/entity/ChildEntity.js.map +1 -1
- package/decorator/entity/Entity.js +0 -1
- package/decorator/entity/Entity.js.map +1 -1
- package/decorator/entity/TableInheritance.js +0 -1
- package/decorator/entity/TableInheritance.js.map +1 -1
- package/decorator/entity-view/ViewEntity.js +0 -1
- package/decorator/entity-view/ViewEntity.js.map +1 -1
- package/decorator/listeners/AfterInsert.js +0 -1
- package/decorator/listeners/AfterInsert.js.map +1 -1
- package/decorator/listeners/AfterLoad.js +0 -1
- package/decorator/listeners/AfterLoad.js.map +1 -1
- package/decorator/listeners/AfterRemove.js +0 -1
- package/decorator/listeners/AfterRemove.js.map +1 -1
- package/decorator/listeners/AfterUpdate.js +0 -1
- package/decorator/listeners/AfterUpdate.js.map +1 -1
- package/decorator/listeners/BeforeInsert.js +0 -1
- package/decorator/listeners/BeforeInsert.js.map +1 -1
- package/decorator/listeners/BeforeRemove.js +0 -1
- package/decorator/listeners/BeforeRemove.js.map +1 -1
- package/decorator/listeners/BeforeUpdate.js +0 -1
- package/decorator/listeners/BeforeUpdate.js.map +1 -1
- package/decorator/listeners/EventSubscriber.js +0 -1
- package/decorator/listeners/EventSubscriber.js.map +1 -1
- package/decorator/options/RelationOptions.d.ts +10 -0
- package/decorator/options/RelationOptions.js.map +1 -1
- package/decorator/relations/JoinColumn.js +0 -1
- package/decorator/relations/JoinColumn.js.map +1 -1
- package/decorator/relations/JoinTable.js +0 -1
- package/decorator/relations/JoinTable.js.map +1 -1
- package/decorator/relations/ManyToMany.js +0 -1
- package/decorator/relations/ManyToMany.js.map +1 -1
- package/decorator/relations/ManyToOne.d.ts +6 -6
- package/decorator/relations/ManyToOne.js +5 -6
- package/decorator/relations/ManyToOne.js.map +1 -1
- package/decorator/relations/OneToMany.d.ts +3 -2
- package/decorator/relations/OneToMany.js +4 -4
- package/decorator/relations/OneToMany.js.map +1 -1
- package/decorator/relations/OneToOne.js +0 -1
- package/decorator/relations/OneToOne.js.map +1 -1
- package/decorator/relations/RelationCount.js +0 -1
- package/decorator/relations/RelationCount.js.map +1 -1
- package/decorator/relations/RelationId.js +0 -1
- package/decorator/relations/RelationId.js.map +1 -1
- package/decorator/transaction/Transaction.d.ts +1 -1
- package/decorator/transaction/Transaction.js +2 -3
- package/decorator/transaction/Transaction.js.map +1 -1
- package/decorator/transaction/TransactionManager.js +0 -1
- package/decorator/transaction/TransactionManager.js.map +1 -1
- package/decorator/transaction/TransactionRepository.js +0 -1
- package/decorator/transaction/TransactionRepository.js.map +1 -1
- package/decorator/tree/Tree.d.ts +2 -1
- package/decorator/tree/Tree.js +3 -3
- package/decorator/tree/Tree.js.map +1 -1
- package/decorator/tree/TreeChildren.js +0 -1
- package/decorator/tree/TreeChildren.js.map +1 -1
- package/decorator/tree/TreeLevelColumn.js +0 -1
- package/decorator/tree/TreeLevelColumn.js.map +1 -1
- package/decorator/tree/TreeParent.js +0 -1
- package/decorator/tree/TreeParent.js.map +1 -1
- package/driver/DriverFactory.js +0 -1
- package/driver/DriverFactory.js.map +1 -1
- package/driver/DriverUtils.js +19 -12
- package/driver/DriverUtils.js.map +1 -1
- package/driver/Query.js +0 -1
- package/driver/Query.js.map +1 -1
- package/driver/SqlInMemory.js +0 -1
- package/driver/SqlInMemory.js.map +1 -1
- package/driver/aurora-data-api/AuroraDataApiConnection.js +0 -1
- package/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
- package/driver/aurora-data-api/AuroraDataApiDriver.d.ts +0 -1
- package/driver/aurora-data-api/AuroraDataApiDriver.js +2 -4
- package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +2 -1
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +57 -10
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
- package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +1 -2
- package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +3 -4
- package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
- package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +2 -1
- package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +59 -12
- package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
- package/driver/better-sqlite3/BetterSqlite3Driver.js +0 -1
- package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +0 -1
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
- package/driver/cockroachdb/CockroachDriver.js +3 -4
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
- package/driver/cockroachdb/CockroachQueryRunner.js +112 -43
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/cordova/CordovaDriver.js +0 -1
- package/driver/cordova/CordovaDriver.js.map +1 -1
- package/driver/cordova/CordovaQueryRunner.js +0 -1
- package/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/driver/expo/ExpoDriver.js +0 -1
- package/driver/expo/ExpoDriver.js.map +1 -1
- package/driver/expo/ExpoQueryRunner.js +72 -15
- package/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
- package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/driver/mongodb/MongoDriver.d.ts +7 -3
- package/driver/mongodb/MongoDriver.js +19 -15
- package/driver/mongodb/MongoDriver.js.map +1 -1
- package/driver/mongodb/MongoQueryRunner.d.ts +3 -3
- package/driver/mongodb/MongoQueryRunner.js +0 -1
- package/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/driver/mysql/MysqlDriver.js +4 -5
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.d.ts +4 -0
- package/driver/mysql/MysqlQueryRunner.js +117 -43
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/nativescript/NativescriptDriver.js +0 -1
- package/driver/nativescript/NativescriptDriver.js.map +1 -1
- package/driver/nativescript/NativescriptQueryRunner.js +0 -1
- package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/driver/oracle/OracleConnectionOptions.d.ts +4 -0
- package/driver/oracle/OracleConnectionOptions.js.map +1 -1
- package/driver/oracle/OracleDriver.js +3 -1
- package/driver/oracle/OracleDriver.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.js +52 -7
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresConnectionOptions.d.ts +4 -0
- package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
- package/driver/postgres/PostgresDriver.d.ts +1 -1
- package/driver/postgres/PostgresDriver.js +11 -9
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.d.ts +8 -0
- package/driver/postgres/PostgresQueryRunner.js +155 -61
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/react-native/ReactNativeDriver.js +1 -3
- package/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/driver/react-native/ReactNativeQueryRunner.js +0 -1
- package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/driver/sap/SapDriver.js +0 -1
- package/driver/sap/SapDriver.js.map +1 -1
- package/driver/sap/SapQueryRunner.js +56 -9
- package/driver/sap/SapQueryRunner.js.map +1 -1
- package/driver/sqlite/SqliteDriver.js +0 -1
- package/driver/sqlite/SqliteDriver.js.map +1 -1
- package/driver/sqlite/SqliteQueryRunner.js +4 -1
- package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteDriver.js +0 -1
- package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +55 -8
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/driver/sqljs/SqljsDriver.js +0 -1
- package/driver/sqljs/SqljsDriver.js.map +1 -1
- package/driver/sqljs/SqljsQueryRunner.js +0 -1
- package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
- package/driver/sqlserver/MssqlParameter.js +0 -1
- package/driver/sqlserver/MssqlParameter.js.map +1 -1
- package/driver/sqlserver/SqlServerDriver.js +0 -1
- package/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.js +140 -68
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/driver/types/ColumnTypes.d.ts +1 -1
- package/driver/types/ColumnTypes.js.map +1 -1
- package/entity-manager/EntityManager.d.ts +13 -13
- package/entity-manager/EntityManager.js +5 -17
- package/entity-manager/EntityManager.js.map +1 -1
- package/entity-manager/EntityManagerFactory.js +0 -1
- package/entity-manager/EntityManagerFactory.js.map +1 -1
- package/entity-manager/MongoEntityManager.d.ts +1 -1
- package/entity-manager/MongoEntityManager.js +15 -5
- package/entity-manager/MongoEntityManager.js.map +1 -1
- package/entity-manager/SqljsEntityManager.js +0 -1
- package/entity-manager/SqljsEntityManager.js.map +1 -1
- package/entity-schema/EntitySchema.js +0 -1
- package/entity-schema/EntitySchema.js.map +1 -1
- package/entity-schema/EntitySchemaOptions.js +0 -1
- package/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/entity-schema/EntitySchemaTransformer.js +0 -1
- package/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/error/AlreadyHasActiveConnectionError.js +0 -1
- package/error/AlreadyHasActiveConnectionError.js.map +1 -1
- package/error/CannotAttachTreeChildrenEntityError.js +0 -1
- package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
- package/error/CannotConnectAlreadyConnectedError.js +0 -1
- package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
- package/error/CannotCreateEntityIdMapError.js +0 -1
- package/error/CannotCreateEntityIdMapError.js.map +1 -1
- package/error/CannotDetermineEntityError.js +0 -1
- package/error/CannotDetermineEntityError.js.map +1 -1
- package/error/CannotExecuteNotConnectedError.js +0 -1
- package/error/CannotExecuteNotConnectedError.js.map +1 -1
- package/error/CannotGetEntityManagerNotConnectedError.js +0 -1
- package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
- package/error/CannotReflectMethodParameterTypeError.js +0 -1
- package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
- package/error/CircularRelationsError.js +0 -1
- package/error/CircularRelationsError.js.map +1 -1
- package/error/ColumnTypeUndefinedError.js +0 -1
- package/error/ColumnTypeUndefinedError.js.map +1 -1
- package/error/ConnectionIsNotSetError.js +0 -1
- package/error/ConnectionIsNotSetError.js.map +1 -1
- package/error/ConnectionNotFoundError.js +0 -1
- package/error/ConnectionNotFoundError.js.map +1 -1
- package/error/CustomRepositoryCannotInheritRepositoryError.js +0 -1
- package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
- package/error/CustomRepositoryDoesNotHaveEntityError.js +0 -1
- package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
- package/error/CustomRepositoryNotFoundError.js +0 -1
- package/error/CustomRepositoryNotFoundError.js.map +1 -1
- package/error/DataTypeNotSupportedError.js +0 -1
- package/error/DataTypeNotSupportedError.js.map +1 -1
- package/error/DriverOptionNotSetError.js +0 -1
- package/error/DriverOptionNotSetError.js.map +1 -1
- package/error/DriverPackageNotInstalledError.js +0 -1
- package/error/DriverPackageNotInstalledError.js.map +1 -1
- package/error/EntityColumnNotFound.js +0 -1
- package/error/EntityColumnNotFound.js.map +1 -1
- package/error/EntityMetadataNotFoundError.js +0 -1
- package/error/EntityMetadataNotFoundError.js.map +1 -1
- package/error/EntityNotFoundError.js +0 -1
- package/error/EntityNotFoundError.js.map +1 -1
- package/error/FindRelationsNotFoundError.js +0 -1
- package/error/FindRelationsNotFoundError.js.map +1 -1
- package/error/InitializedRelationError.js +0 -1
- package/error/InitializedRelationError.js.map +1 -1
- package/error/InsertValuesMissingError.js +0 -1
- package/error/InsertValuesMissingError.js.map +1 -1
- package/error/LimitOnUpdateNotSupportedError.js +0 -1
- package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
- package/error/LockNotSupportedOnGivenDriverError.js +0 -1
- package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
- package/error/MetadataAlreadyExistsError.js +0 -1
- package/error/MetadataAlreadyExistsError.js.map +1 -1
- package/error/MetadataWithSuchNameAlreadyExistsError.js +0 -1
- package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
- package/error/MissingDeleteDateColumnError.js +0 -1
- package/error/MissingDeleteDateColumnError.js.map +1 -1
- package/error/MissingDriverError.js +0 -1
- package/error/MissingDriverError.js.map +1 -1
- package/error/MissingJoinColumnError.js +0 -1
- package/error/MissingJoinColumnError.js.map +1 -1
- package/error/MissingJoinTableError.js +0 -1
- package/error/MissingJoinTableError.js.map +1 -1
- package/error/MissingPrimaryColumnError.js +0 -1
- package/error/MissingPrimaryColumnError.js.map +1 -1
- package/error/MustBeEntityError.js +0 -1
- package/error/MustBeEntityError.js.map +1 -1
- package/error/NamingStrategyNotFoundError.js +0 -1
- package/error/NamingStrategyNotFoundError.js.map +1 -1
- package/error/NoConnectionForRepositoryError.js +0 -1
- package/error/NoConnectionForRepositoryError.js.map +1 -1
- package/error/NoConnectionOptionError.js +0 -1
- package/error/NoConnectionOptionError.js.map +1 -1
- package/error/NoNeedToReleaseEntityManagerError.js +0 -1
- package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
- package/error/NoVersionOrUpdateDateColumnError.js +0 -1
- package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
- package/error/OffsetWithoutLimitNotSupportedError.js +0 -1
- package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
- package/error/OptimisticLockCanNotBeUsedError.js +0 -1
- package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
- package/error/OptimisticLockVersionMismatchError.js +0 -1
- package/error/OptimisticLockVersionMismatchError.js.map +1 -1
- package/error/PersistedEntityNotFoundError.js +0 -1
- package/error/PersistedEntityNotFoundError.js.map +1 -1
- package/error/PessimisticLockTransactionRequiredError.js +0 -1
- package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
- package/error/PrimaryColumnCannotBeNullableError.js +0 -1
- package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
- package/error/QueryFailedError.js +0 -1
- package/error/QueryFailedError.js.map +1 -1
- package/error/QueryRunnerAlreadyReleasedError.js +0 -1
- package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
- package/error/QueryRunnerProviderAlreadyReleasedError.js +0 -1
- package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
- package/error/RepositoryNotFoundError.js +0 -1
- package/error/RepositoryNotFoundError.js.map +1 -1
- package/error/RepositoryNotTreeError.js +0 -1
- package/error/RepositoryNotTreeError.js.map +1 -1
- package/error/ReturningStatementNotSupportedError.js +0 -1
- package/error/ReturningStatementNotSupportedError.js.map +1 -1
- package/error/SubjectRemovedAndUpdatedError.js +0 -1
- package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
- package/error/SubjectWithoutIdentifierError.js +0 -1
- package/error/SubjectWithoutIdentifierError.js.map +1 -1
- package/error/TransactionAlreadyStartedError.js +0 -1
- package/error/TransactionAlreadyStartedError.js.map +1 -1
- package/error/TransactionNotStartedError.js +0 -1
- package/error/TransactionNotStartedError.js.map +1 -1
- package/error/TreeRepositoryNotSupportedError.js +0 -1
- package/error/TreeRepositoryNotSupportedError.js.map +1 -1
- package/error/UpdateValuesMissingError.js +0 -1
- package/error/UpdateValuesMissingError.js.map +1 -1
- package/error/UsingJoinColumnIsNotAllowedError.js +0 -1
- package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
- package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +0 -1
- package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
- package/error/UsingJoinTableIsNotAllowedError.js +0 -1
- package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
- package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +0 -1
- package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
- package/error/index.d.ts +61 -0
- package/error/index.js +66 -0
- package/error/index.js.map +1 -0
- package/find-options/FindOneOptions.d.ts +6 -1
- package/find-options/FindOneOptions.js.map +1 -1
- package/find-options/FindOperator.d.ts +25 -6
- package/find-options/FindOperator.js +32 -7
- package/find-options/FindOperator.js.map +1 -1
- package/find-options/FindOperatorType.d.ts +1 -1
- package/find-options/FindOperatorType.js.map +1 -1
- package/find-options/FindOptionsUtils.d.ts +2 -2
- package/find-options/FindOptionsUtils.js +5 -2
- package/find-options/FindOptionsUtils.js.map +1 -1
- package/find-options/operator/Any.js +0 -1
- package/find-options/operator/Any.js.map +1 -1
- package/find-options/operator/Between.js +0 -1
- package/find-options/operator/Between.js.map +1 -1
- package/find-options/operator/Equal.js +0 -1
- package/find-options/operator/Equal.js.map +1 -1
- package/find-options/operator/ILike.d.ts +6 -0
- package/find-options/operator/ILike.js +13 -0
- package/find-options/operator/ILike.js.map +1 -0
- package/find-options/operator/In.js +0 -1
- package/find-options/operator/In.js.map +1 -1
- package/find-options/operator/IsNull.js +0 -1
- package/find-options/operator/IsNull.js.map +1 -1
- package/find-options/operator/LessThan.js +0 -1
- package/find-options/operator/LessThan.js.map +1 -1
- package/find-options/operator/LessThanOrEqual.js +0 -1
- package/find-options/operator/LessThanOrEqual.js.map +1 -1
- package/find-options/operator/Like.js +0 -1
- package/find-options/operator/Like.js.map +1 -1
- package/find-options/operator/MoreThan.js +0 -1
- package/find-options/operator/MoreThan.js.map +1 -1
- package/find-options/operator/MoreThanOrEqual.js +0 -1
- package/find-options/operator/MoreThanOrEqual.js.map +1 -1
- package/find-options/operator/Not.js +0 -1
- package/find-options/operator/Not.js.map +1 -1
- package/find-options/operator/Raw.d.ts +14 -2
- package/find-options/operator/Raw.js +5 -7
- package/find-options/operator/Raw.js.map +1 -1
- package/index.d.ts +3 -1
- package/index.js +20 -42
- package/index.js.map +1 -1
- package/logger/AdvancedConsoleLogger.js +0 -1
- package/logger/AdvancedConsoleLogger.js.map +1 -1
- package/logger/DebugLogger.js +0 -1
- package/logger/DebugLogger.js.map +1 -1
- package/logger/FileLogger.js +0 -1
- package/logger/FileLogger.js.map +1 -1
- package/logger/Logger.d.ts +1 -1
- package/logger/Logger.js.map +1 -1
- package/logger/LoggerFactory.js +0 -1
- package/logger/LoggerFactory.js.map +1 -1
- package/logger/SimpleConsoleLogger.js +0 -1
- package/logger/SimpleConsoleLogger.js.map +1 -1
- package/metadata/CheckMetadata.js +0 -1
- package/metadata/CheckMetadata.js.map +1 -1
- package/metadata/ColumnMetadata.js +16 -4
- package/metadata/ColumnMetadata.js.map +1 -1
- package/metadata/EmbeddedMetadata.js +0 -1
- package/metadata/EmbeddedMetadata.js.map +1 -1
- package/metadata/EntityListenerMetadata.js +0 -1
- package/metadata/EntityListenerMetadata.js.map +1 -1
- package/metadata/EntityMetadata.d.ts +5 -0
- package/metadata/EntityMetadata.js +1 -1
- package/metadata/EntityMetadata.js.map +1 -1
- package/metadata/ExclusionMetadata.js +0 -1
- package/metadata/ExclusionMetadata.js.map +1 -1
- package/metadata/ForeignKeyMetadata.js +0 -1
- package/metadata/ForeignKeyMetadata.js.map +1 -1
- package/metadata/IndexMetadata.js +0 -1
- package/metadata/IndexMetadata.js.map +1 -1
- package/metadata/RelationCountMetadata.js +0 -1
- package/metadata/RelationCountMetadata.js.map +1 -1
- package/metadata/RelationIdMetadata.js +0 -1
- package/metadata/RelationIdMetadata.js.map +1 -1
- package/metadata/RelationMetadata.d.ts +15 -0
- package/metadata/RelationMetadata.js +18 -3
- package/metadata/RelationMetadata.js.map +1 -1
- package/metadata/UniqueMetadata.js +0 -1
- package/metadata/UniqueMetadata.js.map +1 -1
- package/metadata/types/ClosureTreeOptions.d.ts +10 -0
- package/metadata/types/ClosureTreeOptions.js +4 -0
- package/metadata/types/ClosureTreeOptions.js.map +1 -0
- package/metadata/types/EventListenerTypes.d.ts +7 -7
- package/metadata/types/EventListenerTypes.js +0 -1
- package/metadata/types/EventListenerTypes.js.map +1 -1
- package/metadata-args/MetadataArgsStorage.js +0 -1
- package/metadata-args/MetadataArgsStorage.js.map +1 -1
- package/metadata-args/TreeMetadataArgs.d.ts +5 -0
- package/metadata-args/TreeMetadataArgs.js.map +1 -1
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +3 -4
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.js +19 -10
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataValidator.js +8 -6
- package/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/metadata-builder/JunctionEntityMetadataBuilder.js +2 -3
- package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/MetadataUtils.js +0 -1
- package/metadata-builder/MetadataUtils.js.map +1 -1
- package/metadata-builder/RelationJoinColumnBuilder.d.ts +1 -0
- package/metadata-builder/RelationJoinColumnBuilder.js +5 -6
- package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/migration/Migration.js +0 -1
- package/migration/Migration.js.map +1 -1
- package/migration/MigrationExecutor.js +0 -1
- package/migration/MigrationExecutor.js.map +1 -1
- package/naming-strategy/DefaultNamingStrategy.js +0 -1
- package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/package.json +7 -5
- package/persistence/EntityPersistExecutor.js +55 -53
- package/persistence/EntityPersistExecutor.js.map +1 -1
- package/persistence/Subject.d.ts +4 -4
- package/persistence/Subject.js +6 -6
- package/persistence/Subject.js.map +1 -1
- package/persistence/SubjectChangedColumnsComputer.js +0 -1
- package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
- package/persistence/SubjectDatabaseEntityLoader.js +0 -1
- package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
- package/persistence/SubjectExecutor.js +9 -6
- package/persistence/SubjectExecutor.js.map +1 -1
- package/persistence/SubjectTopoligicalSorter.js +0 -1
- package/persistence/SubjectTopoligicalSorter.js.map +1 -1
- package/persistence/subject-builder/CascadesSubjectBuilder.js +0 -1
- package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/ManyToManySubjectBuilder.js +0 -1
- package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/OneToManySubjectBuilder.js +9 -5
- package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +0 -1
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
- package/persistence/tree/ClosureSubjectExecutor.d.ts +1 -1
- package/persistence/tree/ClosureSubjectExecutor.js +5 -6
- package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
- package/persistence/tree/MaterializedPathSubjectExecutor.js +0 -1
- package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
- package/persistence/tree/NestedSetSubjectExecutor.js +0 -1
- package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
- package/platform/PlatformTools.js +4 -5
- package/platform/PlatformTools.js.map +1 -1
- package/query-builder/Alias.d.ts +3 -4
- package/query-builder/Alias.js +3 -4
- package/query-builder/Alias.js.map +1 -1
- package/query-builder/Brackets.js +0 -1
- package/query-builder/Brackets.js.map +1 -1
- package/query-builder/DeleteQueryBuilder.js +2 -2
- package/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/query-builder/InsertQueryBuilder.d.ts +6 -0
- package/query-builder/InsertQueryBuilder.js +62 -14
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/JoinAttribute.d.ts +10 -10
- package/query-builder/JoinAttribute.js +10 -11
- package/query-builder/JoinAttribute.js.map +1 -1
- package/query-builder/QueryBuilder.d.ts +8 -1
- package/query-builder/QueryBuilder.js +167 -33
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/QueryBuilderUtils.js +0 -1
- package/query-builder/QueryBuilderUtils.js.map +1 -1
- package/query-builder/QueryExpressionMap.d.ts +6 -2
- package/query-builder/QueryExpressionMap.js +3 -3
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/RelationIdLoader.js +0 -1
- package/query-builder/RelationIdLoader.js.map +1 -1
- package/query-builder/RelationLoader.js +1 -2
- package/query-builder/RelationLoader.js.map +1 -1
- package/query-builder/RelationQueryBuilder.js +0 -1
- package/query-builder/RelationQueryBuilder.js.map +1 -1
- package/query-builder/RelationRemover.js +0 -1
- package/query-builder/RelationRemover.js.map +1 -1
- package/query-builder/RelationUpdater.js +0 -1
- package/query-builder/RelationUpdater.js.map +1 -1
- package/query-builder/ReturningResultsEntityUpdator.js +0 -1
- package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +5 -0
- package/query-builder/SelectQueryBuilder.js +98 -57
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/SoftDeleteQueryBuilder.js +0 -1
- package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
- package/query-builder/UpdateQueryBuilder.js +2 -2
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
- package/query-builder/relation-count/RelationCountAttribute.js +7 -8
- package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
- package/query-builder/relation-count/RelationCountLoader.js +0 -1
- package/query-builder/relation-count/RelationCountLoader.js.map +1 -1
- package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +0 -1
- package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
- package/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
- package/query-builder/relation-id/RelationIdAttribute.js +8 -9
- package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
- package/query-builder/relation-id/RelationIdLoader.js +0 -1
- package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
- package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +0 -1
- package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
- package/query-builder/result/DeleteResult.js +0 -1
- package/query-builder/result/DeleteResult.js.map +1 -1
- package/query-builder/result/InsertResult.js +0 -1
- package/query-builder/result/InsertResult.js.map +1 -1
- package/query-builder/result/UpdateResult.js +0 -1
- package/query-builder/result/UpdateResult.js.map +1 -1
- package/query-builder/transformer/DocumentToEntityTransformer.js +0 -1
- package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
- package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +3 -4
- package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
- package/query-builder/transformer/PlainObjectToNewEntityTransformer.js +0 -1
- package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -4
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/query-runner/BaseQueryRunner.js +0 -1
- package/query-runner/BaseQueryRunner.js.map +1 -1
- package/query-runner/QueryRunner.d.ts +1 -1
- package/query-runner/QueryRunner.js.map +1 -1
- package/repository/AbstractRepository.d.ts +2 -2
- package/repository/AbstractRepository.js +2 -3
- package/repository/AbstractRepository.js.map +1 -1
- package/repository/BaseEntity.d.ts +1 -1
- package/repository/BaseEntity.js +1 -2
- package/repository/BaseEntity.js.map +1 -1
- package/repository/MongoRepository.js +0 -1
- package/repository/MongoRepository.js.map +1 -1
- package/repository/Repository.d.ts +4 -4
- package/repository/Repository.js +1 -2
- package/repository/Repository.js.map +1 -1
- package/repository/RepositoryFactory.js +0 -1
- package/repository/RepositoryFactory.js.map +1 -1
- package/repository/TreeRepository.js +2 -3
- package/repository/TreeRepository.js.map +1 -1
- package/schema-builder/MongoSchemaBuilder.js +0 -1
- package/schema-builder/MongoSchemaBuilder.js.map +1 -1
- package/schema-builder/RdbmsSchemaBuilder.d.ts +2 -2
- package/schema-builder/RdbmsSchemaBuilder.js +4 -4
- package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
- package/schema-builder/table/Table.d.ts +1 -1
- package/schema-builder/table/Table.js +1 -2
- package/schema-builder/table/Table.js.map +1 -1
- package/schema-builder/table/TableCheck.js +0 -1
- package/schema-builder/table/TableCheck.js.map +1 -1
- package/schema-builder/table/TableColumn.js +0 -1
- package/schema-builder/table/TableColumn.js.map +1 -1
- package/schema-builder/table/TableExclusion.js +0 -1
- package/schema-builder/table/TableExclusion.js.map +1 -1
- package/schema-builder/table/TableForeignKey.js +0 -1
- package/schema-builder/table/TableForeignKey.js.map +1 -1
- package/schema-builder/table/TableIndex.js +0 -1
- package/schema-builder/table/TableIndex.js.map +1 -1
- package/schema-builder/table/TableUnique.js +0 -1
- package/schema-builder/table/TableUnique.js.map +1 -1
- package/schema-builder/util/TableUtils.js +0 -1
- package/schema-builder/util/TableUtils.js.map +1 -1
- package/schema-builder/view/View.js +0 -1
- package/schema-builder/view/View.js.map +1 -1
- package/subscriber/Broadcaster.d.ts +24 -0
- package/subscriber/Broadcaster.js +120 -1
- package/subscriber/Broadcaster.js.map +1 -1
- package/subscriber/BroadcasterResult.js +0 -1
- package/subscriber/BroadcasterResult.js.map +1 -1
- package/subscriber/EntitySubscriberInterface.d.ts +27 -0
- package/subscriber/EntitySubscriberInterface.js.map +1 -1
- package/subscriber/event/TransactionCommitEvent.d.ts +22 -0
- package/subscriber/event/TransactionCommitEvent.js +4 -0
- package/subscriber/event/TransactionCommitEvent.js.map +1 -0
- package/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
- package/subscriber/event/TransactionRollbackEvent.js +4 -0
- package/subscriber/event/TransactionRollbackEvent.js.map +1 -0
- package/subscriber/event/TransactionStartEvent.d.ts +22 -0
- package/subscriber/event/TransactionStartEvent.js +4 -0
- package/subscriber/event/TransactionStartEvent.js.map +1 -0
- package/typeorm-model-shim.js +145 -128
- package/util/ApplyValueTransformers.js +0 -1
- package/util/ApplyValueTransformers.js.map +1 -1
- package/util/DateUtils.d.ts +1 -1
- package/util/DateUtils.js +1 -8
- package/util/DateUtils.js.map +1 -1
- package/util/DepGraph.js +0 -1
- package/util/DepGraph.js.map +1 -1
- package/util/DirectoryExportedClassesLoader.js +0 -1
- package/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/util/ObjectUtils.js +0 -1
- package/util/ObjectUtils.js.map +1 -1
- package/util/OrmUtils.js +0 -1
- package/util/OrmUtils.js.map +1 -1
- package/util/RandomGenerator.js +0 -1
- package/util/RandomGenerator.js.map +1 -1
- package/util/StringUtils.js +0 -1
- package/util/StringUtils.js.map +1 -1
- package/util/VersionUtils.js +0 -1
- package/util/VersionUtils.js.map +1 -1
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InsertQueryBuilder = void 0;
|
|
4
3
|
var tslib_1 = require("tslib");
|
|
5
4
|
var CockroachDriver_1 = require("../driver/cockroachdb/CockroachDriver");
|
|
6
5
|
var SapDriver_1 = require("../driver/sap/SapDriver");
|
|
@@ -34,7 +33,8 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
34
33
|
* Gets generated sql query without parameters being replaced.
|
|
35
34
|
*/
|
|
36
35
|
InsertQueryBuilder.prototype.getQuery = function () {
|
|
37
|
-
var sql = this.
|
|
36
|
+
var sql = this.createComment();
|
|
37
|
+
sql += this.createInsertExpression();
|
|
38
38
|
return sql.trim();
|
|
39
39
|
};
|
|
40
40
|
/**
|
|
@@ -85,7 +85,9 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
85
85
|
selectOutputSql = null;
|
|
86
86
|
returningResultsEntityUpdator = new ReturningResultsEntityUpdator_1.ReturningResultsEntityUpdator(queryRunner, this.expressionMap);
|
|
87
87
|
if (this.expressionMap.updateEntity === true && this.expressionMap.mainAlias.hasMetadata) {
|
|
88
|
-
this.
|
|
88
|
+
if (!(valueSets.length > 1 && this.connection.driver instanceof OracleDriver_1.OracleDriver)) {
|
|
89
|
+
this.expressionMap.extraReturningColumns = returningResultsEntityUpdator.getInsertionReturningColumns();
|
|
90
|
+
}
|
|
89
91
|
if (this.expressionMap.extraReturningColumns.length > 0 && this.connection.driver instanceof SqlServerDriver_1.SqlServerDriver) {
|
|
90
92
|
declareSql = this.connection.driver.buildTableVariableDeclaration("@OutputTable", this.expressionMap.extraReturningColumns);
|
|
91
93
|
selectOutputSql = "SELECT * FROM @OutputTable";
|
|
@@ -221,19 +223,20 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
221
223
|
* Adds additional update statement supported in databases.
|
|
222
224
|
*/
|
|
223
225
|
InsertQueryBuilder.prototype.orUpdate = function (statement) {
|
|
226
|
+
var _this = this;
|
|
224
227
|
this.expressionMap.onUpdate = {};
|
|
225
228
|
if (statement && Array.isArray(statement.conflict_target))
|
|
226
|
-
this.expressionMap.onUpdate.conflict = " ( " + statement.conflict_target.join(", ") + " ) ";
|
|
229
|
+
this.expressionMap.onUpdate.conflict = " ( " + statement.conflict_target.map(function (columnName) { return _this.escape(columnName); }).join(", ") + " ) ";
|
|
227
230
|
if (statement && typeof statement.conflict_target === "string")
|
|
228
|
-
this.expressionMap.onUpdate.conflict = " ON CONSTRAINT " + statement.conflict_target + " ";
|
|
231
|
+
this.expressionMap.onUpdate.conflict = " ON CONSTRAINT " + this.escape(statement.conflict_target) + " ";
|
|
229
232
|
if (statement && Array.isArray(statement.columns))
|
|
230
|
-
this.expressionMap.onUpdate.columns = statement.columns.map(function (column) { return column + " = :" + column; }).join(", ");
|
|
233
|
+
this.expressionMap.onUpdate.columns = statement.columns.map(function (column) { return _this.escape(column) + " = :" + column; }).join(", ");
|
|
231
234
|
if (statement && Array.isArray(statement.overwrite)) {
|
|
232
235
|
if (this.connection.driver instanceof MysqlDriver_1.MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver_1.AuroraDataApiDriver) {
|
|
233
236
|
this.expressionMap.onUpdate.overwrite = statement.overwrite.map(function (column) { return column + " = VALUES(" + column + ")"; }).join(", ");
|
|
234
237
|
}
|
|
235
238
|
else if (this.connection.driver instanceof PostgresDriver_1.PostgresDriver || this.connection.driver instanceof AbstractSqliteDriver_1.AbstractSqliteDriver || this.connection.driver instanceof CockroachDriver_1.CockroachDriver) {
|
|
236
|
-
this.expressionMap.onUpdate.overwrite = statement.overwrite.map(function (column) { return column + " = EXCLUDED." + column; }).join(", ");
|
|
239
|
+
this.expressionMap.onUpdate.overwrite = statement.overwrite.map(function (column) { return _this.escape(column) + " = EXCLUDED." + _this.escape(column); }).join(", ");
|
|
237
240
|
}
|
|
238
241
|
}
|
|
239
242
|
return this;
|
|
@@ -245,9 +248,10 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
245
248
|
* Creates INSERT express used to perform insert query.
|
|
246
249
|
*/
|
|
247
250
|
InsertQueryBuilder.prototype.createInsertExpression = function () {
|
|
251
|
+
var _this = this;
|
|
248
252
|
var tableName = this.getTableName(this.getMainTableName());
|
|
249
253
|
var valuesExpression = this.createValuesExpression(); // its important to get values before returning expression because oracle rely on native parameters and ordering of them is important
|
|
250
|
-
var returningExpression = this.createReturningExpression();
|
|
254
|
+
var returningExpression = (this.connection.driver instanceof OracleDriver_1.OracleDriver && this.getValueSets().length > 1) ? null : this.createReturningExpression(); // oracle doesnt support returning with multi-row insert
|
|
251
255
|
var columnsExpression = this.createColumnNamesExpression();
|
|
252
256
|
var query = "INSERT ";
|
|
253
257
|
if (this.connection.driver instanceof MysqlDriver_1.MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver_1.AuroraDataApiDriver) {
|
|
@@ -268,7 +272,12 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
268
272
|
}
|
|
269
273
|
// add VALUES expression
|
|
270
274
|
if (valuesExpression) {
|
|
271
|
-
|
|
275
|
+
if (this.connection.driver instanceof OracleDriver_1.OracleDriver && this.getValueSets().length > 1) {
|
|
276
|
+
query += " " + valuesExpression;
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
query += " VALUES " + valuesExpression;
|
|
280
|
+
}
|
|
272
281
|
}
|
|
273
282
|
else {
|
|
274
283
|
if (this.connection.driver instanceof MysqlDriver_1.MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver_1.AuroraDataApiDriver) { // special syntax for mysql DEFAULT VALUES insertion
|
|
@@ -298,6 +307,15 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
298
307
|
if (returningExpression && (this.connection.driver instanceof PostgresDriver_1.PostgresDriver || this.connection.driver instanceof OracleDriver_1.OracleDriver || this.connection.driver instanceof CockroachDriver_1.CockroachDriver)) {
|
|
299
308
|
query += " RETURNING " + returningExpression;
|
|
300
309
|
}
|
|
310
|
+
// Inserting a specific value for an auto-increment primary key in mssql requires enabling IDENTITY_INSERT
|
|
311
|
+
// IDENTITY_INSERT can only be enabled for tables where there is an IDENTITY column and only if there is a value to be inserted (i.e. supplying DEFAULT is prohibited if IDENTITY_INSERT is enabled)
|
|
312
|
+
if (this.connection.driver instanceof SqlServerDriver_1.SqlServerDriver
|
|
313
|
+
&& this.expressionMap.mainAlias.hasMetadata
|
|
314
|
+
&& this.expressionMap.mainAlias.metadata.columns
|
|
315
|
+
.filter(function (column) { return _this.expressionMap.insertColumns.length > 0 ? _this.expressionMap.insertColumns.indexOf(column.propertyPath) !== -1 : column.isInsert; })
|
|
316
|
+
.some(function (column) { return _this.isOverridingAutoIncrementBehavior(column); })) {
|
|
317
|
+
query = "SET IDENTITY_INSERT " + tableName + " ON; " + query + "; SET IDENTITY_INSERT " + tableName + " OFF";
|
|
318
|
+
}
|
|
301
319
|
return query;
|
|
302
320
|
};
|
|
303
321
|
/**
|
|
@@ -321,7 +339,8 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
321
339
|
&& !(_this.connection.driver instanceof OracleDriver_1.OracleDriver)
|
|
322
340
|
&& !(_this.connection.driver instanceof AbstractSqliteDriver_1.AbstractSqliteDriver)
|
|
323
341
|
&& !(_this.connection.driver instanceof MysqlDriver_1.MysqlDriver)
|
|
324
|
-
&& !(_this.connection.driver instanceof AuroraDataApiDriver_1.AuroraDataApiDriver)
|
|
342
|
+
&& !(_this.connection.driver instanceof AuroraDataApiDriver_1.AuroraDataApiDriver)
|
|
343
|
+
&& !(_this.connection.driver instanceof SqlServerDriver_1.SqlServerDriver && _this.isOverridingAutoIncrementBehavior(column)))
|
|
325
344
|
return false;
|
|
326
345
|
return true;
|
|
327
346
|
});
|
|
@@ -358,7 +377,12 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
358
377
|
valueSets.forEach(function (valueSet, valueSetIndex) {
|
|
359
378
|
columns.forEach(function (column, columnIndex) {
|
|
360
379
|
if (columnIndex === 0) {
|
|
361
|
-
|
|
380
|
+
if (_this.connection.driver instanceof OracleDriver_1.OracleDriver && valueSets.length > 1) {
|
|
381
|
+
expression_1 += " SELECT ";
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
expression_1 += "(";
|
|
385
|
+
}
|
|
362
386
|
}
|
|
363
387
|
var paramName = "i" + valueSetIndex + "_" + column.databaseName;
|
|
364
388
|
// extract real value from the entity
|
|
@@ -410,7 +434,7 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
410
434
|
// if value for this column was not provided then insert default value
|
|
411
435
|
}
|
|
412
436
|
else if (value === undefined) {
|
|
413
|
-
if (_this.connection.driver instanceof AbstractSqliteDriver_1.AbstractSqliteDriver || _this.connection.driver instanceof SapDriver_1.SapDriver) { // unfortunately sqlite does not support DEFAULT expression in INSERT queries
|
|
437
|
+
if ((_this.connection.driver instanceof OracleDriver_1.OracleDriver && valueSets.length > 1) || _this.connection.driver instanceof AbstractSqliteDriver_1.AbstractSqliteDriver || _this.connection.driver instanceof SapDriver_1.SapDriver) { // unfortunately sqlite does not support DEFAULT expression in INSERT queries
|
|
414
438
|
if (column.default !== undefined) { // try to use default defined in the column
|
|
415
439
|
expression_1 += _this.connection.driver.normalizeDefault(column);
|
|
416
440
|
}
|
|
@@ -462,10 +486,20 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
462
486
|
}
|
|
463
487
|
if (columnIndex === columns.length - 1) {
|
|
464
488
|
if (valueSetIndex === valueSets.length - 1) {
|
|
465
|
-
|
|
489
|
+
if (_this.connection.driver instanceof OracleDriver_1.OracleDriver && valueSets.length > 1) {
|
|
490
|
+
expression_1 += " FROM DUAL ";
|
|
491
|
+
}
|
|
492
|
+
else {
|
|
493
|
+
expression_1 += ")";
|
|
494
|
+
}
|
|
466
495
|
}
|
|
467
496
|
else {
|
|
468
|
-
|
|
497
|
+
if (_this.connection.driver instanceof OracleDriver_1.OracleDriver && valueSets.length > 1) {
|
|
498
|
+
expression_1 += " FROM DUAL UNION ALL ";
|
|
499
|
+
}
|
|
500
|
+
else {
|
|
501
|
+
expression_1 += "), ";
|
|
502
|
+
}
|
|
469
503
|
}
|
|
470
504
|
}
|
|
471
505
|
else {
|
|
@@ -536,6 +570,20 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
536
570
|
return [this.expressionMap.valuesSet];
|
|
537
571
|
throw new InsertValuesMissingError_1.InsertValuesMissingError();
|
|
538
572
|
};
|
|
573
|
+
/**
|
|
574
|
+
* Checks if column is an auto-generated primary key, but the current insertion specifies a value for it.
|
|
575
|
+
*
|
|
576
|
+
* @param column
|
|
577
|
+
*/
|
|
578
|
+
InsertQueryBuilder.prototype.isOverridingAutoIncrementBehavior = function (column) {
|
|
579
|
+
return column.isPrimary
|
|
580
|
+
&& column.isGenerated
|
|
581
|
+
&& column.generationStrategy === "increment"
|
|
582
|
+
&& this.getValueSets().some(function (valueSet) {
|
|
583
|
+
return column.getEntityValue(valueSet) !== undefined
|
|
584
|
+
&& column.getEntityValue(valueSet) !== null;
|
|
585
|
+
});
|
|
586
|
+
};
|
|
539
587
|
return InsertQueryBuilder;
|
|
540
588
|
}(QueryBuilder_1.QueryBuilder));
|
|
541
589
|
exports.InsertQueryBuilder = InsertQueryBuilder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/query-builder/InsertQueryBuilder.ts"],"names":[],"mappings":"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","file":"InsertQueryBuilder.js","sourcesContent":["import {CockroachDriver} from \"../driver/cockroachdb/CockroachDriver\";\nimport {SapDriver} from \"../driver/sap/SapDriver\";\nimport {QueryBuilder} from \"./QueryBuilder\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {EntityTarget} from \"../common/EntityTarget\";\nimport {QueryDeepPartialEntity} from \"./QueryPartialEntity\";\nimport {SqlServerDriver} from \"../driver/sqlserver/SqlServerDriver\";\nimport {PostgresDriver} from \"../driver/postgres/PostgresDriver\";\nimport {MysqlDriver} from \"../driver/mysql/MysqlDriver\";\nimport {RandomGenerator} from \"../util/RandomGenerator\";\nimport {InsertResult} from \"./result/InsertResult\";\nimport {ReturningStatementNotSupportedError} from \"../error/ReturningStatementNotSupportedError\";\nimport {InsertValuesMissingError} from \"../error/InsertValuesMissingError\";\nimport {ColumnMetadata} from \"../metadata/ColumnMetadata\";\nimport {ReturningResultsEntityUpdator} from \"./ReturningResultsEntityUpdator\";\nimport {AbstractSqliteDriver} from \"../driver/sqlite-abstract/AbstractSqliteDriver\";\nimport {SqljsDriver} from \"../driver/sqljs/SqljsDriver\";\nimport {BroadcasterResult} from \"../subscriber/BroadcasterResult\";\nimport {EntitySchema} from \"../entity-schema/EntitySchema\";\nimport {OracleDriver} from \"../driver/oracle/OracleDriver\";\nimport {AuroraDataApiDriver} from \"../driver/aurora-data-api/AuroraDataApiDriver\";\n\n/**\n * Allows to build complex sql queries in a fashion way and execute those queries.\n */\nexport class InsertQueryBuilder<Entity> extends QueryBuilder<Entity> {\n\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets generated sql query without parameters being replaced.\n */\n getQuery(): string {\n let sql = this.createInsertExpression();\n return sql.trim();\n }\n\n /**\n * Executes sql generated by query builder and returns raw database results.\n */\n async execute(): Promise<InsertResult> {\n // console.time(\".value sets\");\n const valueSets: ObjectLiteral[] = this.getValueSets();\n // console.timeEnd(\".value sets\");\n\n // If user passed empty array of entities then we don't need to do\n // anything.\n //\n // Fixes GitHub issues #3111 and #5734. If we were to let this through\n // we would run into problems downstream, like subscribers getting\n // invoked with the empty array where they expect an entity, and SQL\n // queries with an empty VALUES clause.\n if (valueSets.length === 0)\n return new InsertResult();\n\n // console.time(\"QueryBuilder.execute\");\n // console.time(\".database stuff\");\n const queryRunner = this.obtainQueryRunner();\n let transactionStartedByUs: boolean = false;\n\n try {\n\n // start transaction if it was enabled\n if (this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false) {\n await queryRunner.startTransaction();\n transactionStartedByUs = true;\n }\n\n // console.timeEnd(\".database stuff\");\n\n // call before insertion methods in listeners and subscribers\n if (this.expressionMap.callListeners === true && this.expressionMap.mainAlias!.hasMetadata) {\n const broadcastResult = new BroadcasterResult();\n valueSets.forEach(valueSet => {\n queryRunner.broadcaster.broadcastBeforeInsertEvent(broadcastResult, this.expressionMap.mainAlias!.metadata, valueSet);\n });\n if (broadcastResult.promises.length > 0) await Promise.all(broadcastResult.promises);\n }\n\n let declareSql: string | null = null;\n let selectOutputSql: string | null = null;\n\n // if update entity mode is enabled we may need extra columns for the returning statement\n // console.time(\".prepare returning statement\");\n const returningResultsEntityUpdator = new ReturningResultsEntityUpdator(queryRunner, this.expressionMap);\n if (this.expressionMap.updateEntity === true && this.expressionMap.mainAlias!.hasMetadata) {\n this.expressionMap.extraReturningColumns = returningResultsEntityUpdator.getInsertionReturningColumns();\n\n if (this.expressionMap.extraReturningColumns.length > 0 && this.connection.driver instanceof SqlServerDriver) {\n declareSql = this.connection.driver.buildTableVariableDeclaration(\"@OutputTable\", this.expressionMap.extraReturningColumns);\n selectOutputSql = `SELECT * FROM @OutputTable`;\n }\n }\n // console.timeEnd(\".prepare returning statement\");\n\n // execute query\n // console.time(\".getting query and parameters\");\n const [insertSql, parameters] = this.getQueryAndParameters();\n // console.timeEnd(\".getting query and parameters\");\n const insertResult = new InsertResult();\n // console.time(\".query execution by database\");\n const statements = [declareSql, insertSql, selectOutputSql];\n insertResult.raw = await queryRunner.query(\n statements.filter(sql => sql != null).join(\";\\n\\n\"),\n parameters,\n );\n // console.timeEnd(\".query execution by database\");\n\n // load returning results and set them to the entity if entity updation is enabled\n if (this.expressionMap.updateEntity === true && this.expressionMap.mainAlias!.hasMetadata) {\n // console.time(\".updating entity\");\n await returningResultsEntityUpdator.insert(insertResult, valueSets);\n // console.timeEnd(\".updating entity\");\n }\n\n // call after insertion methods in listeners and subscribers\n if (this.expressionMap.callListeners === true && this.expressionMap.mainAlias!.hasMetadata) {\n const broadcastResult = new BroadcasterResult();\n valueSets.forEach(valueSet => {\n queryRunner.broadcaster.broadcastAfterInsertEvent(broadcastResult, this.expressionMap.mainAlias!.metadata, valueSet);\n });\n if (broadcastResult.promises.length > 0) await Promise.all(broadcastResult.promises);\n }\n\n // close transaction if we started it\n // console.time(\".commit\");\n if (transactionStartedByUs) {\n await queryRunner.commitTransaction();\n }\n // console.timeEnd(\".commit\");\n\n return insertResult;\n\n } catch (error) {\n\n // rollback transaction if we started it\n if (transactionStartedByUs) {\n try {\n await queryRunner.rollbackTransaction();\n } catch (rollbackError) { }\n }\n throw error;\n\n } finally {\n\n // console.time(\".releasing connection\");\n if (queryRunner !== this.queryRunner) { // means we created our own query runner\n await queryRunner.release();\n }\n if (this.connection.driver instanceof SqljsDriver && !queryRunner.isTransactionActive) {\n await this.connection.driver.autoSave();\n }\n // console.timeEnd(\".releasing connection\");\n // console.timeEnd(\"QueryBuilder.execute\");\n }\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Specifies INTO which entity's table insertion will be executed.\n */\n into<T>(entityTarget: EntityTarget<T>, columns?: string[]): InsertQueryBuilder<T> {\n entityTarget = entityTarget instanceof EntitySchema ? entityTarget.options.name : entityTarget;\n const mainAlias = this.createFromAlias(entityTarget);\n this.expressionMap.setMainAlias(mainAlias);\n this.expressionMap.insertColumns = columns || [];\n return (this as any) as InsertQueryBuilder<T>;\n }\n\n /**\n * Values needs to be inserted into table.\n */\n values(values: QueryDeepPartialEntity<Entity>|QueryDeepPartialEntity<Entity>[]): this {\n this.expressionMap.valuesSet = values;\n return this;\n }\n\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n output(columns: string[]): this;\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n output(output: string): this;\n\n /**\n * Optional returning/output clause.\n */\n output(output: string|string[]): this;\n\n /**\n * Optional returning/output clause.\n */\n output(output: string|string[]): this {\n return this.returning(output);\n }\n\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n returning(columns: string[]): this;\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n returning(returning: string): this;\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string|string[]): this;\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string|string[]): this {\n\n // not all databases support returning/output cause\n if (!this.connection.driver.isReturningSqlSupported())\n throw new ReturningStatementNotSupportedError();\n\n this.expressionMap.returning = returning;\n return this;\n }\n\n /**\n * Indicates if entity must be updated after insertion operations.\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\n * Enabled by default.\n */\n updateEntity(enabled: boolean): this {\n this.expressionMap.updateEntity = enabled;\n return this;\n }\n\n /**\n * Adds additional ON CONFLICT statement supported in postgres and cockroach.\n */\n onConflict(statement: string): this {\n this.expressionMap.onConflict = statement;\n return this;\n }\n\n /**\n * Adds additional ignore statement supported in databases.\n */\n orIgnore(statement: string | boolean = true): this {\n this.expressionMap.onIgnore = statement;\n return this;\n }\n\n /**\n * Adds additional update statement supported in databases.\n */\n orUpdate(statement?: { columns?: string[], overwrite?: string[], conflict_target?: string | string[] }): this {\n this.expressionMap.onUpdate = {};\n if (statement && Array.isArray(statement.conflict_target))\n this.expressionMap.onUpdate.conflict = ` ( ${statement.conflict_target.join(\", \")} ) `;\n if (statement && typeof statement.conflict_target === \"string\")\n this.expressionMap.onUpdate.conflict = ` ON CONSTRAINT ${statement.conflict_target} `;\n if (statement && Array.isArray(statement.columns))\n this.expressionMap.onUpdate.columns = statement.columns.map(column => `${column} = :${column}`).join(\", \");\n if (statement && Array.isArray(statement.overwrite)) {\n if (this.connection.driver instanceof MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver) {\n this.expressionMap.onUpdate.overwrite = statement.overwrite.map(column => `${column} = VALUES(${column})`).join(\", \");\n } else if (this.connection.driver instanceof PostgresDriver || this.connection.driver instanceof AbstractSqliteDriver || this.connection.driver instanceof CockroachDriver) {\n this.expressionMap.onUpdate.overwrite = statement.overwrite.map(column => `${column} = EXCLUDED.${column}`).join(\", \");\n }\n }\n return this;\n }\n\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates INSERT express used to perform insert query.\n */\n protected createInsertExpression() {\n const tableName = this.getTableName(this.getMainTableName());\n const valuesExpression = this.createValuesExpression(); // its important to get values before returning expression because oracle rely on native parameters and ordering of them is important\n const returningExpression = this.createReturningExpression();\n const columnsExpression = this.createColumnNamesExpression();\n let query = \"INSERT \";\n\n if (this.connection.driver instanceof MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver) {\n query += `${this.expressionMap.onIgnore ? \" IGNORE \" : \"\"}`;\n }\n\n query += `INTO ${tableName}`;\n\n // add columns expression\n if (columnsExpression) {\n query += `(${columnsExpression})`;\n } else {\n if (!valuesExpression && (this.connection.driver instanceof MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver)) // special syntax for mysql DEFAULT VALUES insertion\n query += \"()\";\n }\n\n // add OUTPUT expression\n if (returningExpression && this.connection.driver instanceof SqlServerDriver) {\n query += ` OUTPUT ${returningExpression}`;\n }\n\n // add VALUES expression\n if (valuesExpression) {\n query += ` VALUES ${valuesExpression}`;\n } else {\n if (this.connection.driver instanceof MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver) { // special syntax for mysql DEFAULT VALUES insertion\n query += \" VALUES ()\";\n } else {\n query += ` DEFAULT VALUES`;\n }\n }\n if (this.connection.driver instanceof PostgresDriver || this.connection.driver instanceof AbstractSqliteDriver || this.connection.driver instanceof CockroachDriver) {\n query += `${this.expressionMap.onIgnore ? \" ON CONFLICT DO NOTHING \" : \"\"}`;\n query += `${this.expressionMap.onConflict ? \" ON CONFLICT \" + this.expressionMap.onConflict : \"\"}`;\n if (this.expressionMap.onUpdate) {\n const { overwrite, columns, conflict } = this.expressionMap.onUpdate;\n query += `${columns ? \" ON CONFLICT \" + conflict + \" DO UPDATE SET \" + columns : \"\"}`;\n query += `${overwrite ? \" ON CONFLICT \" + conflict + \" DO UPDATE SET \" + overwrite : \"\"}`;\n }\n } else if (this.connection.driver instanceof MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver) {\n if (this.expressionMap.onUpdate) {\n const { overwrite, columns } = this.expressionMap.onUpdate;\n query += `${columns ? \" ON DUPLICATE KEY UPDATE \" + columns : \"\"}`;\n query += `${overwrite ? \" ON DUPLICATE KEY UPDATE \" + overwrite : \"\"}`;\n }\n }\n\n // add RETURNING expression\n if (returningExpression && (this.connection.driver instanceof PostgresDriver || this.connection.driver instanceof OracleDriver || this.connection.driver instanceof CockroachDriver)) {\n query += ` RETURNING ${returningExpression}`;\n }\n\n return query;\n }\n\n /**\n * Gets list of columns where values must be inserted to.\n */\n protected getInsertedColumns(): ColumnMetadata[] {\n if (!this.expressionMap.mainAlias!.hasMetadata)\n return [];\n\n return this.expressionMap.mainAlias!.metadata.columns.filter(column => {\n\n // if user specified list of columns he wants to insert to, then we filter only them\n if (this.expressionMap.insertColumns.length)\n return this.expressionMap.insertColumns.indexOf(column.propertyPath) !== -1;\n\n // skip columns the user doesn't want included by default\n if (!column.isInsert) { return false; }\n\n // if user did not specified such list then return all columns except auto-increment one\n // for Oracle we return auto-increment column as well because Oracle does not support DEFAULT VALUES expression\n if (column.isGenerated && column.generationStrategy === \"increment\"\n && !(this.connection.driver instanceof OracleDriver)\n && !(this.connection.driver instanceof AbstractSqliteDriver)\n && !(this.connection.driver instanceof MysqlDriver)\n && !(this.connection.driver instanceof AuroraDataApiDriver))\n return false;\n\n return true;\n });\n }\n\n /**\n * Creates a columns string where values must be inserted to for INSERT INTO expression.\n */\n protected createColumnNamesExpression(): string {\n const columns = this.getInsertedColumns();\n if (columns.length > 0)\n return columns.map(column => this.escape(column.databaseName)).join(\", \");\n\n // in the case if there are no insert columns specified and table without metadata used\n // we get columns from the inserted value map, in the case if only one inserted map is specified\n if (!this.expressionMap.mainAlias!.hasMetadata && !this.expressionMap.insertColumns.length) {\n const valueSets = this.getValueSets();\n if (valueSets.length === 1)\n return Object.keys(valueSets[0]).map(columnName => this.escape(columnName)).join(\", \");\n }\n\n // get a table name and all column database names\n return this.expressionMap.insertColumns.map(columnName => this.escape(columnName)).join(\", \");\n }\n\n /**\n * Creates list of values needs to be inserted in the VALUES expression.\n */\n protected createValuesExpression(): string {\n const valueSets = this.getValueSets();\n const columns = this.getInsertedColumns();\n\n // if column metadatas are given then apply all necessary operations with values\n if (columns.length > 0) {\n let expression = \"\";\n let parametersCount = Object.keys(this.expressionMap.nativeParameters).length;\n valueSets.forEach((valueSet, valueSetIndex) => {\n columns.forEach((column, columnIndex) => {\n if (columnIndex === 0) {\n expression += \"(\";\n }\n const paramName = \"i\" + valueSetIndex + \"_\" + column.databaseName;\n\n // extract real value from the entity\n let value = column.getEntityValue(valueSet);\n\n // if column is relational and value is an object then get real referenced column value from this object\n // for example column value is { question: { id: 1 } }, value will be equal to { id: 1 }\n // and we extract \"1\" from this object\n /*if (column.referencedColumn && value instanceof Object && !(value instanceof Function)) { // todo: check if we still need it since getEntityValue already has similar code\n value = column.referencedColumn.getEntityValue(value);\n }*/\n\n\n if (!(value instanceof Function)) {\n // make sure our value is normalized by a driver\n value = this.connection.driver.preparePersistentValue(value, column);\n }\n\n // newly inserted entities always have a version equal to 1 (first version)\n // also, user-specified version must be empty\n if (column.isVersion && value === undefined) {\n expression += \"1\";\n\n // } else if (column.isNestedSetLeft) {\n // const tableName = this.connection.driver.escape(column.entityMetadata.tablePath);\n // const rightColumnName = this.connection.driver.escape(column.entityMetadata.nestedSetRightColumn!.databaseName);\n // const subQuery = `(SELECT c.max + 1 FROM (SELECT MAX(${rightColumnName}) as max from ${tableName}) c)`;\n // expression += subQuery;\n //\n // } else if (column.isNestedSetRight) {\n // const tableName = this.connection.driver.escape(column.entityMetadata.tablePath);\n // const rightColumnName = this.connection.driver.escape(column.entityMetadata.nestedSetRightColumn!.databaseName);\n // const subQuery = `(SELECT c.max + 2 FROM (SELECT MAX(${rightColumnName}) as max from ${tableName}) c)`;\n // expression += subQuery;\n\n } else if (column.isDiscriminator) {\n this.expressionMap.nativeParameters[\"discriminator_value_\" + parametersCount] = this.expressionMap.mainAlias!.metadata.discriminatorValue;\n expression += this.connection.driver.createParameter(\"discriminator_value_\" + parametersCount, parametersCount);\n parametersCount++;\n // return \"1\";\n\n // for create and update dates we insert current date\n // no, we don't do it because this constant is already in \"default\" value of the column\n // with extended timestamp functionality, like CURRENT_TIMESTAMP(6) for example\n // } else if (column.isCreateDate || column.isUpdateDate) {\n // return \"CURRENT_TIMESTAMP\";\n\n // if column is generated uuid and database does not support its generation and custom generated value was not provided by a user - we generate a new uuid value for insertion\n } else if (column.isGenerated && column.generationStrategy === \"uuid\" && !this.connection.driver.isUUIDGenerationSupported() && value === undefined) {\n\n const paramName = \"uuid_\" + column.databaseName + valueSetIndex;\n value = RandomGenerator.uuid4();\n this.expressionMap.nativeParameters[paramName] = value;\n expression += this.connection.driver.createParameter(paramName, parametersCount);\n parametersCount++;\n\n // if value for this column was not provided then insert default value\n } else if (value === undefined) {\n if (this.connection.driver instanceof AbstractSqliteDriver || this.connection.driver instanceof SapDriver) { // unfortunately sqlite does not support DEFAULT expression in INSERT queries\n if (column.default !== undefined) { // try to use default defined in the column\n expression += this.connection.driver.normalizeDefault(column);\n } else {\n expression += \"NULL\"; // otherwise simply use NULL and pray if column is nullable\n }\n\n } else {\n expression += \"DEFAULT\";\n }\n\n // support for SQL expressions in queries\n } else if (value instanceof Function) {\n expression += value();\n\n // just any other regular value\n } else {\n if (this.connection.driver instanceof SqlServerDriver)\n value = this.connection.driver.parametrizeValue(column, value);\n\n // we need to store array values in a special class to make sure parameter replacement will work correctly\n // if (value instanceof Array)\n // value = new ArrayParameter(value);\n\n this.expressionMap.nativeParameters[paramName] = value;\n if ((this.connection.driver instanceof MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver) && this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {\n const useLegacy = this.connection.driver.options.legacySpatialSupport;\n const geomFromText = useLegacy ? \"GeomFromText\" : \"ST_GeomFromText\";\n if (column.srid != null) {\n expression += `${geomFromText}(${this.connection.driver.createParameter(paramName, parametersCount)}, ${column.srid})`;\n } else {\n expression += `${geomFromText}(${this.connection.driver.createParameter(paramName, parametersCount)})`;\n }\n } else if (this.connection.driver instanceof PostgresDriver && this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {\n if (column.srid != null) {\n expression += `ST_SetSRID(ST_GeomFromGeoJSON(${this.connection.driver.createParameter(paramName, parametersCount)}), ${column.srid})::${column.type}`;\n } else {\n expression += `ST_GeomFromGeoJSON(${this.connection.driver.createParameter(paramName, parametersCount)})::${column.type}`;\n }\n } else if (this.connection.driver instanceof SqlServerDriver && this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {\n expression += column.type + \"::STGeomFromText(\" + this.connection.driver.createParameter(paramName, parametersCount) + \", \" + (column.srid || \"0\") + \")\";\n } else {\n expression += this.connection.driver.createParameter(paramName, parametersCount);\n }\n parametersCount++;\n }\n\n if (columnIndex === columns.length - 1) {\n if (valueSetIndex === valueSets.length - 1) {\n expression += \")\";\n } else {\n expression += \"), \";\n }\n } else {\n expression += \", \";\n }\n });\n });\n if (expression === \"()\")\n return \"\";\n\n return expression;\n } else { // for tables without metadata\n // get values needs to be inserted\n let expression = \"\";\n let parametersCount = Object.keys(this.expressionMap.nativeParameters).length;\n\n valueSets.forEach((valueSet, insertionIndex) => {\n const columns = Object.keys(valueSet);\n columns.forEach((columnName, columnIndex) => {\n if (columnIndex === 0) {\n expression += \"(\";\n }\n const paramName = \"i\" + insertionIndex + \"_\" + columnName;\n const value = valueSet[columnName];\n\n // support for SQL expressions in queries\n if (value instanceof Function) {\n expression += value();\n\n // if value for this column was not provided then insert default value\n } else if (value === undefined) {\n if (this.connection.driver instanceof AbstractSqliteDriver || this.connection.driver instanceof SapDriver) {\n expression += \"NULL\";\n\n } else {\n expression += \"DEFAULT\";\n }\n\n // just any other regular value\n } else {\n this.expressionMap.nativeParameters[paramName] = value;\n expression += this.connection.driver.createParameter(paramName, parametersCount);\n parametersCount++;\n }\n\n if (columnIndex === Object.keys(valueSet).length - 1) {\n if (insertionIndex === valueSets.length - 1) {\n expression += \")\";\n } else {\n expression += \"), \";\n }\n }\n else {\n expression += \", \";\n }\n });\n });\n if (expression === \"()\")\n return \"\";\n return expression;\n }\n }\n\n /**\n * Gets array of values need to be inserted into the target table.\n */\n protected getValueSets(): ObjectLiteral[] {\n if (Array.isArray(this.expressionMap.valuesSet))\n return this.expressionMap.valuesSet;\n\n if (this.expressionMap.valuesSet instanceof Object)\n return [this.expressionMap.valuesSet];\n\n throw new InsertValuesMissingError();\n }\n\n}\n"],"sourceRoot":".."}
|
|
1
|
+
{"version":3,"sources":["../../src/query-builder/InsertQueryBuilder.ts"],"names":[],"mappings":"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","file":"InsertQueryBuilder.js","sourcesContent":["import {CockroachDriver} from \"../driver/cockroachdb/CockroachDriver\";\nimport {SapDriver} from \"../driver/sap/SapDriver\";\nimport {QueryBuilder} from \"./QueryBuilder\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {EntityTarget} from \"../common/EntityTarget\";\nimport {QueryDeepPartialEntity} from \"./QueryPartialEntity\";\nimport {SqlServerDriver} from \"../driver/sqlserver/SqlServerDriver\";\nimport {PostgresDriver} from \"../driver/postgres/PostgresDriver\";\nimport {MysqlDriver} from \"../driver/mysql/MysqlDriver\";\nimport {RandomGenerator} from \"../util/RandomGenerator\";\nimport {InsertResult} from \"./result/InsertResult\";\nimport {ReturningStatementNotSupportedError} from \"../error/ReturningStatementNotSupportedError\";\nimport {InsertValuesMissingError} from \"../error/InsertValuesMissingError\";\nimport {ColumnMetadata} from \"../metadata/ColumnMetadata\";\nimport {ReturningResultsEntityUpdator} from \"./ReturningResultsEntityUpdator\";\nimport {AbstractSqliteDriver} from \"../driver/sqlite-abstract/AbstractSqliteDriver\";\nimport {SqljsDriver} from \"../driver/sqljs/SqljsDriver\";\nimport {BroadcasterResult} from \"../subscriber/BroadcasterResult\";\nimport {EntitySchema} from \"../entity-schema/EntitySchema\";\nimport {OracleDriver} from \"../driver/oracle/OracleDriver\";\nimport {AuroraDataApiDriver} from \"../driver/aurora-data-api/AuroraDataApiDriver\";\n\n/**\n * Allows to build complex sql queries in a fashion way and execute those queries.\n */\nexport class InsertQueryBuilder<Entity> extends QueryBuilder<Entity> {\n\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets generated sql query without parameters being replaced.\n */\n getQuery(): string {\n let sql = this.createComment();\n sql += this.createInsertExpression();\n return sql.trim();\n }\n\n /**\n * Executes sql generated by query builder and returns raw database results.\n */\n async execute(): Promise<InsertResult> {\n // console.time(\".value sets\");\n const valueSets: ObjectLiteral[] = this.getValueSets();\n // console.timeEnd(\".value sets\");\n\n // If user passed empty array of entities then we don't need to do\n // anything.\n //\n // Fixes GitHub issues #3111 and #5734. If we were to let this through\n // we would run into problems downstream, like subscribers getting\n // invoked with the empty array where they expect an entity, and SQL\n // queries with an empty VALUES clause.\n if (valueSets.length === 0)\n return new InsertResult();\n\n // console.time(\"QueryBuilder.execute\");\n // console.time(\".database stuff\");\n const queryRunner = this.obtainQueryRunner();\n let transactionStartedByUs: boolean = false;\n\n try {\n\n // start transaction if it was enabled\n if (this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false) {\n await queryRunner.startTransaction();\n transactionStartedByUs = true;\n }\n\n // console.timeEnd(\".database stuff\");\n\n // call before insertion methods in listeners and subscribers\n if (this.expressionMap.callListeners === true && this.expressionMap.mainAlias!.hasMetadata) {\n const broadcastResult = new BroadcasterResult();\n valueSets.forEach(valueSet => {\n queryRunner.broadcaster.broadcastBeforeInsertEvent(broadcastResult, this.expressionMap.mainAlias!.metadata, valueSet);\n });\n if (broadcastResult.promises.length > 0) await Promise.all(broadcastResult.promises);\n }\n\n let declareSql: string | null = null;\n let selectOutputSql: string | null = null;\n\n // if update entity mode is enabled we may need extra columns for the returning statement\n // console.time(\".prepare returning statement\");\n const returningResultsEntityUpdator = new ReturningResultsEntityUpdator(queryRunner, this.expressionMap);\n if (this.expressionMap.updateEntity === true && this.expressionMap.mainAlias!.hasMetadata) {\n if (!(valueSets.length > 1 && this.connection.driver instanceof OracleDriver)) {\n this.expressionMap.extraReturningColumns = returningResultsEntityUpdator.getInsertionReturningColumns();\n }\n if (this.expressionMap.extraReturningColumns.length > 0 && this.connection.driver instanceof SqlServerDriver) {\n declareSql = this.connection.driver.buildTableVariableDeclaration(\"@OutputTable\", this.expressionMap.extraReturningColumns);\n selectOutputSql = `SELECT * FROM @OutputTable`;\n }\n }\n // console.timeEnd(\".prepare returning statement\");\n\n // execute query\n // console.time(\".getting query and parameters\");\n const [insertSql, parameters] = this.getQueryAndParameters();\n // console.timeEnd(\".getting query and parameters\");\n const insertResult = new InsertResult();\n // console.time(\".query execution by database\");\n const statements = [declareSql, insertSql, selectOutputSql];\n insertResult.raw = await queryRunner.query(\n statements.filter(sql => sql != null).join(\";\\n\\n\"),\n parameters,\n );\n // console.timeEnd(\".query execution by database\");\n\n // load returning results and set them to the entity if entity updation is enabled\n if (this.expressionMap.updateEntity === true && this.expressionMap.mainAlias!.hasMetadata) {\n // console.time(\".updating entity\");\n await returningResultsEntityUpdator.insert(insertResult, valueSets);\n // console.timeEnd(\".updating entity\");\n }\n\n // call after insertion methods in listeners and subscribers\n if (this.expressionMap.callListeners === true && this.expressionMap.mainAlias!.hasMetadata) {\n const broadcastResult = new BroadcasterResult();\n valueSets.forEach(valueSet => {\n queryRunner.broadcaster.broadcastAfterInsertEvent(broadcastResult, this.expressionMap.mainAlias!.metadata, valueSet);\n });\n if (broadcastResult.promises.length > 0) await Promise.all(broadcastResult.promises);\n }\n\n // close transaction if we started it\n // console.time(\".commit\");\n if (transactionStartedByUs) {\n await queryRunner.commitTransaction();\n }\n // console.timeEnd(\".commit\");\n\n return insertResult;\n\n } catch (error) {\n\n // rollback transaction if we started it\n if (transactionStartedByUs) {\n try {\n await queryRunner.rollbackTransaction();\n } catch (rollbackError) { }\n }\n throw error;\n\n } finally {\n\n // console.time(\".releasing connection\");\n if (queryRunner !== this.queryRunner) { // means we created our own query runner\n await queryRunner.release();\n }\n if (this.connection.driver instanceof SqljsDriver && !queryRunner.isTransactionActive) {\n await this.connection.driver.autoSave();\n }\n // console.timeEnd(\".releasing connection\");\n // console.timeEnd(\"QueryBuilder.execute\");\n }\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Specifies INTO which entity's table insertion will be executed.\n */\n into<T>(entityTarget: EntityTarget<T>, columns?: string[]): InsertQueryBuilder<T> {\n entityTarget = entityTarget instanceof EntitySchema ? entityTarget.options.name : entityTarget;\n const mainAlias = this.createFromAlias(entityTarget);\n this.expressionMap.setMainAlias(mainAlias);\n this.expressionMap.insertColumns = columns || [];\n return (this as any) as InsertQueryBuilder<T>;\n }\n\n /**\n * Values needs to be inserted into table.\n */\n values(values: QueryDeepPartialEntity<Entity>|QueryDeepPartialEntity<Entity>[]): this {\n this.expressionMap.valuesSet = values;\n return this;\n }\n\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n output(columns: string[]): this;\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n output(output: string): this;\n\n /**\n * Optional returning/output clause.\n */\n output(output: string|string[]): this;\n\n /**\n * Optional returning/output clause.\n */\n output(output: string|string[]): this {\n return this.returning(output);\n }\n\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n returning(columns: string[]): this;\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n returning(returning: string): this;\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string|string[]): this;\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string|string[]): this {\n\n // not all databases support returning/output cause\n if (!this.connection.driver.isReturningSqlSupported())\n throw new ReturningStatementNotSupportedError();\n\n this.expressionMap.returning = returning;\n return this;\n }\n\n /**\n * Indicates if entity must be updated after insertion operations.\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\n * Enabled by default.\n */\n updateEntity(enabled: boolean): this {\n this.expressionMap.updateEntity = enabled;\n return this;\n }\n\n /**\n * Adds additional ON CONFLICT statement supported in postgres and cockroach.\n */\n onConflict(statement: string): this {\n this.expressionMap.onConflict = statement;\n return this;\n }\n\n /**\n * Adds additional ignore statement supported in databases.\n */\n orIgnore(statement: string | boolean = true): this {\n this.expressionMap.onIgnore = statement;\n return this;\n }\n\n /**\n * Adds additional update statement supported in databases.\n */\n orUpdate(statement?: { columns?: string[], overwrite?: string[], conflict_target?: string | string[] }): this {\n this.expressionMap.onUpdate = {};\n if (statement && Array.isArray(statement.conflict_target))\n this.expressionMap.onUpdate.conflict = ` ( ${statement.conflict_target.map((columnName) => this.escape(columnName)).join(\", \")} ) `;\n if (statement && typeof statement.conflict_target === \"string\")\n this.expressionMap.onUpdate.conflict = ` ON CONSTRAINT ${this.escape(statement.conflict_target)} `;\n if (statement && Array.isArray(statement.columns))\n this.expressionMap.onUpdate.columns = statement.columns.map(column => `${this.escape(column)} = :${column}`).join(\", \");\n if (statement && Array.isArray(statement.overwrite)) {\n if (this.connection.driver instanceof MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver) {\n this.expressionMap.onUpdate.overwrite = statement.overwrite.map(column => `${column} = VALUES(${column})`).join(\", \");\n } else if (this.connection.driver instanceof PostgresDriver || this.connection.driver instanceof AbstractSqliteDriver || this.connection.driver instanceof CockroachDriver) {\n this.expressionMap.onUpdate.overwrite = statement.overwrite.map(column => `${this.escape(column)} = EXCLUDED.${this.escape(column)}`).join(\", \");\n }\n }\n return this;\n }\n\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates INSERT express used to perform insert query.\n */\n protected createInsertExpression() {\n const tableName = this.getTableName(this.getMainTableName());\n const valuesExpression = this.createValuesExpression(); // its important to get values before returning expression because oracle rely on native parameters and ordering of them is important\n const returningExpression = (this.connection.driver instanceof OracleDriver && this.getValueSets().length > 1) ? null : this.createReturningExpression(); // oracle doesnt support returning with multi-row insert\n const columnsExpression = this.createColumnNamesExpression();\n let query = \"INSERT \";\n\n if (this.connection.driver instanceof MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver) {\n query += `${this.expressionMap.onIgnore ? \" IGNORE \" : \"\"}`;\n }\n\n query += `INTO ${tableName}`;\n\n // add columns expression\n if (columnsExpression) {\n query += `(${columnsExpression})`;\n } else {\n if (!valuesExpression && (this.connection.driver instanceof MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver)) // special syntax for mysql DEFAULT VALUES insertion\n query += \"()\";\n }\n\n // add OUTPUT expression\n if (returningExpression && this.connection.driver instanceof SqlServerDriver) {\n query += ` OUTPUT ${returningExpression}`;\n }\n\n // add VALUES expression\n if (valuesExpression) {\n if (this.connection.driver instanceof OracleDriver && this.getValueSets().length > 1) {\n query += ` ${valuesExpression}`;\n } else {\n query += ` VALUES ${valuesExpression}`;\n }\n } else {\n if (this.connection.driver instanceof MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver) { // special syntax for mysql DEFAULT VALUES insertion\n query += \" VALUES ()\";\n } else {\n query += ` DEFAULT VALUES`;\n }\n }\n if (this.connection.driver instanceof PostgresDriver || this.connection.driver instanceof AbstractSqliteDriver || this.connection.driver instanceof CockroachDriver) {\n query += `${this.expressionMap.onIgnore ? \" ON CONFLICT DO NOTHING \" : \"\"}`;\n query += `${this.expressionMap.onConflict ? \" ON CONFLICT \" + this.expressionMap.onConflict : \"\"}`;\n if (this.expressionMap.onUpdate) {\n const { overwrite, columns, conflict } = this.expressionMap.onUpdate;\n query += `${columns ? \" ON CONFLICT \" + conflict + \" DO UPDATE SET \" + columns : \"\"}`;\n query += `${overwrite ? \" ON CONFLICT \" + conflict + \" DO UPDATE SET \" + overwrite : \"\"}`;\n }\n } else if (this.connection.driver instanceof MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver) {\n if (this.expressionMap.onUpdate) {\n const { overwrite, columns } = this.expressionMap.onUpdate;\n query += `${columns ? \" ON DUPLICATE KEY UPDATE \" + columns : \"\"}`;\n query += `${overwrite ? \" ON DUPLICATE KEY UPDATE \" + overwrite : \"\"}`;\n }\n }\n\n // add RETURNING expression\n if (returningExpression && (this.connection.driver instanceof PostgresDriver || this.connection.driver instanceof OracleDriver || this.connection.driver instanceof CockroachDriver)) {\n query += ` RETURNING ${returningExpression}`;\n }\n\n\n // Inserting a specific value for an auto-increment primary key in mssql requires enabling IDENTITY_INSERT\n // IDENTITY_INSERT can only be enabled for tables where there is an IDENTITY column and only if there is a value to be inserted (i.e. supplying DEFAULT is prohibited if IDENTITY_INSERT is enabled)\n if (this.connection.driver instanceof SqlServerDriver\n && this.expressionMap.mainAlias!.hasMetadata\n && this.expressionMap.mainAlias!.metadata.columns\n .filter((column) => this.expressionMap.insertColumns.length > 0 ? this.expressionMap.insertColumns.indexOf(column.propertyPath) !== -1 : column.isInsert)\n .some((column) => this.isOverridingAutoIncrementBehavior(column))\n ) {\n query = `SET IDENTITY_INSERT ${tableName} ON; ${query}; SET IDENTITY_INSERT ${tableName} OFF`;\n }\n\n return query;\n }\n\n /**\n * Gets list of columns where values must be inserted to.\n */\n protected getInsertedColumns(): ColumnMetadata[] {\n if (!this.expressionMap.mainAlias!.hasMetadata)\n return [];\n\n return this.expressionMap.mainAlias!.metadata.columns.filter(column => {\n\n // if user specified list of columns he wants to insert to, then we filter only them\n if (this.expressionMap.insertColumns.length)\n return this.expressionMap.insertColumns.indexOf(column.propertyPath) !== -1;\n\n // skip columns the user doesn't want included by default\n if (!column.isInsert) { return false; }\n\n // if user did not specified such list then return all columns except auto-increment one\n // for Oracle we return auto-increment column as well because Oracle does not support DEFAULT VALUES expression\n if (column.isGenerated && column.generationStrategy === \"increment\"\n && !(this.connection.driver instanceof OracleDriver)\n && !(this.connection.driver instanceof AbstractSqliteDriver)\n && !(this.connection.driver instanceof MysqlDriver)\n && !(this.connection.driver instanceof AuroraDataApiDriver)\n && !(this.connection.driver instanceof SqlServerDriver && this.isOverridingAutoIncrementBehavior(column)))\n return false;\n\n return true;\n });\n }\n\n /**\n * Creates a columns string where values must be inserted to for INSERT INTO expression.\n */\n protected createColumnNamesExpression(): string {\n const columns = this.getInsertedColumns();\n if (columns.length > 0)\n return columns.map(column => this.escape(column.databaseName)).join(\", \");\n\n // in the case if there are no insert columns specified and table without metadata used\n // we get columns from the inserted value map, in the case if only one inserted map is specified\n if (!this.expressionMap.mainAlias!.hasMetadata && !this.expressionMap.insertColumns.length) {\n const valueSets = this.getValueSets();\n if (valueSets.length === 1)\n return Object.keys(valueSets[0]).map(columnName => this.escape(columnName)).join(\", \");\n }\n\n // get a table name and all column database names\n return this.expressionMap.insertColumns.map(columnName => this.escape(columnName)).join(\", \");\n }\n\n /**\n * Creates list of values needs to be inserted in the VALUES expression.\n */\n protected createValuesExpression(): string {\n const valueSets = this.getValueSets();\n const columns = this.getInsertedColumns();\n\n // if column metadatas are given then apply all necessary operations with values\n if (columns.length > 0) {\n let expression = \"\";\n let parametersCount = Object.keys(this.expressionMap.nativeParameters).length;\n valueSets.forEach((valueSet, valueSetIndex) => {\n columns.forEach((column, columnIndex) => {\n if (columnIndex === 0) {\n if (this.connection.driver instanceof OracleDriver && valueSets.length > 1) {\n expression += \" SELECT \";\n } else {\n expression += \"(\";\n }\n }\n const paramName = \"i\" + valueSetIndex + \"_\" + column.databaseName;\n\n // extract real value from the entity\n let value = column.getEntityValue(valueSet);\n\n // if column is relational and value is an object then get real referenced column value from this object\n // for example column value is { question: { id: 1 } }, value will be equal to { id: 1 }\n // and we extract \"1\" from this object\n /*if (column.referencedColumn && value instanceof Object && !(value instanceof Function)) { // todo: check if we still need it since getEntityValue already has similar code\n value = column.referencedColumn.getEntityValue(value);\n }*/\n\n\n if (!(value instanceof Function)) {\n // make sure our value is normalized by a driver\n value = this.connection.driver.preparePersistentValue(value, column);\n }\n\n // newly inserted entities always have a version equal to 1 (first version)\n // also, user-specified version must be empty\n if (column.isVersion && value === undefined) {\n expression += \"1\";\n\n // } else if (column.isNestedSetLeft) {\n // const tableName = this.connection.driver.escape(column.entityMetadata.tablePath);\n // const rightColumnName = this.connection.driver.escape(column.entityMetadata.nestedSetRightColumn!.databaseName);\n // const subQuery = `(SELECT c.max + 1 FROM (SELECT MAX(${rightColumnName}) as max from ${tableName}) c)`;\n // expression += subQuery;\n //\n // } else if (column.isNestedSetRight) {\n // const tableName = this.connection.driver.escape(column.entityMetadata.tablePath);\n // const rightColumnName = this.connection.driver.escape(column.entityMetadata.nestedSetRightColumn!.databaseName);\n // const subQuery = `(SELECT c.max + 2 FROM (SELECT MAX(${rightColumnName}) as max from ${tableName}) c)`;\n // expression += subQuery;\n\n } else if (column.isDiscriminator) {\n this.expressionMap.nativeParameters[\"discriminator_value_\" + parametersCount] = this.expressionMap.mainAlias!.metadata.discriminatorValue;\n expression += this.connection.driver.createParameter(\"discriminator_value_\" + parametersCount, parametersCount);\n parametersCount++;\n // return \"1\";\n\n // for create and update dates we insert current date\n // no, we don't do it because this constant is already in \"default\" value of the column\n // with extended timestamp functionality, like CURRENT_TIMESTAMP(6) for example\n // } else if (column.isCreateDate || column.isUpdateDate) {\n // return \"CURRENT_TIMESTAMP\";\n\n // if column is generated uuid and database does not support its generation and custom generated value was not provided by a user - we generate a new uuid value for insertion\n } else if (column.isGenerated && column.generationStrategy === \"uuid\" && !this.connection.driver.isUUIDGenerationSupported() && value === undefined) {\n\n const paramName = \"uuid_\" + column.databaseName + valueSetIndex;\n value = RandomGenerator.uuid4();\n this.expressionMap.nativeParameters[paramName] = value;\n expression += this.connection.driver.createParameter(paramName, parametersCount);\n parametersCount++;\n\n // if value for this column was not provided then insert default value\n } else if (value === undefined) {\n if ((this.connection.driver instanceof OracleDriver && valueSets.length > 1) || this.connection.driver instanceof AbstractSqliteDriver || this.connection.driver instanceof SapDriver) { // unfortunately sqlite does not support DEFAULT expression in INSERT queries\n if (column.default !== undefined) { // try to use default defined in the column\n expression += this.connection.driver.normalizeDefault(column);\n } else {\n expression += \"NULL\"; // otherwise simply use NULL and pray if column is nullable\n }\n\n } else {\n expression += \"DEFAULT\";\n }\n\n // support for SQL expressions in queries\n } else if (value instanceof Function) {\n expression += value();\n\n // just any other regular value\n } else {\n if (this.connection.driver instanceof SqlServerDriver)\n value = this.connection.driver.parametrizeValue(column, value);\n\n // we need to store array values in a special class to make sure parameter replacement will work correctly\n // if (value instanceof Array)\n // value = new ArrayParameter(value);\n\n this.expressionMap.nativeParameters[paramName] = value;\n if ((this.connection.driver instanceof MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver) && this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {\n const useLegacy = this.connection.driver.options.legacySpatialSupport;\n const geomFromText = useLegacy ? \"GeomFromText\" : \"ST_GeomFromText\";\n if (column.srid != null) {\n expression += `${geomFromText}(${this.connection.driver.createParameter(paramName, parametersCount)}, ${column.srid})`;\n } else {\n expression += `${geomFromText}(${this.connection.driver.createParameter(paramName, parametersCount)})`;\n }\n } else if (this.connection.driver instanceof PostgresDriver && this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {\n if (column.srid != null) {\n expression += `ST_SetSRID(ST_GeomFromGeoJSON(${this.connection.driver.createParameter(paramName, parametersCount)}), ${column.srid})::${column.type}`;\n } else {\n expression += `ST_GeomFromGeoJSON(${this.connection.driver.createParameter(paramName, parametersCount)})::${column.type}`;\n }\n } else if (this.connection.driver instanceof SqlServerDriver && this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {\n expression += column.type + \"::STGeomFromText(\" + this.connection.driver.createParameter(paramName, parametersCount) + \", \" + (column.srid || \"0\") + \")\";\n } else {\n expression += this.connection.driver.createParameter(paramName, parametersCount);\n }\n parametersCount++;\n }\n\n if (columnIndex === columns.length - 1) {\n if (valueSetIndex === valueSets.length - 1) {\n if (this.connection.driver instanceof OracleDriver && valueSets.length > 1) {\n expression += \" FROM DUAL \";\n } else {\n expression += \")\";\n }\n } else {\n if (this.connection.driver instanceof OracleDriver && valueSets.length > 1) {\n expression += \" FROM DUAL UNION ALL \";\n } else {\n expression += \"), \";\n }\n }\n } else {\n expression += \", \";\n }\n });\n });\n if (expression === \"()\")\n return \"\";\n\n return expression;\n } else { // for tables without metadata\n // get values needs to be inserted\n let expression = \"\";\n let parametersCount = Object.keys(this.expressionMap.nativeParameters).length;\n\n valueSets.forEach((valueSet, insertionIndex) => {\n const columns = Object.keys(valueSet);\n columns.forEach((columnName, columnIndex) => {\n if (columnIndex === 0) {\n expression += \"(\";\n }\n const paramName = \"i\" + insertionIndex + \"_\" + columnName;\n const value = valueSet[columnName];\n\n // support for SQL expressions in queries\n if (value instanceof Function) {\n expression += value();\n\n // if value for this column was not provided then insert default value\n } else if (value === undefined) {\n if (this.connection.driver instanceof AbstractSqliteDriver || this.connection.driver instanceof SapDriver) {\n expression += \"NULL\";\n\n } else {\n expression += \"DEFAULT\";\n }\n\n // just any other regular value\n } else {\n this.expressionMap.nativeParameters[paramName] = value;\n expression += this.connection.driver.createParameter(paramName, parametersCount);\n parametersCount++;\n }\n\n if (columnIndex === Object.keys(valueSet).length - 1) {\n if (insertionIndex === valueSets.length - 1) {\n expression += \")\";\n } else {\n expression += \"), \";\n }\n }\n else {\n expression += \", \";\n }\n });\n });\n if (expression === \"()\")\n return \"\";\n return expression;\n }\n }\n\n /**\n * Gets array of values need to be inserted into the target table.\n */\n protected getValueSets(): ObjectLiteral[] {\n if (Array.isArray(this.expressionMap.valuesSet))\n return this.expressionMap.valuesSet;\n\n if (this.expressionMap.valuesSet instanceof Object)\n return [this.expressionMap.valuesSet];\n\n throw new InsertValuesMissingError();\n }\n\n /**\n * Checks if column is an auto-generated primary key, but the current insertion specifies a value for it.\n * \n * @param column\n */\n protected isOverridingAutoIncrementBehavior(column: ColumnMetadata): boolean {\n return column.isPrimary \n && column.isGenerated \n && column.generationStrategy === \"increment\"\n && this.getValueSets().some((valueSet) => \n column.getEntityValue(valueSet) !== undefined \n && column.getEntityValue(valueSet) !== null\n );\n }\n\n}\n"],"sourceRoot":".."}
|
|
@@ -34,24 +34,24 @@ export declare class JoinAttribute {
|
|
|
34
34
|
*/
|
|
35
35
|
isMappingMany?: boolean;
|
|
36
36
|
constructor(connection: Connection, queryExpressionMap: QueryExpressionMap, joinAttribute?: JoinAttribute);
|
|
37
|
-
|
|
37
|
+
readonly isMany: boolean;
|
|
38
38
|
isSelectedCache: boolean;
|
|
39
39
|
isSelectedEvaluated: boolean;
|
|
40
40
|
/**
|
|
41
41
|
* Indicates if this join is selected.
|
|
42
42
|
*/
|
|
43
|
-
|
|
43
|
+
readonly isSelected: boolean;
|
|
44
44
|
/**
|
|
45
45
|
* Name of the table which we should join.
|
|
46
46
|
*/
|
|
47
|
-
|
|
47
|
+
readonly tablePath: string;
|
|
48
48
|
/**
|
|
49
49
|
* Alias of the parent of this join.
|
|
50
50
|
* For example, if we join ("post.category", "categoryAlias") then "post" is a parent alias.
|
|
51
51
|
* This value is extracted from entityOrProperty value.
|
|
52
52
|
* This is available when join was made using "post.category" syntax.
|
|
53
53
|
*/
|
|
54
|
-
|
|
54
|
+
readonly parentAlias: string | undefined;
|
|
55
55
|
/**
|
|
56
56
|
* Relation property name of the parent.
|
|
57
57
|
* This is used to understand what is joined.
|
|
@@ -59,7 +59,7 @@ export declare class JoinAttribute {
|
|
|
59
59
|
* This value is extracted from entityOrProperty value.
|
|
60
60
|
* This is available when join was made using "post.category" syntax.
|
|
61
61
|
*/
|
|
62
|
-
|
|
62
|
+
readonly relationPropertyPath: string | undefined;
|
|
63
63
|
relationCache: RelationMetadata | undefined;
|
|
64
64
|
relationEvaluated: boolean;
|
|
65
65
|
/**
|
|
@@ -68,16 +68,16 @@ export declare class JoinAttribute {
|
|
|
68
68
|
* This is available when join was made using "post.category" syntax.
|
|
69
69
|
* Relation can be undefined if entityOrProperty is regular entity or custom table.
|
|
70
70
|
*/
|
|
71
|
-
|
|
71
|
+
readonly relation: RelationMetadata | undefined;
|
|
72
72
|
/**
|
|
73
73
|
* Metadata of the joined entity.
|
|
74
74
|
* If table without entity was joined, then it will return undefined.
|
|
75
75
|
*/
|
|
76
|
-
|
|
76
|
+
readonly metadata: EntityMetadata | undefined;
|
|
77
77
|
/**
|
|
78
78
|
* Generates alias of junction table, whose ids we get.
|
|
79
79
|
*/
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
readonly junctionAlias: string;
|
|
81
|
+
readonly mapToPropertyParentAlias: string | undefined;
|
|
82
|
+
readonly mapToPropertyPropertyName: string | undefined;
|
|
83
83
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.JoinAttribute = void 0;
|
|
4
3
|
var tslib_1 = require("tslib");
|
|
5
4
|
var QueryBuilderUtils_1 = require("./QueryBuilderUtils");
|
|
6
5
|
var ObjectUtils_1 = require("../util/ObjectUtils");
|
|
@@ -29,7 +28,7 @@ var JoinAttribute = /** @class */ (function () {
|
|
|
29
28
|
return this.relation.isManyToMany || this.relation.isOneToMany;
|
|
30
29
|
return false;
|
|
31
30
|
},
|
|
32
|
-
enumerable:
|
|
31
|
+
enumerable: true,
|
|
33
32
|
configurable: true
|
|
34
33
|
});
|
|
35
34
|
Object.defineProperty(JoinAttribute.prototype, "isSelected", {
|
|
@@ -69,7 +68,7 @@ var JoinAttribute = /** @class */ (function () {
|
|
|
69
68
|
}
|
|
70
69
|
return this.isSelectedCache;
|
|
71
70
|
},
|
|
72
|
-
enumerable:
|
|
71
|
+
enumerable: true,
|
|
73
72
|
configurable: true
|
|
74
73
|
});
|
|
75
74
|
Object.defineProperty(JoinAttribute.prototype, "tablePath", {
|
|
@@ -79,7 +78,7 @@ var JoinAttribute = /** @class */ (function () {
|
|
|
79
78
|
get: function () {
|
|
80
79
|
return this.metadata ? this.metadata.tablePath : this.entityOrProperty;
|
|
81
80
|
},
|
|
82
|
-
enumerable:
|
|
81
|
+
enumerable: true,
|
|
83
82
|
configurable: true
|
|
84
83
|
});
|
|
85
84
|
Object.defineProperty(JoinAttribute.prototype, "parentAlias", {
|
|
@@ -94,7 +93,7 @@ var JoinAttribute = /** @class */ (function () {
|
|
|
94
93
|
return undefined;
|
|
95
94
|
return this.entityOrProperty.substr(0, this.entityOrProperty.indexOf("."));
|
|
96
95
|
},
|
|
97
|
-
enumerable:
|
|
96
|
+
enumerable: true,
|
|
98
97
|
configurable: true
|
|
99
98
|
});
|
|
100
99
|
Object.defineProperty(JoinAttribute.prototype, "relationPropertyPath", {
|
|
@@ -110,7 +109,7 @@ var JoinAttribute = /** @class */ (function () {
|
|
|
110
109
|
return undefined;
|
|
111
110
|
return this.entityOrProperty.substr(this.entityOrProperty.indexOf(".") + 1);
|
|
112
111
|
},
|
|
113
|
-
enumerable:
|
|
112
|
+
enumerable: true,
|
|
114
113
|
configurable: true
|
|
115
114
|
});
|
|
116
115
|
Object.defineProperty(JoinAttribute.prototype, "relation", {
|
|
@@ -144,7 +143,7 @@ var JoinAttribute = /** @class */ (function () {
|
|
|
144
143
|
}
|
|
145
144
|
return this.relationCache;
|
|
146
145
|
},
|
|
147
|
-
enumerable:
|
|
146
|
+
enumerable: true,
|
|
148
147
|
configurable: true
|
|
149
148
|
});
|
|
150
149
|
Object.defineProperty(JoinAttribute.prototype, "metadata", {
|
|
@@ -172,7 +171,7 @@ var JoinAttribute = /** @class */ (function () {
|
|
|
172
171
|
return this.connection.entityMetadatas.find(metadata => metadata.tableName === this.entityOrProperty);
|
|
173
172
|
}*/
|
|
174
173
|
},
|
|
175
|
-
enumerable:
|
|
174
|
+
enumerable: true,
|
|
176
175
|
configurable: true
|
|
177
176
|
});
|
|
178
177
|
Object.defineProperty(JoinAttribute.prototype, "junctionAlias", {
|
|
@@ -184,7 +183,7 @@ var JoinAttribute = /** @class */ (function () {
|
|
|
184
183
|
throw new Error("Cannot get junction table for join without relation.");
|
|
185
184
|
return this.relation.isOwning ? this.parentAlias + "_" + this.alias.name : this.alias.name + "_" + this.parentAlias;
|
|
186
185
|
},
|
|
187
|
-
enumerable:
|
|
186
|
+
enumerable: true,
|
|
188
187
|
configurable: true
|
|
189
188
|
});
|
|
190
189
|
Object.defineProperty(JoinAttribute.prototype, "mapToPropertyParentAlias", {
|
|
@@ -193,7 +192,7 @@ var JoinAttribute = /** @class */ (function () {
|
|
|
193
192
|
return undefined;
|
|
194
193
|
return this.mapToProperty.split(".")[0];
|
|
195
194
|
},
|
|
196
|
-
enumerable:
|
|
195
|
+
enumerable: true,
|
|
197
196
|
configurable: true
|
|
198
197
|
});
|
|
199
198
|
Object.defineProperty(JoinAttribute.prototype, "mapToPropertyPropertyName", {
|
|
@@ -202,7 +201,7 @@ var JoinAttribute = /** @class */ (function () {
|
|
|
202
201
|
return undefined;
|
|
203
202
|
return this.mapToProperty.split(".")[1];
|
|
204
203
|
},
|
|
205
|
-
enumerable:
|
|
204
|
+
enumerable: true,
|
|
206
205
|
configurable: true
|
|
207
206
|
});
|
|
208
207
|
return JoinAttribute;
|