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;
+
 }