From fc526ed1e6fefacf4d2f9c3f68f5105643e808b7 Mon Sep 17 00:00:00 2001 From: Marcelo Altmann Date: Thu, 9 May 2024 12:24:44 -0300 Subject: [PATCH] Removed collation from constants module Removed UTF8 and UTF8MB4 collation from the constants module and used the collation module instead. --- src/binlog/mod.rs | 12 +++++++++--- src/packets/mod.rs | 13 ++++++++----- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/binlog/mod.rs b/src/binlog/mod.rs index d230441..bc60a2e 100644 --- a/src/binlog/mod.rs +++ b/src/binlog/mod.rs @@ -323,6 +323,7 @@ mod tests { use crate::{ binlog::{events::RowsEventData, value::BinlogValue}, + collations::CollationID, constants::ColumnFlags, proto::MySerialize, value::Value, @@ -784,9 +785,14 @@ mod tests { assert_eq!(col.flags(), f); } - for (col, charset) in columns.iter().zip([0, 45, 45, 63, 0]) - { - assert_eq!(col.character_set(), charset); + for (col, charset) in columns.iter().zip([ + CollationID::UNKNOWN_COLLATION_ID, + CollationID::UTF8MB4_GENERAL_CI, + CollationID::UTF8MB4_GENERAL_CI, + CollationID::BINARY, + CollationID::UNKNOWN_COLLATION_ID, + ]) { + assert_eq!(col.character_set(), charset as u16); } } } diff --git a/src/packets/mod.rs b/src/packets/mod.rs index ac925a1..63e7ffa 100644 --- a/src/packets/mod.rs +++ b/src/packets/mod.rs @@ -17,11 +17,11 @@ use std::{ borrow::Cow, cmp::max, collections::HashMap, convert::TryFrom, fmt, io, marker::PhantomData, }; +use crate::collations::CollationID; use crate::{ constants::{ CapabilityFlags, ColumnFlags, ColumnType, Command, CursorType, SessionStateType, StatusFlags, StmtExecuteParamFlags, StmtExecuteParamsFlags, MAX_PAYLOAD_LEN, - UTF8MB4_GENERAL_CI, UTF8_GENERAL_CI, }, io::{BufMutExt, ParseBuf}, misc::{ @@ -2030,9 +2030,9 @@ impl<'a> HandshakeResponse<'a> { Self { scramble_buf, collation: if server_version >= (5, 5, 3) { - RawInt::new(UTF8MB4_GENERAL_CI as u8) + RawInt::new(CollationID::UTF8MB4_GENERAL_CI as u8) } else { - RawInt::new(UTF8_GENERAL_CI as u8) + RawInt::new(CollationID::UTF8MB3_GENERAL_CI as u8) }, user: user.map(RawBytes::new).unwrap_or_default(), db_name: db_name.map(RawBytes::new), @@ -3414,7 +3414,7 @@ impl<'de> MyDeserialize<'de> for SemiSyncAckPacket<'de> { mod test { use super::*; use crate::{ - constants::{CapabilityFlags, ColumnFlags, ColumnType, StatusFlags, UTF8_GENERAL_CI}, + constants::{CapabilityFlags, ColumnFlags, ColumnType, StatusFlags}, proto::{MyDeserialize, MySerialize}, }; @@ -3670,7 +3670,10 @@ mod test { assert_eq!(column.org_table_str(), "org_table"); assert_eq!(column.name_str(), "name"); assert_eq!(column.org_name_str(), "org_name"); - assert_eq!(column.character_set(), UTF8_GENERAL_CI); + assert_eq!( + column.character_set(), + CollationID::UTF8MB3_GENERAL_CI as u16 + ); assert_eq!(column.column_length(), 15); assert_eq!(column.column_type(), ColumnType::MYSQL_TYPE_DECIMAL); assert_eq!(column.flags(), ColumnFlags::NOT_NULL_FLAG);