typeorm 0.2.41-dev.c895680 → 0.2.42-dev.a0f09de

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.
Files changed (139) hide show
  1. package/browser/cache/DbQueryResultCache.js +12 -3
  2. package/browser/cache/DbQueryResultCache.js.map +1 -1
  3. package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +2 -1
  4. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  5. package/browser/decorator/options/ColumnOptions.d.ts +4 -0
  6. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  7. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +22 -0
  8. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +3 -0
  9. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
  10. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +33 -39
  11. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  12. package/browser/driver/cockroachdb/CockroachQueryRunner.js +24 -30
  13. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  14. package/browser/driver/mongodb/MongoQueryRunner.d.ts +2 -0
  15. package/browser/driver/mongodb/MongoQueryRunner.js +3 -0
  16. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  17. package/browser/driver/mysql/MysqlQueryRunner.js +37 -39
  18. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  19. package/browser/driver/oracle/OracleDriver.js +1 -1
  20. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  21. package/browser/driver/oracle/OracleQueryRunner.js +13 -24
  22. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  23. package/browser/driver/postgres/PostgresDriver.d.ts +1 -0
  24. package/browser/driver/postgres/PostgresDriver.js +16 -7
  25. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  26. package/browser/driver/postgres/PostgresQueryRunner.d.ts +5 -0
  27. package/browser/driver/postgres/PostgresQueryRunner.js +316 -135
  28. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  29. package/browser/driver/sap/SapQueryRunner.js +36 -42
  30. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  31. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +8 -14
  32. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  33. package/browser/driver/sqlserver/SqlServerQueryRunner.js +32 -34
  34. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  35. package/browser/driver/types/MetadataTableType.d.ts +5 -0
  36. package/browser/driver/types/MetadataTableType.js +8 -0
  37. package/browser/driver/types/MetadataTableType.js.map +1 -0
  38. package/browser/index.d.ts +8 -0
  39. package/browser/index.js +8 -0
  40. package/browser/index.js.map +1 -1
  41. package/browser/metadata/ColumnMetadata.d.ts +4 -0
  42. package/browser/metadata/ColumnMetadata.js +2 -0
  43. package/browser/metadata/ColumnMetadata.js.map +1 -1
  44. package/browser/migration/MigrationExecutor.js +55 -48
  45. package/browser/migration/MigrationExecutor.js.map +1 -1
  46. package/browser/persistence/SubjectExecutor.js +2 -2
  47. package/browser/persistence/SubjectExecutor.js.map +1 -1
  48. package/browser/query-builder/ReturningResultsEntityUpdator.d.ts +4 -0
  49. package/browser/query-builder/ReturningResultsEntityUpdator.js +11 -2
  50. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  51. package/browser/query-builder/SelectQueryBuilder.js +4 -4
  52. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  53. package/browser/query-builder/SoftDeleteQueryBuilder.js +1 -1
  54. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  55. package/browser/query-runner/BaseQueryRunner.d.ts +23 -0
  56. package/browser/query-runner/BaseQueryRunner.js +37 -0
  57. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  58. package/browser/query-runner/QueryRunner.d.ts +5 -0
  59. package/browser/query-runner/QueryRunner.js.map +1 -1
  60. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +5 -1
  61. package/browser/schema-builder/RdbmsSchemaBuilder.js +58 -49
  62. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  63. package/browser/schema-builder/options/TableColumnOptions.d.ts +4 -0
  64. package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
  65. package/browser/schema-builder/table/TableColumn.d.ts +4 -0
  66. package/browser/schema-builder/table/TableColumn.js +2 -0
  67. package/browser/schema-builder/table/TableColumn.js.map +1 -1
  68. package/browser/schema-builder/util/TableUtils.js +1 -0
  69. package/browser/schema-builder/util/TableUtils.js.map +1 -1
  70. package/cache/DbQueryResultCache.js +12 -3
  71. package/cache/DbQueryResultCache.js.map +1 -1
  72. package/decorator/columns/PrimaryGeneratedColumn.d.ts +2 -1
  73. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  74. package/decorator/options/ColumnOptions.d.ts +4 -0
  75. package/decorator/options/ColumnOptions.js.map +1 -1
  76. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +22 -0
  77. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +4 -0
  78. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
  79. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +33 -39
  80. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  81. package/driver/cockroachdb/CockroachQueryRunner.js +24 -30
  82. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  83. package/driver/mongodb/MongoQueryRunner.d.ts +2 -0
  84. package/driver/mongodb/MongoQueryRunner.js +3 -0
  85. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  86. package/driver/mysql/MysqlQueryRunner.js +37 -39
  87. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  88. package/driver/oracle/OracleDriver.js +1 -1
  89. package/driver/oracle/OracleDriver.js.map +1 -1
  90. package/driver/oracle/OracleQueryRunner.js +13 -24
  91. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  92. package/driver/postgres/PostgresDriver.d.ts +1 -0
  93. package/driver/postgres/PostgresDriver.js +16 -7
  94. package/driver/postgres/PostgresDriver.js.map +1 -1
  95. package/driver/postgres/PostgresQueryRunner.d.ts +5 -0
  96. package/driver/postgres/PostgresQueryRunner.js +316 -135
  97. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  98. package/driver/sap/SapQueryRunner.js +36 -42
  99. package/driver/sap/SapQueryRunner.js.map +1 -1
  100. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +8 -14
  101. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  102. package/driver/sqlserver/SqlServerQueryRunner.js +32 -34
  103. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  104. package/driver/types/MetadataTableType.d.ts +5 -0
  105. package/driver/types/MetadataTableType.js +11 -0
  106. package/driver/types/MetadataTableType.js.map +1 -0
  107. package/index.d.ts +8 -0
  108. package/index.js +8 -0
  109. package/index.js.map +1 -1
  110. package/metadata/ColumnMetadata.d.ts +4 -0
  111. package/metadata/ColumnMetadata.js +2 -0
  112. package/metadata/ColumnMetadata.js.map +1 -1
  113. package/migration/MigrationExecutor.js +55 -48
  114. package/migration/MigrationExecutor.js.map +1 -1
  115. package/package.json +1 -1
  116. package/persistence/SubjectExecutor.js +2 -2
  117. package/persistence/SubjectExecutor.js.map +1 -1
  118. package/query-builder/ReturningResultsEntityUpdator.d.ts +4 -0
  119. package/query-builder/ReturningResultsEntityUpdator.js +11 -2
  120. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  121. package/query-builder/SelectQueryBuilder.js +4 -4
  122. package/query-builder/SelectQueryBuilder.js.map +1 -1
  123. package/query-builder/SoftDeleteQueryBuilder.js +1 -1
  124. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  125. package/query-runner/BaseQueryRunner.d.ts +23 -0
  126. package/query-runner/BaseQueryRunner.js +37 -0
  127. package/query-runner/BaseQueryRunner.js.map +1 -1
  128. package/query-runner/QueryRunner.d.ts +5 -0
  129. package/query-runner/QueryRunner.js.map +1 -1
  130. package/schema-builder/RdbmsSchemaBuilder.d.ts +5 -1
  131. package/schema-builder/RdbmsSchemaBuilder.js +58 -49
  132. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  133. package/schema-builder/options/TableColumnOptions.d.ts +4 -0
  134. package/schema-builder/options/TableColumnOptions.js.map +1 -1
  135. package/schema-builder/table/TableColumn.d.ts +4 -0
  136. package/schema-builder/table/TableColumn.js +2 -0
  137. package/schema-builder/table/TableColumn.js.map +1 -1
  138. package/schema-builder/util/TableUtils.js +1 -0
  139. package/schema-builder/util/TableUtils.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/query-builder/ReturningResultsEntityUpdator.ts"],"names":[],"mappings":"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","file":"ReturningResultsEntityUpdator.js","sourcesContent":["import {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {QueryRunner} from \"../query-runner/QueryRunner\";\nimport {QueryExpressionMap} from \"./QueryExpressionMap\";\nimport {ColumnMetadata} from \"../metadata/ColumnMetadata\";\nimport {UpdateResult} from \"./result/UpdateResult\";\nimport {InsertResult} from \"./result/InsertResult\";\nimport {OracleDriver} from \"../driver/oracle/OracleDriver\";\nimport { TypeORMError } from \"../error\";\n\n/**\n * Updates entity with returning results in the entity insert and update operations.\n */\nexport class ReturningResultsEntityUpdator {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected queryRunner: QueryRunner,\n protected expressionMap: QueryExpressionMap) {\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Updates entities with a special columns after updation query execution.\n */\n async update(updateResult: UpdateResult, entities: ObjectLiteral[]): Promise<void> {\n const metadata = this.expressionMap.mainAlias!.metadata;\n\n await Promise.all(entities.map(async (entity, entityIndex) => {\n\n // if database supports returning/output statement then we already should have updating values in the raw data returned by insert query\n if (this.queryRunner.connection.driver.isReturningSqlSupported()) {\n if (this.queryRunner.connection.driver instanceof OracleDriver && Array.isArray(updateResult.raw) && this.expressionMap.extraReturningColumns.length > 0) {\n updateResult.raw = updateResult.raw.reduce((newRaw, rawItem, rawItemIndex) => {\n newRaw[this.expressionMap.extraReturningColumns[rawItemIndex].databaseName] = rawItem[0];\n return newRaw;\n }, {} as ObjectLiteral);\n }\n const result = Array.isArray(updateResult.raw) ? updateResult.raw[entityIndex] : updateResult.raw;\n const returningColumns = this.queryRunner.connection.driver.createGeneratedMap(metadata, result);\n if (returningColumns) {\n this.queryRunner.manager.merge(metadata.target as any, entity, returningColumns);\n updateResult.generatedMaps.push(returningColumns);\n }\n\n } else {\n\n // for driver which do not support returning/output statement we need to perform separate query and load what we need\n const updationColumns = this.getUpdationReturningColumns();\n if (updationColumns.length > 0) {\n\n // get entity id by which we will get needed data\n const entityId = this.expressionMap.mainAlias!.metadata.getEntityIdMap(entity);\n if (!entityId)\n throw new TypeORMError(`Cannot update entity because entity id is not set in the entity.`);\n\n // execute query to get needed data\n const loadedReturningColumns = await this.queryRunner.manager\n .createQueryBuilder()\n .select(metadata.primaryColumns.map(column => metadata.targetName + \".\" + column.propertyPath))\n .addSelect(this.getUpdationReturningColumns().map(column => metadata.targetName + \".\" + column.propertyPath))\n .from(metadata.target, metadata.targetName)\n .where(entityId)\n .setOption(\"create-pojo\") // use POJO because created object can contain default values, e.g. property = null and those properties maight be overridden by merge process\n .getOne() as any;\n\n if (loadedReturningColumns) {\n this.queryRunner.manager.merge(metadata.target as any, entity, loadedReturningColumns);\n updateResult.generatedMaps.push(loadedReturningColumns);\n }\n }\n }\n }));\n }\n\n /**\n * Updates entities with a special columns after insertion query execution.\n */\n async insert(insertResult: InsertResult, entities: ObjectLiteral[]): Promise<void> {\n const metadata = this.expressionMap.mainAlias!.metadata;\n const insertionColumns = this.getInsertionReturningColumns();\n\n const generatedMaps = entities.map((entity, entityIndex) => {\n if (this.queryRunner.connection.driver instanceof OracleDriver && Array.isArray(insertResult.raw) && this.expressionMap.extraReturningColumns.length > 0) {\n insertResult.raw = insertResult.raw.reduce((newRaw, rawItem, rawItemIndex) => {\n newRaw[this.expressionMap.extraReturningColumns[rawItemIndex].databaseName] = rawItem[0];\n return newRaw;\n }, {} as ObjectLiteral);\n }\n // get all values generated by a database for us\n const result = Array.isArray(insertResult.raw) ? insertResult.raw[entityIndex] : insertResult.raw;\n\n const generatedMap = this.queryRunner.connection.driver.createGeneratedMap(metadata, result, entityIndex, entities.length) || {};\n\n if (entityIndex in this.expressionMap.locallyGenerated) {\n this.queryRunner.manager.merge(\n metadata.target as any,\n generatedMap,\n this.expressionMap.locallyGenerated[entityIndex]\n );\n }\n\n this.queryRunner.manager.merge(\n metadata.target as any,\n entity,\n generatedMap\n );\n\n return generatedMap;\n });\n\n // for postgres and mssql we use returning/output statement to get values of inserted default and generated values\n // for other drivers we have to re-select this data from the database\n if (this.queryRunner.connection.driver.isReturningSqlSupported() === false && insertionColumns.length > 0) {\n const entityIds = entities.map((entity) => {\n const entityId = metadata.getEntityIdMap(entity)!;\n\n // We have to check for an empty `entityId` - if we don't, the query against the database\n // effectively drops the `where` clause entirely and the first record will be returned -\n // not what we want at all.\n if (!entityId)\n throw new TypeORMError(`Cannot update entity because entity id is not set in the entity.`);\n\n return entityId;\n });\n\n // to select just inserted entities we need a criteria to select by.\n // for newly inserted entities in drivers which do not support returning statement\n // row identifier can only be an increment column\n // (since its the only thing that can be generated by those databases)\n // or (and) other primary key which is defined by a user and inserted value has it\n\n const returningResult: any = await this.queryRunner.manager\n .createQueryBuilder()\n .select(metadata.primaryColumns.map(column => metadata.targetName + \".\" + column.propertyPath))\n .addSelect(insertionColumns.map(column => metadata.targetName + \".\" + column.propertyPath))\n .from(metadata.target, metadata.targetName)\n .where(entityIds)\n .setOption(\"create-pojo\") // use POJO because created object can contain default values, e.g. property = null and those properties maight be overridden by merge process\n .getMany();\n\n entities.forEach((entity, entityIndex) => {\n this.queryRunner.manager.merge(\n metadata.target as any,\n generatedMaps[entityIndex],\n returningResult[entityIndex]\n );\n\n this.queryRunner.manager.merge(\n metadata.target as any,\n entity,\n returningResult[entityIndex]\n );\n });\n }\n\n entities.forEach((entity, entityIndex) => {\n const entityId = metadata.getEntityIdMap(entity)!;\n insertResult.identifiers.push(entityId);\n insertResult.generatedMaps.push(generatedMaps[entityIndex]);\n });\n }\n\n /**\n * Columns we need to be returned from the database when we insert entity.\n */\n getInsertionReturningColumns(): ColumnMetadata[] {\n\n // for databases which support returning statement we need to return extra columns like id\n // for other databases we don't need to return id column since its returned by a driver already\n const needToCheckGenerated = this.queryRunner.connection.driver.isReturningSqlSupported();\n\n // filter out the columns of which we need database inserted values to update our entity\n return this.expressionMap.mainAlias!.metadata.columns.filter(column => {\n return column.default !== undefined ||\n (needToCheckGenerated && column.isGenerated) ||\n column.isCreateDate ||\n column.isUpdateDate ||\n column.isDeleteDate ||\n column.isVersion;\n });\n }\n\n /**\n * Columns we need to be returned from the database when we update entity.\n */\n getUpdationReturningColumns(): ColumnMetadata[] {\n return this.expressionMap.mainAlias!.metadata.columns.filter(column => {\n return column.isUpdateDate || column.isVersion;\n });\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/query-builder/ReturningResultsEntityUpdator.ts"],"names":[],"mappings":"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","file":"ReturningResultsEntityUpdator.js","sourcesContent":["import {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {QueryRunner} from \"../query-runner/QueryRunner\";\nimport {QueryExpressionMap} from \"./QueryExpressionMap\";\nimport {ColumnMetadata} from \"../metadata/ColumnMetadata\";\nimport {UpdateResult} from \"./result/UpdateResult\";\nimport {InsertResult} from \"./result/InsertResult\";\nimport {OracleDriver} from \"../driver/oracle/OracleDriver\";\nimport { TypeORMError } from \"../error\";\n\n/**\n * Updates entity with returning results in the entity insert and update operations.\n */\nexport class ReturningResultsEntityUpdator {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected queryRunner: QueryRunner,\n protected expressionMap: QueryExpressionMap) {\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Updates entities with a special columns after updation query execution.\n */\n async update(updateResult: UpdateResult, entities: ObjectLiteral[]): Promise<void> {\n const metadata = this.expressionMap.mainAlias!.metadata;\n\n await Promise.all(entities.map(async (entity, entityIndex) => {\n\n // if database supports returning/output statement then we already should have updating values in the raw data returned by insert query\n if (this.queryRunner.connection.driver.isReturningSqlSupported()) {\n if (this.queryRunner.connection.driver instanceof OracleDriver && Array.isArray(updateResult.raw) && this.expressionMap.extraReturningColumns.length > 0) {\n updateResult.raw = updateResult.raw.reduce((newRaw, rawItem, rawItemIndex) => {\n newRaw[this.expressionMap.extraReturningColumns[rawItemIndex].databaseName] = rawItem[0];\n return newRaw;\n }, {} as ObjectLiteral);\n }\n const result = Array.isArray(updateResult.raw) ? updateResult.raw[entityIndex] : updateResult.raw;\n const returningColumns = this.queryRunner.connection.driver.createGeneratedMap(metadata, result);\n if (returningColumns) {\n this.queryRunner.manager.merge(metadata.target as any, entity, returningColumns);\n updateResult.generatedMaps.push(returningColumns);\n }\n\n } else {\n\n // for driver which do not support returning/output statement we need to perform separate query and load what we need\n const updationColumns = this.expressionMap.extraReturningColumns;\n if (updationColumns.length > 0) {\n\n // get entity id by which we will get needed data\n const entityId = this.expressionMap.mainAlias!.metadata.getEntityIdMap(entity);\n if (!entityId)\n throw new TypeORMError(`Cannot update entity because entity id is not set in the entity.`);\n\n // execute query to get needed data\n const loadedReturningColumns = await this.queryRunner.manager\n .createQueryBuilder()\n .select(metadata.primaryColumns.map(column => metadata.targetName + \".\" + column.propertyPath))\n .addSelect(updationColumns.map(column => metadata.targetName + \".\" + column.propertyPath))\n .from(metadata.target, metadata.targetName)\n .where(entityId)\n .withDeleted()\n .setOption(\"create-pojo\") // use POJO because created object can contain default values, e.g. property = null and those properties maight be overridden by merge process\n .getOne() as any;\n\n if (loadedReturningColumns) {\n this.queryRunner.manager.merge(metadata.target as any, entity, loadedReturningColumns);\n updateResult.generatedMaps.push(loadedReturningColumns);\n }\n }\n }\n }));\n }\n\n /**\n * Updates entities with a special columns after insertion query execution.\n */\n async insert(insertResult: InsertResult, entities: ObjectLiteral[]): Promise<void> {\n const metadata = this.expressionMap.mainAlias!.metadata;\n const insertionColumns = this.getInsertionReturningColumns();\n\n const generatedMaps = entities.map((entity, entityIndex) => {\n if (this.queryRunner.connection.driver instanceof OracleDriver && Array.isArray(insertResult.raw) && this.expressionMap.extraReturningColumns.length > 0) {\n insertResult.raw = insertResult.raw.reduce((newRaw, rawItem, rawItemIndex) => {\n newRaw[this.expressionMap.extraReturningColumns[rawItemIndex].databaseName] = rawItem[0];\n return newRaw;\n }, {} as ObjectLiteral);\n }\n // get all values generated by a database for us\n const result = Array.isArray(insertResult.raw) ? insertResult.raw[entityIndex] : insertResult.raw;\n\n const generatedMap = this.queryRunner.connection.driver.createGeneratedMap(metadata, result, entityIndex, entities.length) || {};\n\n if (entityIndex in this.expressionMap.locallyGenerated) {\n this.queryRunner.manager.merge(\n metadata.target as any,\n generatedMap,\n this.expressionMap.locallyGenerated[entityIndex]\n );\n }\n\n this.queryRunner.manager.merge(\n metadata.target as any,\n entity,\n generatedMap\n );\n\n return generatedMap;\n });\n\n // for postgres and mssql we use returning/output statement to get values of inserted default and generated values\n // for other drivers we have to re-select this data from the database\n if (this.queryRunner.connection.driver.isReturningSqlSupported() === false && insertionColumns.length > 0) {\n const entityIds = entities.map((entity) => {\n const entityId = metadata.getEntityIdMap(entity)!;\n\n // We have to check for an empty `entityId` - if we don't, the query against the database\n // effectively drops the `where` clause entirely and the first record will be returned -\n // not what we want at all.\n if (!entityId)\n throw new TypeORMError(`Cannot update entity because entity id is not set in the entity.`);\n\n return entityId;\n });\n\n // to select just inserted entities we need a criteria to select by.\n // for newly inserted entities in drivers which do not support returning statement\n // row identifier can only be an increment column\n // (since its the only thing that can be generated by those databases)\n // or (and) other primary key which is defined by a user and inserted value has it\n\n const returningResult: any = await this.queryRunner.manager\n .createQueryBuilder()\n .select(metadata.primaryColumns.map(column => metadata.targetName + \".\" + column.propertyPath))\n .addSelect(insertionColumns.map(column => metadata.targetName + \".\" + column.propertyPath))\n .from(metadata.target, metadata.targetName)\n .where(entityIds)\n .setOption(\"create-pojo\") // use POJO because created object can contain default values, e.g. property = null and those properties maight be overridden by merge process\n .getMany();\n\n entities.forEach((entity, entityIndex) => {\n this.queryRunner.manager.merge(\n metadata.target as any,\n generatedMaps[entityIndex],\n returningResult[entityIndex]\n );\n\n this.queryRunner.manager.merge(\n metadata.target as any,\n entity,\n returningResult[entityIndex]\n );\n });\n }\n\n entities.forEach((entity, entityIndex) => {\n const entityId = metadata.getEntityIdMap(entity)!;\n insertResult.identifiers.push(entityId);\n insertResult.generatedMaps.push(generatedMaps[entityIndex]);\n });\n }\n\n /**\n * Columns we need to be returned from the database when we insert entity.\n */\n getInsertionReturningColumns(): ColumnMetadata[] {\n\n // for databases which support returning statement we need to return extra columns like id\n // for other databases we don't need to return id column since its returned by a driver already\n const needToCheckGenerated = this.queryRunner.connection.driver.isReturningSqlSupported();\n\n // filter out the columns of which we need database inserted values to update our entity\n return this.expressionMap.mainAlias!.metadata.columns.filter(column => {\n return column.default !== undefined ||\n (needToCheckGenerated && column.isGenerated) ||\n column.isCreateDate ||\n column.isUpdateDate ||\n column.isDeleteDate ||\n column.isVersion;\n });\n }\n\n /**\n * Columns we need to be returned from the database when we update entity.\n */\n getUpdationReturningColumns(): ColumnMetadata[] {\n return this.expressionMap.mainAlias!.metadata.columns.filter(column => {\n return column.isUpdateDate || column.isVersion;\n });\n }\n\n /**\n * Columns we need to be returned from the database when we soft delete and restore entity.\n */\n getSoftDeletionReturningColumns(): ColumnMetadata[] {\n return this.expressionMap.mainAlias!.metadata.columns.filter(column => {\n return column.isUpdateDate || column.isVersion || column.isDeleteDate;\n });\n }\n\n}\n"],"sourceRoot":".."}
@@ -1252,7 +1252,7 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1252
1252
  var driver = this.connection.driver;
1253
1253
  var lockTablesClause = "";
1254
1254
  if (this.expressionMap.lockTables) {
1255
- if (!(driver instanceof PostgresDriver)) {
1255
+ if (!(driver instanceof PostgresDriver || driver instanceof CockroachDriver)) {
1256
1256
  throw new TypeORMError("Lock tables not supported in selected driver");
1257
1257
  }
1258
1258
  if (this.expressionMap.lockTables.length < 1) {
@@ -1281,7 +1281,7 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1281
1281
  if (driver instanceof MysqlDriver || driver instanceof AuroraDataApiDriver || driver instanceof OracleDriver) {
1282
1282
  return " FOR UPDATE";
1283
1283
  }
1284
- else if (driver instanceof PostgresDriver) {
1284
+ else if (driver instanceof PostgresDriver || driver instanceof CockroachDriver) {
1285
1285
  return " FOR UPDATE" + lockTablesClause;
1286
1286
  }
1287
1287
  else if (driver instanceof SqlServerDriver) {
@@ -1301,7 +1301,7 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1301
1301
  throw new LockNotSupportedOnGivenDriverError();
1302
1302
  }
1303
1303
  case "pessimistic_write_or_fail":
1304
- if (driver instanceof PostgresDriver) {
1304
+ if (driver instanceof PostgresDriver || driver instanceof CockroachDriver) {
1305
1305
  return " FOR UPDATE" + lockTablesClause + " NOWAIT";
1306
1306
  }
1307
1307
  else if (driver instanceof MysqlDriver) {
@@ -1311,7 +1311,7 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1311
1311
  throw new LockNotSupportedOnGivenDriverError();
1312
1312
  }
1313
1313
  case "for_no_key_update":
1314
- if (driver instanceof PostgresDriver) {
1314
+ if (driver instanceof PostgresDriver || driver instanceof CockroachDriver) {
1315
1315
  return " FOR NO KEY UPDATE" + lockTablesClause;
1316
1316
  }
1317
1317
  else {