From ce78c378742a561c128b075da87e969f998dd388 Mon Sep 17 00:00:00 2001 From: Matt Hilliard Date: Tue, 11 Aug 2020 16:20:43 -0600 Subject: [PATCH 1/3] Makes Postgres driver aware of new identity columns --- src/drivers/PostgresDriver.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/drivers/PostgresDriver.ts b/src/drivers/PostgresDriver.ts index 6ac3d1b..f6fd8fc 100644 --- a/src/drivers/PostgresDriver.ts +++ b/src/drivers/PostgresDriver.ts @@ -73,7 +73,8 @@ export default class PostgresDriver extends AbstractDriver { character_maximum_length: number; numeric_precision: number; numeric_scale: number; - isidentity: string; + isidentity: string; // SERIAL identity type + is_identity: string; // reccommended INDENTITY type for pg > 10 isunique: string; enumvalues: string | null; /* eslint-enable camelcase */ @@ -82,6 +83,7 @@ export default class PostgresDriver extends AbstractDriver { .query(`SELECT table_name,column_name,udt_name,column_default,is_nullable, data_type,character_maximum_length,numeric_precision,numeric_scale, case when column_default LIKE 'nextval%' then 'YES' else 'NO' end isidentity, + is_identity, (SELECT count(*) FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc inner join INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE cu @@ -114,7 +116,7 @@ export default class PostgresDriver extends AbstractDriver { if (resp.isunique === "1") options.unique = true; const generated = - resp.isidentity === "YES" ? true : undefined; + resp.isidentity === "YES" || resp.is_identity === "YES" ? true : undefined; const defaultValue = generated ? undefined : PostgresDriver.ReturnDefaultValueFunction( From 834d1f1d6123941aef45d583d0299ef89bdb79e2 Mon Sep 17 00:00:00 2001 From: Matt Hilliard Date: Thu, 13 Aug 2020 18:00:56 -0600 Subject: [PATCH 2/3] Fix for #1795. @ManyToOne relations should not have an array type. --- src/drivers/AbstractDriver.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/drivers/AbstractDriver.ts b/src/drivers/AbstractDriver.ts index 7db7feb..fb9d855 100644 --- a/src/drivers/AbstractDriver.ts +++ b/src/drivers/AbstractDriver.ts @@ -372,7 +372,7 @@ export default abstract class AbstractDriver { ); let fieldType = ""; - if (isOneToMany) { + if (ownerRelation.relationType === "OneToMany") { fieldType = `${ownerColumns[0].tscType}[]`; } else { fieldType = ownerColumns[0].tscType; From f46c0f8ca10b061f8b6edb25d4d1f8a2ad12bf71 Mon Sep 17 00:00:00 2001 From: kononnable Date: Sat, 22 Aug 2020 18:37:43 +0200 Subject: [PATCH 3/3] fix test --- src/drivers/PostgresDriver.ts | 4 +++- test/integration/github-issues/65/entity/PostReader.ts | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/drivers/PostgresDriver.ts b/src/drivers/PostgresDriver.ts index f6fd8fc..c3f4f86 100644 --- a/src/drivers/PostgresDriver.ts +++ b/src/drivers/PostgresDriver.ts @@ -116,7 +116,9 @@ export default class PostgresDriver extends AbstractDriver { if (resp.isunique === "1") options.unique = true; const generated = - resp.isidentity === "YES" || resp.is_identity === "YES" ? true : undefined; + resp.isidentity === "YES" || resp.is_identity === "YES" + ? true + : undefined; const defaultValue = generated ? undefined : PostgresDriver.ReturnDefaultValueFunction( diff --git a/test/integration/github-issues/65/entity/PostReader.ts b/test/integration/github-issues/65/entity/PostReader.ts index 37a0462..0a7663c 100644 --- a/test/integration/github-issues/65/entity/PostReader.ts +++ b/test/integration/github-issues/65/entity/PostReader.ts @@ -26,5 +26,5 @@ export class PostReader { post: Post; @RelationId((postReader: PostReader) => postReader.post) - postId: number[]; + postId: number; }