typeorm 0.3.18-dev.48f5f85 → 0.3.18-dev.6d5b5d9

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 (103) hide show
  1. package/browser/decorator/Index.js +1 -0
  2. package/browser/decorator/Index.js.map +1 -1
  3. package/browser/decorator/options/IndexOptions.d.ts +5 -0
  4. package/browser/decorator/options/IndexOptions.js.map +1 -1
  5. package/browser/driver/mongodb/MongoQueryRunner.d.ts +3 -3
  6. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  7. package/browser/driver/mongodb/typings.d.ts +3 -3
  8. package/browser/driver/mongodb/typings.js.map +1 -1
  9. package/browser/driver/oracle/OracleQueryRunner.js +34 -2
  10. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  11. package/browser/driver/postgres/PostgresQueryRunner.js +26 -15
  12. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  13. package/browser/driver/sap/SapDriver.d.ts +8 -0
  14. package/browser/driver/sap/SapDriver.js +13 -2
  15. package/browser/driver/sap/SapDriver.js.map +1 -1
  16. package/browser/driver/sap/SapQueryRunner.d.ts +5 -14
  17. package/browser/driver/sap/SapQueryRunner.js +53 -55
  18. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  19. package/browser/entity-manager/MongoEntityManager.d.ts +3 -3
  20. package/browser/entity-manager/MongoEntityManager.js +1 -2
  21. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  22. package/browser/entity-schema/EntitySchemaOptions.d.ts +4 -0
  23. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  24. package/browser/entity-schema/EntitySchemaTransformer.js +7 -0
  25. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  26. package/browser/metadata/IndexMetadata.d.ts +5 -0
  27. package/browser/metadata/IndexMetadata.js +1 -0
  28. package/browser/metadata/IndexMetadata.js.map +1 -1
  29. package/browser/metadata-args/IndexMetadataArgs.d.ts +5 -0
  30. package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
  31. package/browser/metadata-builder/EntityMetadataBuilder.js +22 -0
  32. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  33. package/browser/persistence/SubjectExecutor.js +4 -1
  34. package/browser/persistence/SubjectExecutor.js.map +1 -1
  35. package/browser/platform/PlatformTools.js +2 -0
  36. package/browser/platform/PlatformTools.js.map +1 -1
  37. package/browser/query-builder/SelectQueryBuilder.js +4 -1
  38. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  39. package/browser/repository/MongoRepository.d.ts +3 -3
  40. package/browser/repository/MongoRepository.js.map +1 -1
  41. package/browser/schema-builder/options/TableIndexOptions.d.ts +5 -0
  42. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  43. package/browser/schema-builder/table/TableIndex.d.ts +5 -0
  44. package/browser/schema-builder/table/TableIndex.js +3 -0
  45. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  46. package/browser/subscriber/Broadcaster.d.ts +1 -1
  47. package/browser/subscriber/Broadcaster.js +2 -1
  48. package/browser/subscriber/Broadcaster.js.map +1 -1
  49. package/browser/subscriber/event/InsertEvent.d.ts +5 -0
  50. package/browser/subscriber/event/InsertEvent.js.map +1 -1
  51. package/commands/MigrationGenerateCommand.js +3 -1
  52. package/commands/MigrationGenerateCommand.js.map +1 -1
  53. package/decorator/Index.js +1 -0
  54. package/decorator/Index.js.map +1 -1
  55. package/decorator/options/IndexOptions.d.ts +5 -0
  56. package/decorator/options/IndexOptions.js.map +1 -1
  57. package/driver/mongodb/MongoQueryRunner.d.ts +3 -3
  58. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  59. package/driver/mongodb/typings.d.ts +3 -3
  60. package/driver/mongodb/typings.js.map +1 -1
  61. package/driver/oracle/OracleQueryRunner.js +34 -2
  62. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  63. package/driver/postgres/PostgresQueryRunner.js +26 -15
  64. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  65. package/driver/sap/SapDriver.d.ts +8 -0
  66. package/driver/sap/SapDriver.js +13 -2
  67. package/driver/sap/SapDriver.js.map +1 -1
  68. package/driver/sap/SapQueryRunner.d.ts +5 -14
  69. package/driver/sap/SapQueryRunner.js +53 -55
  70. package/driver/sap/SapQueryRunner.js.map +1 -1
  71. package/entity-manager/MongoEntityManager.d.ts +3 -3
  72. package/entity-manager/MongoEntityManager.js +1 -2
  73. package/entity-manager/MongoEntityManager.js.map +1 -1
  74. package/entity-schema/EntitySchemaOptions.d.ts +4 -0
  75. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  76. package/entity-schema/EntitySchemaTransformer.js +7 -0
  77. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  78. package/metadata/IndexMetadata.d.ts +5 -0
  79. package/metadata/IndexMetadata.js +1 -0
  80. package/metadata/IndexMetadata.js.map +1 -1
  81. package/metadata-args/IndexMetadataArgs.d.ts +5 -0
  82. package/metadata-args/IndexMetadataArgs.js.map +1 -1
  83. package/metadata-builder/EntityMetadataBuilder.js +22 -0
  84. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  85. package/package.json +1 -1
  86. package/persistence/SubjectExecutor.js +4 -1
  87. package/persistence/SubjectExecutor.js.map +1 -1
  88. package/platform/PlatformTools.js +2 -0
  89. package/platform/PlatformTools.js.map +1 -1
  90. package/query-builder/SelectQueryBuilder.js +4 -1
  91. package/query-builder/SelectQueryBuilder.js.map +1 -1
  92. package/repository/MongoRepository.d.ts +3 -3
  93. package/repository/MongoRepository.js.map +1 -1
  94. package/schema-builder/options/TableIndexOptions.d.ts +5 -0
  95. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  96. package/schema-builder/table/TableIndex.d.ts +5 -0
  97. package/schema-builder/table/TableIndex.js +3 -0
  98. package/schema-builder/table/TableIndex.js.map +1 -1
  99. package/subscriber/Broadcaster.d.ts +1 -1
  100. package/subscriber/Broadcaster.js +2 -1
  101. package/subscriber/Broadcaster.js.map +1 -1
  102. package/subscriber/event/InsertEvent.d.ts +5 -0
  103. package/subscriber/event/InsertEvent.js.map +1 -1
@@ -1380,7 +1380,11 @@ export class OracleQueryRunner extends BaseQueryRunner {
1380
1380
  table.columns = await Promise.all(dbColumns
1381
1381
  .filter((dbColumn) => dbColumn["OWNER"] === dbTable["OWNER"] &&
1382
1382
  dbColumn["TABLE_NAME"] ===
1383
- dbTable["TABLE_NAME"])
1383
+ dbTable["TABLE_NAME"] &&
1384
+ // Filter out auto-generated virtual columns,
1385
+ // since TypeORM will have no info about them.
1386
+ !(dbColumn["VIRTUAL_COLUMN"] === "YES" &&
1387
+ dbColumn["USER_GENERATED"] === "NO"))
1384
1388
  .map(async (dbColumn) => {
1385
1389
  const columnConstraints = dbConstraints.filter((dbConstraint) => dbConstraint["OWNER"] ===
1386
1390
  dbColumn["OWNER"] &&
@@ -1554,14 +1558,42 @@ export class OracleQueryRunner extends BaseQueryRunner {
1554
1558
  onUpdate: "NO ACTION", // Oracle does not have onUpdate option in FK's, but we need it for proper synchronization
1555
1559
  });
1556
1560
  });
1561
+ // Attempt to map auto-generated virtual columns to their
1562
+ // referenced columns, through its 'DATA_DEFAULT' property.
1563
+ //
1564
+ // An example of this happening is when a column of type
1565
+ // TIMESTAMP WITH TIME ZONE is indexed. Oracle will create a
1566
+ // virtual column of type TIMESTAMP with a default value of
1567
+ // SYS_EXTRACT_UTC(<column>).
1568
+ const autoGenVirtualDbColumns = dbColumns
1569
+ .filter((dbColumn) => dbColumn["OWNER"] === dbTable["OWNER"] &&
1570
+ dbColumn["TABLE_NAME"] === dbTable["TABLE_NAME"] &&
1571
+ dbColumn["VIRTUAL_COLUMN"] === "YES" &&
1572
+ dbColumn["USER_GENERATED"] === "NO")
1573
+ .reduce((acc, x) => {
1574
+ const referencedDbColumn = dbColumns.find((dbColumn) => x["DATA_DEFAULT"].includes(dbColumn["COLUMN_NAME"]));
1575
+ if (!referencedDbColumn)
1576
+ return acc;
1577
+ return {
1578
+ ...acc,
1579
+ [x["COLUMN_NAME"]]: referencedDbColumn["COLUMN_NAME"],
1580
+ };
1581
+ }, {});
1557
1582
  // create TableIndex objects from the loaded indices
1558
1583
  table.indices = dbIndices
1559
1584
  .filter((dbIndex) => dbIndex["TABLE_NAME"] === dbTable["TABLE_NAME"] &&
1560
1585
  dbIndex["OWNER"] === dbTable["OWNER"])
1561
1586
  .map((dbIndex) => {
1587
+ //
1588
+ const columnNames = dbIndex["COLUMN_NAMES"]
1589
+ .split(",")
1590
+ .map((columnName) => {
1591
+ var _a;
1592
+ return (_a = autoGenVirtualDbColumns[columnName]) !== null && _a !== void 0 ? _a : columnName;
1593
+ });
1562
1594
  return new TableIndex({
1563
1595
  name: dbIndex["INDEX_NAME"],
1564
- columnNames: dbIndex["COLUMN_NAMES"].split(","),
1596
+ columnNames,
1565
1597
  isUnique: dbIndex["UNIQUENESS"] === "UNIQUE",
1566
1598
  });
1567
1599
  });