typeorm 0.3.20-dev.15de46f → 0.3.20-dev.4624930

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 (75) hide show
  1. package/browser/data-source/DataSource.js +3 -1
  2. package/browser/data-source/DataSource.js.map +1 -1
  3. package/browser/driver/cockroachdb/CockroachQueryRunner.js +3 -3
  4. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  5. package/browser/driver/oracle/OracleDriver.js +18 -10
  6. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  7. package/browser/driver/oracle/OracleQueryRunner.js +2 -2
  8. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  9. package/browser/driver/postgres/PostgresDriver.js +9 -3
  10. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  11. package/browser/driver/postgres/PostgresQueryRunner.d.ts +1 -1
  12. package/browser/driver/postgres/PostgresQueryRunner.js +30 -10
  13. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  14. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  15. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +3 -3
  16. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  17. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  18. package/browser/driver/types/ColumnTypes.js.map +1 -1
  19. package/browser/entity-manager/EntityManager.d.ts +2 -2
  20. package/browser/entity-manager/EntityManager.js.map +1 -1
  21. package/browser/metadata/EntityMetadata.js +1 -0
  22. package/browser/metadata/EntityMetadata.js.map +1 -1
  23. package/browser/query-builder/InsertQueryBuilder.js +4 -3
  24. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  25. package/browser/query-builder/QueryBuilder.d.ts +1 -1
  26. package/browser/query-builder/QueryBuilder.js +7 -7
  27. package/browser/query-builder/QueryBuilder.js.map +1 -1
  28. package/browser/query-builder/ReturningResultsEntityUpdator.js +5 -2
  29. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  30. package/browser/query-builder/SelectQueryBuilder.d.ts +4 -4
  31. package/browser/query-builder/SelectQueryBuilder.js +16 -17
  32. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  33. package/browser/repository/Repository.js.map +1 -1
  34. package/browser/schema-builder/RdbmsSchemaBuilder.js +2 -1
  35. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  36. package/browser/util/PathUtils.js +1 -1
  37. package/browser/util/PathUtils.js.map +1 -1
  38. package/data-source/DataSource.js +3 -1
  39. package/data-source/DataSource.js.map +1 -1
  40. package/driver/cockroachdb/CockroachQueryRunner.js +3 -3
  41. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  42. package/driver/oracle/OracleDriver.js +18 -10
  43. package/driver/oracle/OracleDriver.js.map +1 -1
  44. package/driver/oracle/OracleQueryRunner.js +2 -2
  45. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  46. package/driver/postgres/PostgresDriver.js +9 -3
  47. package/driver/postgres/PostgresDriver.js.map +1 -1
  48. package/driver/postgres/PostgresQueryRunner.d.ts +1 -1
  49. package/driver/postgres/PostgresQueryRunner.js +30 -10
  50. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  51. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  52. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +3 -3
  53. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  54. package/driver/types/ColumnTypes.d.ts +1 -1
  55. package/driver/types/ColumnTypes.js.map +1 -1
  56. package/entity-manager/EntityManager.d.ts +2 -2
  57. package/entity-manager/EntityManager.js.map +1 -1
  58. package/metadata/EntityMetadata.js +1 -0
  59. package/metadata/EntityMetadata.js.map +1 -1
  60. package/package.json +1 -1
  61. package/query-builder/InsertQueryBuilder.js +4 -3
  62. package/query-builder/InsertQueryBuilder.js.map +1 -1
  63. package/query-builder/QueryBuilder.d.ts +1 -1
  64. package/query-builder/QueryBuilder.js +7 -7
  65. package/query-builder/QueryBuilder.js.map +1 -1
  66. package/query-builder/ReturningResultsEntityUpdator.js +5 -2
  67. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  68. package/query-builder/SelectQueryBuilder.d.ts +4 -4
  69. package/query-builder/SelectQueryBuilder.js +16 -17
  70. package/query-builder/SelectQueryBuilder.js.map +1 -1
  71. package/repository/Repository.js.map +1 -1
  72. package/schema-builder/RdbmsSchemaBuilder.js +2 -1
  73. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  74. package/util/PathUtils.js +1 -1
  75. package/util/PathUtils.js.map +1 -1
@@ -415,6 +415,10 @@ export class PostgresQueryRunner extends BaseQueryRunner {
415
415
  downQueries.push(this.dropIndexSql(table, index));
416
416
  });
417
417
  }
418
+ if (table.comment) {
419
+ upQueries.push(new Query("COMMENT ON TABLE " + this.escapePath(table) + " IS '" + table.comment + "'"));
420
+ downQueries.push(new Query("COMMENT ON TABLE " + this.escapePath(table) + " IS NULL"));
421
+ }
418
422
  await this.executeQueries(upQueries, downQueries);
419
423
  }
420
424
  /**
@@ -1736,7 +1740,7 @@ export class PostgresQueryRunner extends BaseQueryRunner {
1736
1740
  const currentDatabase = await this.getCurrentDatabase();
1737
1741
  const dbTables = [];
1738
1742
  if (!tableNames) {
1739
- const tablesSql = `SELECT "table_schema", "table_name" FROM "information_schema"."tables"`;
1743
+ const tablesSql = `SELECT "table_schema", "table_name", obj_description(('"' || "table_schema" || '"."' || "table_name" || '"')::regclass, 'pg_class') AS table_comment FROM "information_schema"."tables"`;
1740
1744
  dbTables.push(...(await this.query(tablesSql)));
1741
1745
  }
1742
1746
  else {
@@ -1746,7 +1750,7 @@ export class PostgresQueryRunner extends BaseQueryRunner {
1746
1750
  return `("table_schema" = '${schema || currentSchema}' AND "table_name" = '${tableName}')`;
1747
1751
  })
1748
1752
  .join(" OR ");
1749
- const tablesSql = `SELECT "table_schema", "table_name" FROM "information_schema"."tables" WHERE ` +
1753
+ const tablesSql = `SELECT "table_schema", "table_name", obj_description(('"' || "table_schema" || '"."' || "table_name" || '"')::regclass, 'pg_class') AS table_comment FROM "information_schema"."tables" WHERE ` +
1750
1754
  tablesCondition;
1751
1755
  dbTables.push(...(await this.query(tablesSql)));
1752
1756
  }
@@ -1848,6 +1852,7 @@ export class PostgresQueryRunner extends BaseQueryRunner {
1848
1852
  const schema = getSchemaFromKey(dbTable, "table_schema");
1849
1853
  table.database = currentDatabase;
1850
1854
  table.schema = dbTable["table_schema"];
1855
+ table.comment = dbTable["table_comment"];
1851
1856
  table.name = this.driver.buildTableName(dbTable["table_name"], schema);
1852
1857
  // create columns from the loaded columns
1853
1858
  table.columns = await Promise.all(dbColumns
@@ -2047,7 +2052,7 @@ export class PostgresQueryRunner extends BaseQueryRunner {
2047
2052
  dbColumn["column_default"];
2048
2053
  }
2049
2054
  else {
2050
- tableColumn.default = dbColumn["column_default"].replace(/::[\w\s.\[\]\-"]+/g, "");
2055
+ tableColumn.default = dbColumn["column_default"].replace(/::[\w\s.[\]\-"]+/g, "");
2051
2056
  tableColumn.default =
2052
2057
  tableColumn.default.replace(/^(-?\d+)$/, "'$1'");
2053
2058
  }
@@ -2287,7 +2292,7 @@ export class PostgresQueryRunner extends BaseQueryRunner {
2287
2292
  */
2288
2293
  async getVersion() {
2289
2294
  const result = await this.query(`SELECT version()`);
2290
- return result[0]["version"].replace(/^PostgreSQL ([\d\.]+) .*$/, "$1");
2295
+ return result[0]["version"].replace(/^PostgreSQL ([\d.]+) .*$/, "$1");
2291
2296
  }
2292
2297
  /**
2293
2298
  * Builds drop table sql.
@@ -2399,7 +2404,7 @@ export class PostgresQueryRunner extends BaseQueryRunner {
2399
2404
  const columns = index.columnNames
2400
2405
  .map((columnName) => `"${columnName}"`)
2401
2406
  .join(", ");
2402
- return new Query(`CREATE ${index.isUnique ? "UNIQUE " : ""}${index.isConcurrent ? "CONCURRENTLY " : ""}INDEX "${index.name}" ON ${this.escapePath(table)} ${index.isSpatial ? "USING GiST " : ""}(${columns}) ${index.where ? "WHERE " + index.where : ""}`);
2407
+ return new Query(`CREATE ${index.isUnique ? "UNIQUE " : ""}INDEX${index.isConcurrent ? " CONCURRENTLY" : ""} "${index.name}" ON ${this.escapePath(table)} ${index.isSpatial ? "USING GiST " : ""}(${columns}) ${index.where ? "WHERE " + index.where : ""}`);
2403
2408
  }
2404
2409
  /**
2405
2410
  * Builds create view index sql.
@@ -2414,7 +2419,7 @@ export class PostgresQueryRunner extends BaseQueryRunner {
2414
2419
  * Builds drop index sql.
2415
2420
  */
2416
2421
  dropIndexSql(table, indexOrName) {
2417
- let indexName = InstanceChecker.isTableIndex(indexOrName)
2422
+ const indexName = InstanceChecker.isTableIndex(indexOrName)
2418
2423
  ? indexOrName.name
2419
2424
  : indexOrName;
2420
2425
  const concurrent = InstanceChecker.isTableIndex(indexOrName)
@@ -2422,8 +2427,8 @@ export class PostgresQueryRunner extends BaseQueryRunner {
2422
2427
  : false;
2423
2428
  const { schema } = this.driver.parseTableName(table);
2424
2429
  return schema
2425
- ? new Query(`DROP INDEX ${concurrent ? "CONCURRENTLY" : ""}"${schema}"."${indexName}"`)
2426
- : new Query(`DROP INDEX ${concurrent ? "CONCURRENTLY" : ""}"${indexName}"`);
2430
+ ? new Query(`DROP INDEX ${concurrent ? "CONCURRENTLY " : ""}"${schema}"."${indexName}"`)
2431
+ : new Query(`DROP INDEX ${concurrent ? "CONCURRENTLY " : ""}"${indexName}"`);
2427
2432
  }
2428
2433
  /**
2429
2434
  * Builds create primary key sql.
@@ -2686,8 +2691,23 @@ export class PostgresQueryRunner extends BaseQueryRunner {
2686
2691
  /**
2687
2692
  * Change table comment.
2688
2693
  */
2689
- changeTableComment(tableOrName, comment) {
2690
- throw new TypeORMError(`postgres driver does not support change table comment.`);
2694
+ async changeTableComment(tableOrName, newComment) {
2695
+ const upQueries = [];
2696
+ const downQueries = [];
2697
+ const table = InstanceChecker.isTable(tableOrName)
2698
+ ? tableOrName
2699
+ : await this.getCachedTable(tableOrName);
2700
+ newComment = this.escapeComment(newComment);
2701
+ const comment = this.escapeComment(table.comment);
2702
+ if (newComment === comment) {
2703
+ return;
2704
+ }
2705
+ const newTable = table.clone();
2706
+ upQueries.push(new Query(`COMMENT ON TABLE ${this.escapePath(newTable)} IS ${newComment}`));
2707
+ downQueries.push(new Query(`COMMENT ON TABLE ${this.escapePath(table)} IS ${comment}`));
2708
+ await this.executeQueries(upQueries, downQueries);
2709
+ table.comment = newTable.comment;
2710
+ this.replaceCachedTable(table, newTable);
2691
2711
  }
2692
2712
  }
2693
2713