diff --git a/quaint/src/connector/column_type.rs b/quaint/src/connector/column_type.rs index 4e986888e74..f01c7aa7953 100644 --- a/quaint/src/connector/column_type.rs +++ b/quaint/src/connector/column_type.rs @@ -38,8 +38,6 @@ pub enum ColumnType { DateArray, TimeArray, - Null, - Unknown, } @@ -83,7 +81,6 @@ impl std::fmt::Display for ColumnType { ColumnType::DateTimeArray => write!(f, "datetime-array"), ColumnType::DateArray => write!(f, "date-array"), ColumnType::TimeArray => write!(f, "time-array"), - ColumnType::Null => write!(f, "null"), ColumnType::Unknown => write!(f, "unknown"), } diff --git a/quaint/src/connector/mssql/native/column_type.rs b/quaint/src/connector/mssql/native/column_type.rs index 64ed41194e5..a133b883b34 100644 --- a/quaint/src/connector/mssql/native/column_type.rs +++ b/quaint/src/connector/mssql/native/column_type.rs @@ -4,7 +4,7 @@ use tiberius::{Column, ColumnType as MssqlColumnType}; impl From<&Column> for ColumnType { fn from(value: &Column) -> Self { match value.column_type() { - MssqlColumnType::Null => ColumnType::Null, + MssqlColumnType::Null => ColumnType::Unknown, MssqlColumnType::BigVarChar | MssqlColumnType::BigChar @@ -12,7 +12,8 @@ impl From<&Column> for ColumnType { | MssqlColumnType::NChar | MssqlColumnType::Text | MssqlColumnType::NText => ColumnType::Text, - MssqlColumnType::Xml => ColumnType::Text, + + MssqlColumnType::Xml => ColumnType::Xml, MssqlColumnType::Bit | MssqlColumnType::Bitn => ColumnType::Boolean, MssqlColumnType::Int1 | MssqlColumnType::Int2 | MssqlColumnType::Int4 => ColumnType::Int32, diff --git a/quaint/src/tests/types/mssql.rs b/quaint/src/tests/types/mssql.rs index 428dd782384..bd3ce6555a6 100644 --- a/quaint/src/tests/types/mssql.rs +++ b/quaint/src/tests/types/mssql.rs @@ -4,6 +4,7 @@ mod bigdecimal; use crate::macros::assert_matching_value_and_column_type; use crate::{connector::ColumnType, tests::test_api::*}; +use std::str::FromStr; test_type!(nvarchar_limited( mssql, @@ -225,3 +226,19 @@ test_type!(smalldatetime( Value::datetime(dt.with_timezone(&chrono::Utc)) } )); + +test_type!(uuid( + mssql, + "uniqueidentifier", + ColumnType::Uuid, + Value::null_uuid(), + Value::uuid(uuid::Uuid::from_str("936DA01F-9ABD-4D9D-80C7-02AF85C822A8").unwrap()) +)); + +test_type!(xml( + mssql, + "xml", + ColumnType::Xml, + Value::null_xml(), + Value::xml("bar"), +));