From 9b4d2d3ce10dee433e8f48d178971328a8ef8b81 Mon Sep 17 00:00:00 2001 From: Kononnable <kononnable@gmail.com> Date: Sun, 18 Feb 2018 21:50:08 +0100 Subject: [PATCH] support for boolean pseudotype on mysql/mariadb, closes #34 --- src/drivers/MysqlDriver.ts | 23 +++++++++++++------ .../entityTypes/mariadb/entity/Post.ts | 5 ++++ .../entityTypes/mysql/entity/Post.ts | 6 +++++ 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/drivers/MysqlDriver.ts b/src/drivers/MysqlDriver.ts index 455b1fa..68d4d62 100644 --- a/src/drivers/MysqlDriver.ts +++ b/src/drivers/MysqlDriver.ts @@ -91,7 +91,16 @@ export class MysqlDriver extends AbstractDriver { : null; break; case "tinyint": - colInfo.ts_type = "number"; + if (resp.column_type == 'tinyint(1)') { + colInfo.char_max_lenght = 1 + colInfo.ts_type = "boolean"; + } else { + colInfo.char_max_lenght = + resp.CHARACTER_MAXIMUM_LENGTH > 0 + ? resp.CHARACTER_MAXIMUM_LENGTH + : null; + colInfo.ts_type = "number"; + } break; case "smallint": colInfo.ts_type = "number"; @@ -336,7 +345,7 @@ export class MysqlDriver extends AbstractDriver { if (!ownerEntity) { TomgUtils.LogFatalError( `Relation between tables ${relationTmp.ownerTable} and ${ - relationTmp.referencedTable + relationTmp.referencedTable } didn't found entity model ${relationTmp.ownerTable}.` ); return; @@ -347,7 +356,7 @@ export class MysqlDriver extends AbstractDriver { if (!referencedEntity) { TomgUtils.LogFatalError( `Relation between tables ${relationTmp.ownerTable} and ${ - relationTmp.referencedTable + relationTmp.referencedTable } didn't found entity model ${relationTmp.referencedTable}.` ); return; @@ -358,9 +367,9 @@ export class MysqlDriver extends AbstractDriver { if (!ownerColumn) { TomgUtils.LogFatalError( `Relation between tables ${relationTmp.ownerTable} and ${ - relationTmp.referencedTable + relationTmp.referencedTable } didn't found entity column ${ - relationTmp.ownerTable + relationTmp.ownerTable }.${ownerColumn}.` ); return; @@ -371,9 +380,9 @@ export class MysqlDriver extends AbstractDriver { if (!relatedColumn) { TomgUtils.LogFatalError( `Relation between tables ${relationTmp.ownerTable} and ${ - relationTmp.referencedTable + relationTmp.referencedTable } didn't found entity column ${ - relationTmp.referencedTable + relationTmp.referencedTable }.${relatedColumn}.` ); return; diff --git a/test/integration/entityTypes/mariadb/entity/Post.ts b/test/integration/entityTypes/mariadb/entity/Post.ts index 278b302..6010349 100644 --- a/test/integration/entityTypes/mariadb/entity/Post.ts +++ b/test/integration/entityTypes/mariadb/entity/Post.ts @@ -91,4 +91,9 @@ export class Post { // @Column("simple-array") // simpleArray: string[]; + + + @Column("tinyint",{length:1}) + bool: boolean; + } diff --git a/test/integration/entityTypes/mysql/entity/Post.ts b/test/integration/entityTypes/mysql/entity/Post.ts index fdf66b2..35b676d 100644 --- a/test/integration/entityTypes/mysql/entity/Post.ts +++ b/test/integration/entityTypes/mysql/entity/Post.ts @@ -90,4 +90,10 @@ export class Post { // @Column("simple-array") // simpleArray: string[]; + + + + @Column("tinyint",{length:1}) + bool: boolean; + }