From 29545b62f33f8a61d9bfcc8d345a0af40d2b59a0 Mon Sep 17 00:00:00 2001 From: metacortex <9ruvie@gmail.com> Date: Fri, 10 Mar 2017 04:08:48 +0900 Subject: [PATCH 1/6] Make MYSQL_TYPE_DATETIME packet length to 11 --- src/mysql/types.cr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mysql/types.cr b/src/mysql/types.cr index 47ba1c8..73d8225 100644 --- a/src/mysql/types.cr +++ b/src/mysql/types.cr @@ -159,7 +159,7 @@ abstract struct MySql::Type decl_type Time, 0x0bu8 decl_type DateTime, 0x0cu8, ::Time do def self.write(packet, v : ::Time) - packet.write_blob UInt8.slice(v.year.to_i16, v.year.to_i16/256, v.month.to_i8, v.day.to_i8, v.hour.to_i8, v.minute.to_i8, v.second.to_i8, v.millisecond*1000, v.millisecond*1000/256, v.millisecond*1000/65536) + packet.write_blob UInt8.slice(v.year.to_i16, v.year.to_i16/256, v.month.to_i8, v.day.to_i8, v.hour.to_i8, v.minute.to_i8, v.second.to_i8, v.millisecond*1000, v.millisecond*1000/256, v.millisecond*1000/65536, v.millisecond*1000/65536 v.millisecond*1000/16711425) end def self.read(packet) From 4444843292d9d669f906fc1da0c9db4bea4e982a Mon Sep 17 00:00:00 2001 From: Son Jungwook <9ruvie@gmail.com> Date: Fri, 10 Mar 2017 04:25:40 +0900 Subject: [PATCH 2/6] Fix typo --- src/mysql/types.cr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mysql/types.cr b/src/mysql/types.cr index 73d8225..bd01fb4 100644 --- a/src/mysql/types.cr +++ b/src/mysql/types.cr @@ -159,7 +159,7 @@ abstract struct MySql::Type decl_type Time, 0x0bu8 decl_type DateTime, 0x0cu8, ::Time do def self.write(packet, v : ::Time) - packet.write_blob UInt8.slice(v.year.to_i16, v.year.to_i16/256, v.month.to_i8, v.day.to_i8, v.hour.to_i8, v.minute.to_i8, v.second.to_i8, v.millisecond*1000, v.millisecond*1000/256, v.millisecond*1000/65536, v.millisecond*1000/65536 v.millisecond*1000/16711425) + packet.write_blob UInt8.slice(v.year.to_i16, v.year.to_i16/256, v.month.to_i8, v.day.to_i8, v.hour.to_i8, v.minute.to_i8, v.second.to_i8, v.millisecond*1000, v.millisecond*1000/256, v.millisecond*1000/65536, v.millisecond*1000/65536 v.millisecond*1000/16777216) end def self.read(packet) From 9671705c6caae09aa86523bb94736005f0c6037c Mon Sep 17 00:00:00 2001 From: Son Jungwook <9ruvie@gmail.com> Date: Fri, 10 Mar 2017 04:31:01 +0900 Subject: [PATCH 3/6] Fix another typo - comma --- src/mysql/types.cr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mysql/types.cr b/src/mysql/types.cr index bd01fb4..5b4db30 100644 --- a/src/mysql/types.cr +++ b/src/mysql/types.cr @@ -159,7 +159,7 @@ abstract struct MySql::Type decl_type Time, 0x0bu8 decl_type DateTime, 0x0cu8, ::Time do def self.write(packet, v : ::Time) - packet.write_blob UInt8.slice(v.year.to_i16, v.year.to_i16/256, v.month.to_i8, v.day.to_i8, v.hour.to_i8, v.minute.to_i8, v.second.to_i8, v.millisecond*1000, v.millisecond*1000/256, v.millisecond*1000/65536, v.millisecond*1000/65536 v.millisecond*1000/16777216) + packet.write_blob UInt8.slice(v.year.to_i16, v.year.to_i16/256, v.month.to_i8, v.day.to_i8, v.hour.to_i8, v.minute.to_i8, v.second.to_i8, v.millisecond*1000, v.millisecond*1000/256, v.millisecond*1000/65536, v.millisecond*1000/65536, v.millisecond*1000/16777216) end def self.read(packet) From 4bf7cfcda761740a45048ba5457c9a6c293e376b Mon Sep 17 00:00:00 2001 From: metacortex <9ruvie@gmail.com> Date: Fri, 10 Mar 2017 04:31:12 +0900 Subject: [PATCH 4/6] fix typo --- src/mysql/types.cr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mysql/types.cr b/src/mysql/types.cr index 73d8225..5b4db30 100644 --- a/src/mysql/types.cr +++ b/src/mysql/types.cr @@ -159,7 +159,7 @@ abstract struct MySql::Type decl_type Time, 0x0bu8 decl_type DateTime, 0x0cu8, ::Time do def self.write(packet, v : ::Time) - packet.write_blob UInt8.slice(v.year.to_i16, v.year.to_i16/256, v.month.to_i8, v.day.to_i8, v.hour.to_i8, v.minute.to_i8, v.second.to_i8, v.millisecond*1000, v.millisecond*1000/256, v.millisecond*1000/65536, v.millisecond*1000/65536 v.millisecond*1000/16711425) + packet.write_blob UInt8.slice(v.year.to_i16, v.year.to_i16/256, v.month.to_i8, v.day.to_i8, v.hour.to_i8, v.minute.to_i8, v.second.to_i8, v.millisecond*1000, v.millisecond*1000/256, v.millisecond*1000/65536, v.millisecond*1000/65536, v.millisecond*1000/16777216) end def self.read(packet) From a7d563cd56e1f833e4f062015d8322a17daf1059 Mon Sep 17 00:00:00 2001 From: metacortex <9ruvie@gmail.com> Date: Fri, 31 Mar 2017 23:00:17 +0900 Subject: [PATCH 5/6] fix - duplicated millisec byte --- src/mysql/types.cr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mysql/types.cr b/src/mysql/types.cr index 5b4db30..3a8a4bb 100644 --- a/src/mysql/types.cr +++ b/src/mysql/types.cr @@ -159,7 +159,7 @@ abstract struct MySql::Type decl_type Time, 0x0bu8 decl_type DateTime, 0x0cu8, ::Time do def self.write(packet, v : ::Time) - packet.write_blob UInt8.slice(v.year.to_i16, v.year.to_i16/256, v.month.to_i8, v.day.to_i8, v.hour.to_i8, v.minute.to_i8, v.second.to_i8, v.millisecond*1000, v.millisecond*1000/256, v.millisecond*1000/65536, v.millisecond*1000/65536, v.millisecond*1000/16777216) + packet.write_blob UInt8.slice(v.year.to_i16, v.year.to_i16/256, v.month.to_i8, v.day.to_i8, v.hour.to_i8, v.minute.to_i8, v.second.to_i8, v.millisecond*1000, v.millisecond*1000/256, v.millisecond*1000/65536, v.millisecond*1000/16777216) end def self.read(packet) From 71f4b641a7030f124081f0195d8ab925e59cba0f Mon Sep 17 00:00:00 2001 From: metacortex <9ruvie@gmail.com> Date: Sun, 8 Oct 2017 20:55:13 +0800 Subject: [PATCH 6/6] change default collation to: utf8mb4_general_ci --- src/mysql/packets.cr | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mysql/packets.cr b/src/mysql/packets.cr index ff7e19e..d41fd35 100644 --- a/src/mysql/packets.cr +++ b/src/mysql/packets.cr @@ -72,7 +72,8 @@ module MySql::Protocol packet.write_bytes caps, IO::ByteFormat::LittleEndian packet.write_bytes 0x00000000u32, IO::ByteFormat::LittleEndian - packet.write_byte 0x21u8 # utf8_general_ci + # packet.write_byte 0x21u8 # utf8_general_ci + packet.write_byte 0x2du8 # UTF8MB4_GENERAL_CI 23.times { packet.write_byte 0_u8 } packet << @username