typeorm 0.3.5 → 0.3.6-dev.2d8afbe

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 (235) hide show
  1. package/README.md +33 -13
  2. package/browser/cache/DbQueryResultCache.js +9 -1
  3. package/browser/cache/DbQueryResultCache.js.map +1 -1
  4. package/browser/cache/RedisQueryResultCache.js +3 -0
  5. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  6. package/browser/cli-ts-node-commonjs.js +0 -0
  7. package/browser/cli-ts-node-esm.js +0 -0
  8. package/browser/data-source/BaseDataSourceOptions.d.ts +1 -2
  9. package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
  10. package/browser/data-source/DataSourceOptions.d.ts +2 -1
  11. package/browser/data-source/DataSourceOptions.js.map +1 -1
  12. package/browser/decorator/Index.js +1 -0
  13. package/browser/decorator/Index.js.map +1 -1
  14. package/browser/decorator/columns/PrimaryColumn.js +4 -1
  15. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  16. package/browser/decorator/options/ColumnOptions.d.ts +3 -2
  17. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  18. package/browser/decorator/options/IndexOptions.d.ts +8 -0
  19. package/browser/decorator/options/IndexOptions.js.map +1 -1
  20. package/browser/driver/DriverFactory.js +4 -0
  21. package/browser/driver/DriverFactory.js.map +1 -1
  22. package/browser/driver/cockroachdb/CockroachDriver.js +4 -1
  23. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  24. package/browser/driver/cockroachdb/CockroachQueryRunner.js +133 -11
  25. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  26. package/browser/driver/mysql/MysqlDriver.d.ts +1 -0
  27. package/browser/driver/mysql/MysqlDriver.js +94 -23
  28. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  29. package/browser/driver/mysql/MysqlQueryRunner.js +203 -24
  30. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  31. package/browser/driver/oracle/OracleDriver.js +79 -15
  32. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  33. package/browser/driver/oracle/OracleQueryRunner.js +118 -21
  34. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  35. package/browser/driver/postgres/PostgresDriver.js +95 -18
  36. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  37. package/browser/driver/postgres/PostgresQueryRunner.js +60 -38
  38. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  39. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.d.ts +17 -0
  40. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js +3 -0
  41. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -0
  42. package/browser/driver/spanner/SpannerConnectionOptions.d.ts +120 -0
  43. package/browser/driver/spanner/SpannerConnectionOptions.js +3 -0
  44. package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -0
  45. package/browser/driver/spanner/SpannerDriver.d.ts +241 -0
  46. package/browser/driver/spanner/SpannerDriver.js +604 -0
  47. package/browser/driver/spanner/SpannerDriver.js.map +1 -0
  48. package/browser/driver/spanner/SpannerQueryRunner.d.ts +350 -0
  49. package/browser/driver/spanner/SpannerQueryRunner.js +1445 -0
  50. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -0
  51. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +21 -16
  52. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  53. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +165 -20
  54. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  55. package/browser/driver/sqlserver/SqlServerDriver.d.ts +3 -1
  56. package/browser/driver/sqlserver/SqlServerDriver.js +99 -26
  57. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  58. package/browser/driver/sqlserver/SqlServerQueryRunner.js +153 -17
  59. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  60. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  61. package/browser/driver/types/ColumnTypes.js.map +1 -1
  62. package/browser/driver/types/DatabaseType.d.ts +1 -1
  63. package/browser/driver/types/DatabaseType.js.map +1 -1
  64. package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +2 -2
  65. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  66. package/browser/entity-schema/EntitySchemaIndexOptions.d.ts +8 -0
  67. package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  68. package/browser/entity-schema/EntitySchemaTransformer.js +1 -0
  69. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  70. package/browser/find-options/FindOneOptions.d.ts +1 -1
  71. package/browser/find-options/FindOneOptions.js.map +1 -1
  72. package/browser/find-options/FindOptionsUtils.d.ts +2 -1
  73. package/browser/find-options/FindOptionsUtils.js +2 -1
  74. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  75. package/browser/logger/AdvancedConsoleLogger.d.ts +1 -1
  76. package/browser/logger/AdvancedConsoleLogger.js +1 -1
  77. package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
  78. package/browser/metadata/ColumnMetadata.d.ts +2 -2
  79. package/browser/metadata/ColumnMetadata.js.map +1 -1
  80. package/browser/metadata/IndexMetadata.d.ts +8 -0
  81. package/browser/metadata/IndexMetadata.js +9 -0
  82. package/browser/metadata/IndexMetadata.js.map +1 -1
  83. package/browser/metadata-args/IndexMetadataArgs.d.ts +8 -0
  84. package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
  85. package/browser/metadata-builder/EntityMetadataBuilder.js +13 -6
  86. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  87. package/browser/metadata-builder/EntityMetadataValidator.js +8 -0
  88. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  89. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +13 -6
  90. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  91. package/browser/platform/PlatformTools.js +5 -0
  92. package/browser/platform/PlatformTools.js.map +1 -1
  93. package/browser/query-builder/InsertQueryBuilder.js +15 -3
  94. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  95. package/browser/query-builder/QueryExpressionMap.d.ts +1 -1
  96. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  97. package/browser/query-builder/SelectQueryBuilder.d.ts +1 -1
  98. package/browser/query-builder/SelectQueryBuilder.js +25 -4
  99. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  100. package/browser/query-builder/UpdateQueryBuilder.js +18 -7
  101. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  102. package/browser/query-runner/BaseQueryRunner.d.ts +10 -0
  103. package/browser/query-runner/BaseQueryRunner.js +25 -1
  104. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  105. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +6 -2
  106. package/browser/schema-builder/RdbmsSchemaBuilder.js +26 -6
  107. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  108. package/browser/schema-builder/options/TableColumnOptions.d.ts +2 -2
  109. package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
  110. package/browser/schema-builder/options/TableIndexOptions.d.ts +8 -0
  111. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  112. package/browser/schema-builder/table/TableColumn.d.ts +2 -2
  113. package/browser/schema-builder/table/TableColumn.js.map +1 -1
  114. package/browser/schema-builder/table/TableIndex.d.ts +8 -0
  115. package/browser/schema-builder/table/TableIndex.js +3 -0
  116. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  117. package/cache/DbQueryResultCache.js +9 -1
  118. package/cache/DbQueryResultCache.js.map +1 -1
  119. package/cache/RedisQueryResultCache.js +3 -0
  120. package/cache/RedisQueryResultCache.js.map +1 -1
  121. package/cli-ts-node-commonjs.js +0 -0
  122. package/cli-ts-node-esm.js +0 -0
  123. package/cli.js +0 -0
  124. package/commands/InitCommand.js +1 -1
  125. package/commands/InitCommand.js.map +1 -1
  126. package/data-source/BaseDataSourceOptions.d.ts +1 -2
  127. package/data-source/BaseDataSourceOptions.js.map +1 -1
  128. package/data-source/DataSourceOptions.d.ts +2 -1
  129. package/data-source/DataSourceOptions.js.map +1 -1
  130. package/decorator/Index.js +1 -0
  131. package/decorator/Index.js.map +1 -1
  132. package/decorator/columns/PrimaryColumn.js +4 -1
  133. package/decorator/columns/PrimaryColumn.js.map +1 -1
  134. package/decorator/options/ColumnOptions.d.ts +3 -2
  135. package/decorator/options/ColumnOptions.js.map +1 -1
  136. package/decorator/options/IndexOptions.d.ts +8 -0
  137. package/decorator/options/IndexOptions.js.map +1 -1
  138. package/driver/DriverFactory.js +4 -0
  139. package/driver/DriverFactory.js.map +1 -1
  140. package/driver/cockroachdb/CockroachDriver.js +4 -1
  141. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  142. package/driver/cockroachdb/CockroachQueryRunner.js +133 -11
  143. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  144. package/driver/mysql/MysqlDriver.d.ts +1 -0
  145. package/driver/mysql/MysqlDriver.js +94 -23
  146. package/driver/mysql/MysqlDriver.js.map +1 -1
  147. package/driver/mysql/MysqlQueryRunner.js +203 -24
  148. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  149. package/driver/oracle/OracleDriver.js +79 -15
  150. package/driver/oracle/OracleDriver.js.map +1 -1
  151. package/driver/oracle/OracleQueryRunner.js +118 -21
  152. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  153. package/driver/postgres/PostgresDriver.js +95 -18
  154. package/driver/postgres/PostgresDriver.js.map +1 -1
  155. package/driver/postgres/PostgresQueryRunner.js +60 -38
  156. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  157. package/driver/spanner/SpannerConnectionCredentialsOptions.d.ts +17 -0
  158. package/driver/spanner/SpannerConnectionCredentialsOptions.js +4 -0
  159. package/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -0
  160. package/driver/spanner/SpannerConnectionOptions.d.ts +120 -0
  161. package/driver/spanner/SpannerConnectionOptions.js +4 -0
  162. package/driver/spanner/SpannerConnectionOptions.js.map +1 -0
  163. package/driver/spanner/SpannerDriver.d.ts +241 -0
  164. package/driver/spanner/SpannerDriver.js +608 -0
  165. package/driver/spanner/SpannerDriver.js.map +1 -0
  166. package/driver/spanner/SpannerQueryRunner.d.ts +350 -0
  167. package/driver/spanner/SpannerQueryRunner.js +1449 -0
  168. package/driver/spanner/SpannerQueryRunner.js.map +1 -0
  169. package/driver/sqlite-abstract/AbstractSqliteDriver.js +21 -16
  170. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  171. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +165 -20
  172. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  173. package/driver/sqlserver/SqlServerDriver.d.ts +3 -1
  174. package/driver/sqlserver/SqlServerDriver.js +99 -26
  175. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  176. package/driver/sqlserver/SqlServerQueryRunner.js +153 -17
  177. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  178. package/driver/types/ColumnTypes.d.ts +1 -1
  179. package/driver/types/ColumnTypes.js.map +1 -1
  180. package/driver/types/DatabaseType.d.ts +1 -1
  181. package/driver/types/DatabaseType.js.map +1 -1
  182. package/entity-schema/EntitySchemaColumnOptions.d.ts +2 -2
  183. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  184. package/entity-schema/EntitySchemaIndexOptions.d.ts +8 -0
  185. package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  186. package/entity-schema/EntitySchemaTransformer.js +1 -0
  187. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  188. package/find-options/FindOneOptions.d.ts +1 -1
  189. package/find-options/FindOneOptions.js.map +1 -1
  190. package/find-options/FindOptionsUtils.d.ts +2 -1
  191. package/find-options/FindOptionsUtils.js +2 -1
  192. package/find-options/FindOptionsUtils.js.map +1 -1
  193. package/logger/AdvancedConsoleLogger.d.ts +1 -1
  194. package/logger/AdvancedConsoleLogger.js +1 -1
  195. package/logger/AdvancedConsoleLogger.js.map +1 -1
  196. package/metadata/ColumnMetadata.d.ts +2 -2
  197. package/metadata/ColumnMetadata.js.map +1 -1
  198. package/metadata/IndexMetadata.d.ts +8 -0
  199. package/metadata/IndexMetadata.js +9 -0
  200. package/metadata/IndexMetadata.js.map +1 -1
  201. package/metadata-args/IndexMetadataArgs.d.ts +8 -0
  202. package/metadata-args/IndexMetadataArgs.js.map +1 -1
  203. package/metadata-builder/EntityMetadataBuilder.js +13 -6
  204. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  205. package/metadata-builder/EntityMetadataValidator.js +8 -0
  206. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  207. package/metadata-builder/JunctionEntityMetadataBuilder.js +13 -6
  208. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  209. package/package.json +1 -261
  210. package/platform/PlatformTools.js +5 -0
  211. package/platform/PlatformTools.js.map +1 -1
  212. package/query-builder/InsertQueryBuilder.js +15 -3
  213. package/query-builder/InsertQueryBuilder.js.map +1 -1
  214. package/query-builder/QueryExpressionMap.d.ts +1 -1
  215. package/query-builder/QueryExpressionMap.js.map +1 -1
  216. package/query-builder/SelectQueryBuilder.d.ts +1 -1
  217. package/query-builder/SelectQueryBuilder.js +25 -4
  218. package/query-builder/SelectQueryBuilder.js.map +1 -1
  219. package/query-builder/UpdateQueryBuilder.js +18 -7
  220. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  221. package/query-runner/BaseQueryRunner.d.ts +10 -0
  222. package/query-runner/BaseQueryRunner.js +25 -1
  223. package/query-runner/BaseQueryRunner.js.map +1 -1
  224. package/schema-builder/RdbmsSchemaBuilder.d.ts +6 -2
  225. package/schema-builder/RdbmsSchemaBuilder.js +26 -6
  226. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  227. package/schema-builder/options/TableColumnOptions.d.ts +2 -2
  228. package/schema-builder/options/TableColumnOptions.js.map +1 -1
  229. package/schema-builder/options/TableIndexOptions.d.ts +8 -0
  230. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  231. package/schema-builder/table/TableColumn.d.ts +2 -2
  232. package/schema-builder/table/TableColumn.js.map +1 -1
  233. package/schema-builder/table/TableIndex.d.ts +8 -0
  234. package/schema-builder/table/TableIndex.js +3 -0
  235. package/schema-builder/table/TableIndex.js.map +1 -1
@@ -389,7 +389,6 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
389
389
  type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
390
390
  name: column.name,
391
391
  });
392
- upQueries.push(deleteQuery);
393
392
  upQueries.push(insertQuery);
394
393
  downQueries.push(deleteQuery);
395
394
  }
@@ -437,6 +436,30 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
437
436
  table.foreignKeys.forEach((foreignKey) => upQueries.push(this.dropForeignKeySql(table, foreignKey)));
438
437
  upQueries.push(this.dropTableSql(table));
439
438
  downQueries.push(this.createTableSql(table, createForeignKeys));
439
+ // if table had columns with generated type, we must remove the expression from the metadata table
440
+ const generatedColumns = table.columns.filter((column) => column.generatedType && column.asExpression);
441
+ for (const column of generatedColumns) {
442
+ const tableNameWithSchema = (await this.getTableNameWithSchema(table.name)).split(".");
443
+ const tableName = tableNameWithSchema[1];
444
+ const schema = tableNameWithSchema[0];
445
+ const deleteQuery = this.deleteTypeormMetadataSql({
446
+ database: this.driver.database,
447
+ schema,
448
+ table: tableName,
449
+ type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
450
+ name: column.name,
451
+ });
452
+ const insertQuery = this.insertTypeormMetadataSql({
453
+ database: this.driver.database,
454
+ schema,
455
+ table: tableName,
456
+ type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
457
+ name: column.name,
458
+ value: column.asExpression,
459
+ });
460
+ upQueries.push(deleteQuery);
461
+ downQueries.push(insertQuery);
462
+ }
440
463
  await this.executeQueries(upQueries, downQueries);
441
464
  }
442
465
  /**
@@ -626,7 +649,6 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
626
649
  type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
627
650
  name: column.name,
628
651
  });
629
- upQueries.push(deleteQuery);
630
652
  upQueries.push(insertQuery);
631
653
  downQueries.push(deleteQuery);
632
654
  }
@@ -997,15 +1019,6 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
997
1019
  name: oldColumn.name,
998
1020
  }));
999
1021
  // However, we can't copy it back on downgrade. It needs to regenerate.
1000
- downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN "${newColumn.name}"`));
1001
- downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(table, oldColumn)}`));
1002
- downQueries.push(this.deleteTypeormMetadataSql({
1003
- database: this.driver.database,
1004
- schema,
1005
- table: tableName,
1006
- type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
1007
- name: newColumn.name,
1008
- }));
1009
1022
  downQueries.push(this.insertTypeormMetadataSql({
1010
1023
  database: this.driver.database,
1011
1024
  schema,
@@ -1014,6 +1027,17 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1014
1027
  name: oldColumn.name,
1015
1028
  value: oldColumn.asExpression,
1016
1029
  }));
1030
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(table, oldColumn)}`));
1031
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN "${newColumn.name}"`));
1032
+ // downQueries.push(
1033
+ // this.deleteTypeormMetadataSql({
1034
+ // database: this.driver.database,
1035
+ // schema,
1036
+ // table: tableName,
1037
+ // type: MetadataTableType.GENERATED_COLUMN,
1038
+ // name: newColumn.name,
1039
+ // }),
1040
+ // )
1017
1041
  }
1018
1042
  }
1019
1043
  }
@@ -1105,14 +1129,14 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1105
1129
  const tableNameWithSchema = (await this.getTableNameWithSchema(table.name)).split(".");
1106
1130
  const tableName = tableNameWithSchema[1];
1107
1131
  const schema = tableNameWithSchema[0];
1108
- const insertQuery = this.deleteTypeormMetadataSql({
1132
+ const deleteQuery = this.deleteTypeormMetadataSql({
1109
1133
  database: this.driver.database,
1110
1134
  schema,
1111
1135
  table: tableName,
1112
1136
  type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
1113
1137
  name: column.name,
1114
1138
  });
1115
- const deleteQuery = this.insertTypeormMetadataSql({
1139
+ const insertQuery = this.insertTypeormMetadataSql({
1116
1140
  database: this.driver.database,
1117
1141
  schema,
1118
1142
  table: tableName,
@@ -1120,8 +1144,8 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1120
1144
  name: column.name,
1121
1145
  value: column.asExpression,
1122
1146
  });
1123
- upQueries.push(insertQuery);
1124
- downQueries.push(deleteQuery);
1147
+ upQueries.push(deleteQuery);
1148
+ downQueries.push(insertQuery);
1125
1149
  }
1126
1150
  await this.executeQueries(upQueries, downQueries);
1127
1151
  clonedTable.removeColumn(column);
@@ -1870,13 +1894,14 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1870
1894
  // In postgres there is no VIRTUAL generated column type
1871
1895
  tableColumn.generatedType = "STORED";
1872
1896
  // We cannot relay on information_schema.columns.generation_expression, because it is formatted different.
1873
- const asExpressionQuery = `SELECT * FROM "${this.connection.metadataTableName}" ` +
1874
- ` WHERE "table" = '${dbTable["table_name"]}'` +
1875
- ` AND "name" = '${tableColumn.name}'` +
1876
- ` AND "schema" = '${dbTable["table_schema"]}'` +
1877
- ` AND "database" = '${this.driver.database}'` +
1878
- ` AND "type" = '${MetadataTableType_1.MetadataTableType.GENERATED_COLUMN}'`;
1879
- const results = await this.query(asExpressionQuery);
1897
+ const asExpressionQuery = await this.selectTypeormMetadataSql({
1898
+ database: currentDatabase,
1899
+ schema: dbTable["table_schema"],
1900
+ table: dbTable["table_name"],
1901
+ type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
1902
+ name: tableColumn.name,
1903
+ });
1904
+ const results = await this.query(asExpressionQuery.query, asExpressionQuery.parameters);
1880
1905
  if (results[0] && results[0].value) {
1881
1906
  tableColumn.asExpression = results[0].value;
1882
1907
  }
@@ -2449,25 +2474,22 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
2449
2474
  else if (!column.isGenerated || column.type === "uuid") {
2450
2475
  c += " " + this.connection.driver.createFullType(column);
2451
2476
  }
2452
- // CHARACTER SET, COLLATE, NOT NULL and DEFAULT do not exist on generated (virtual) columns
2453
- // Also, postgres only supports the stored generated column type
2477
+ // Postgres only supports the stored generated column type
2454
2478
  if (column.generatedType === "STORED" && column.asExpression) {
2455
2479
  c += ` GENERATED ALWAYS AS (${column.asExpression}) STORED`;
2456
2480
  }
2457
- else {
2458
- if (column.charset)
2459
- c += ' CHARACTER SET "' + column.charset + '"';
2460
- if (column.collation)
2461
- c += ' COLLATE "' + column.collation + '"';
2462
- if (column.isNullable !== true)
2463
- c += " NOT NULL";
2464
- if (column.default !== undefined && column.default !== null)
2465
- c += " DEFAULT " + column.default;
2466
- if (column.isGenerated &&
2467
- column.generationStrategy === "uuid" &&
2468
- !column.default)
2469
- c += ` DEFAULT ${this.driver.uuidGenerator}`;
2470
- }
2481
+ if (column.charset)
2482
+ c += ' CHARACTER SET "' + column.charset + '"';
2483
+ if (column.collation)
2484
+ c += ' COLLATE "' + column.collation + '"';
2485
+ if (column.isNullable !== true)
2486
+ c += " NOT NULL";
2487
+ if (column.default !== undefined && column.default !== null)
2488
+ c += " DEFAULT " + column.default;
2489
+ if (column.isGenerated &&
2490
+ column.generationStrategy === "uuid" &&
2491
+ !column.default)
2492
+ c += ` DEFAULT ${this.driver.uuidGenerator}`;
2471
2493
  return c;
2472
2494
  }
2473
2495
  /**