mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-05 21:02:58 +00:00
feat: add tinytext, mediumtext and longtext data types (#3731)
This commit is contained in:
@@ -35,6 +35,7 @@ use crate::statements::{sql_data_type_to_concrete_data_type, TimezoneInfo};
|
||||
/// - `INT32` for `int`
|
||||
/// - `INT64` for `bigint`
|
||||
/// - And `UINT8`, `UINT16` etc. for `UnsignedTinyint` etc.
|
||||
/// - TinyText, MediumText, LongText for `Text`.
|
||||
pub(crate) struct TypeAliasTransformRule;
|
||||
|
||||
impl TransformRule for TypeAliasTransformRule {
|
||||
@@ -158,6 +159,8 @@ pub fn get_data_type_by_alias_name(name: &str) -> Option<DataType> {
|
||||
"UINT64" => Some(DataType::UnsignedBigInt(None)),
|
||||
"FLOAT32" => Some(DataType::Float(None)),
|
||||
"FLOAT64" => Some(DataType::Double),
|
||||
// String type alias
|
||||
"TINYTEXT" | "MEDIUMTEXT" | "LONGTEXT" => Some(DataType::Text),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
@@ -261,6 +264,18 @@ mod tests {
|
||||
get_data_type_by_alias_name("Timestamp_ns"),
|
||||
Some(DataType::Timestamp(Some(9), TimezoneInfo::None))
|
||||
);
|
||||
assert_eq!(
|
||||
get_data_type_by_alias_name("TinyText"),
|
||||
Some(DataType::Text)
|
||||
);
|
||||
assert_eq!(
|
||||
get_data_type_by_alias_name("MediumText"),
|
||||
Some(DataType::Text)
|
||||
);
|
||||
assert_eq!(
|
||||
get_data_type_by_alias_name("LongText"),
|
||||
Some(DataType::Text)
|
||||
);
|
||||
}
|
||||
|
||||
fn test_timestamp_alias(alias: &str, expected: &str) {
|
||||
@@ -303,6 +318,9 @@ mod tests {
|
||||
let sql = r#"
|
||||
CREATE TABLE data_types (
|
||||
s string,
|
||||
tt tinytext,
|
||||
mt mediumtext,
|
||||
lt longtext,
|
||||
tint int8,
|
||||
sint int16,
|
||||
i int32,
|
||||
@@ -329,6 +347,9 @@ CREATE TABLE data_types (
|
||||
Statement::CreateTable(c) => {
|
||||
let expected = r#"CREATE TABLE data_types (
|
||||
s STRING,
|
||||
tt TEXT,
|
||||
mt TEXT,
|
||||
lt TEXT,
|
||||
tint INT8,
|
||||
sint SMALLINT,
|
||||
i INT,
|
||||
|
||||
Reference in New Issue
Block a user