diff --git a/src/packets/parsers/result.ts b/src/packets/parsers/result.ts index adfa1b8..a7644d7 100644 --- a/src/packets/parsers/result.ts +++ b/src/packets/parsers/result.ts @@ -1,26 +1,25 @@ import { BufferReader } from "../../buffer.ts"; import { + MYSQL_TYPE_DATE, + MYSQL_TYPE_DATETIME, + MYSQL_TYPE_DATETIME2, MYSQL_TYPE_DECIMAL, MYSQL_TYPE_DOUBLE, MYSQL_TYPE_FLOAT, - MYSQL_TYPE_DATETIME2, - MYSQL_TYPE_NEWDECIMAL, - MYSQL_TYPE_TINY, - MYSQL_TYPE_SHORT, + MYSQL_TYPE_INT24, MYSQL_TYPE_LONG, MYSQL_TYPE_LONGLONG, - MYSQL_TYPE_INT24, - MYSQL_TYPE_YEAR, - MYSQL_TYPE_VARCHAR, - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_NEWDATE, + MYSQL_TYPE_NEWDECIMAL, + MYSQL_TYPE_SHORT, MYSQL_TYPE_STRING, - MYSQL_TYPE_DATE, - MYSQL_TYPE_TIMESTAMP, MYSQL_TYPE_TIME, - MYSQL_TYPE_DATETIME, - MYSQL_TYPE_NEWDATE, + MYSQL_TYPE_TIME2, + MYSQL_TYPE_TIMESTAMP, MYSQL_TYPE_TIMESTAMP2, - MYSQL_TYPE_TIME2 + MYSQL_TYPE_TINY, + MYSQL_TYPE_VARCHAR, + MYSQL_TYPE_VAR_STRING } from "../../consttants/mysql_types.ts"; /** @ignore */ @@ -86,7 +85,7 @@ export function parseRow(reader: BufferReader, fileds: FieldInfo[]): any { function convertType(field: FieldInfo, val: string): any { const { fieldType, fieldLen } = field; if (fieldType === MYSQL_TYPE_TINY && fieldLen === 1) { - return !!val; + return !!parseInt(val); } switch (fieldType) { case MYSQL_TYPE_DECIMAL: diff --git a/test.ts b/test.ts index e4d6144..f79685e 100644 --- a/test.ts +++ b/test.ts @@ -1,4 +1,7 @@ -import { assertEquals, assertThrowsAsync } from "https://deno.land/x/testing/asserts.ts"; +import { + assertEquals, + assertThrowsAsync +} from "https://deno.land/x/testing/asserts.ts"; import { runTests, test } from "https://deno.land/x/testing/mod.ts"; import { Client } from "./mod.ts"; @@ -14,6 +17,7 @@ test(async function testCreateTable() { CREATE TABLE users ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, + is_top tinyint(1) default 0, created_at timestamp not null default current_timestamp, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -42,12 +46,11 @@ test(async function testUpdate() { }); test(async function testQuery() { - let result = await client.query("select ??,name from ?? where id = ?", [ - "id", - "users", - 1 - ]); - assertEquals(result, [{ id: 1, name: "MYR" }]); + let result = await client.query( + "select ??,`is_top`,`name` from ?? where id = ?", + ["id", "users", 1] + ); + assertEquals(result, [{ id: 1, name: "MYR", is_top: false }]); }); test(async function testQueryErrorOccurred() {