From 114fb522db8b8dd3092806adcd7a92acb6d3a118 Mon Sep 17 00:00:00 2001 From: fc-anjos Date: Tue, 28 Jul 2026 10:49:01 -0300 Subject: [PATCH] Match Python SQLGlot data type parsing --- scripts/python_type_parity.py | 218 ++ src/ast/types.rs | 258 ++ src/dialects/mod.rs | 23 + src/ffi/semantics.rs | 3 +- src/generator/sql_generator.rs | 1 + src/lib.rs | 5 +- src/parser/data_type_parser.rs | 690 +++++ src/parser/mod.rs | 30 +- src/parser/sql_parser.rs | 13 - tests/fixtures/python_type_parity.jsonl | 3682 +++++++++++++++++++++++ tests/test_data_type_parity.rs | 101 + tests/test_ffi.rs | 30 + 12 files changed, 5035 insertions(+), 19 deletions(-) create mode 100755 scripts/python_type_parity.py create mode 100644 src/parser/data_type_parser.rs create mode 100644 tests/fixtures/python_type_parity.jsonl create mode 100644 tests/test_data_type_parity.rs diff --git a/scripts/python_type_parity.py b/scripts/python_type_parity.py new file mode 100755 index 0000000..e982ece --- /dev/null +++ b/scripts/python_type_parity.py @@ -0,0 +1,218 @@ +#!/usr/bin/env python3 + +import argparse +import json +import subprocess +import sys +from pathlib import Path + + +DIALECTS = [ + "", + "athena", + "bigquery", + "clickhouse", + "databricks", + "doris", + "dremio", + "drill", + "druid", + "duckdb", + "exasol", + "fabric", + "hive", + "materialize", + "mysql", + "oracle", + "postgres", + "presto", + "prql", + "redshift", + "risingwave", + "singlestore", + "snowflake", + "spark", + "sqlite", + "starrocks", + "tableau", + "teradata", + "trino", + "tsql", +] + +GRAMMAR_CASES = { + "": [ + "DECIMAL(38, 9)", + "CHARACTER VARYING(255)", + "DOUBLE PRECISION", + "TIMESTAMP(6) WITH TIME ZONE", + "TIMESTAMP WITHOUT TIME ZONE", + "TIME WITH TIME ZONE", + "INTERVAL YEAR TO MONTH", + "ARRAY>", + "STRUCT>", + "app.custom_type", + '"custom type"', + ], + "bigquery": [ + "ARRAY>", + "NUMERIC(38, 9)", + "BIGNUMERIC(76, 38)", + "RANGE", + "custom_type", + ], + "clickhouse": [ + "Nullable(LowCardinality(String))", + "Tuple(a Int32, b Array(Nullable(UInt64)))", + "Enum8('open' = 1, 'closed' = 2)", + "AggregateFunction(sum, UInt64)", + "SimpleAggregateFunction(sum, UInt64)", + "DateTime64(6, 'UTC')", + "Decimal256(76, 20)", + "JSON(payload String, SKIP metadata)", + ], + "duckdb": [ + "STRUCT(id BIGINT, tags VARCHAR[])", + "MAP(VARCHAR, INTEGER)", + "UNION(number INTEGER, text VARCHAR)", + "TIMESTAMP_NS", + "custom_type[]", + ], + "oracle": [ + "VARCHAR2(255 CHAR)", + "TIMESTAMP(9) WITH LOCAL TIME ZONE", + "INTERVAL DAY(3) TO SECOND(6)", + "APP.CUSTOM_TYPE", + ], + "postgres": [ + "NUMERIC(38, 9)[]", + "TIMESTAMP(6) WITH TIME ZONE", + "BIT VARYING(128)", + "INT ARRAY[3]", + "INTEGER[][]", + "app.custom_type", + "app.custom_type[][]", + 'app."custom type"', + ], + "snowflake": [ + "VECTOR(FLOAT, 768)", + "NUMBER(38, 0)", + "TIMESTAMP_TZ(9)", + "FILE", + ], + "trino": [ + "ROW(id BIGINT, payload MAP(VARCHAR, ARRAY(DECIMAL(38, 9))))", + "TIMESTAMP(6) WITH TIME ZONE", + "IPADDRESS", + ], + "tsql": [ + "NVARCHAR(MAX)", + "DATETIMEOFFSET(7)", + "DECIMAL(38, 9)", + "TIMESTAMP", + "[custom type]", + ], +} + + +def arguments(): + parser = argparse.ArgumentParser() + commands = parser.add_subparsers(dest="command", required=True) + for name, help_text in ( + ("generate", "generate the Python SQLGlot parity fixture"), + ("verify", "verify the committed parity fixture"), + ): + command = commands.add_parser(name, help=help_text) + command.add_argument( + "--sqlglot", + required=True, + type=Path, + help="path to the pinned Python SQLGlot checkout", + ) + command.add_argument( + "--fixture", + required=True, + type=Path, + help="path to the parity JSON Lines fixture", + ) + return parser.parse_args() + + +def expression_kind(expression, exp): + if isinstance(expression, exp.DataType): + if isinstance(expression.this, exp.DType): + return expression.this.name + if isinstance(expression.this, exp.Interval): + return "INTERVAL" + return "USERDEFINED" + if isinstance(expression, (exp.PseudoType, exp.ObjectIdentifier)): + return "USERDEFINED" + return None + + +def generate_fixture(sqlglot): + sys.path.insert(0, str(sqlglot)) + from sqlglot import Dialect, exp + + cases = [] + for name in DIALECTS: + dialect = Dialect.get_or_raise(name) + spellings = [ + spelling + for spelling, token in dialect.tokenizer_class.KEYWORDS.items() + if token in dialect.parser_class.TYPE_TOKENS + ] + spellings.extend(GRAMMAR_CASES.get(name, [])) + + for sql in sorted(set(spellings)): + try: + expression = exp.DataType.from_str( + sql, + dialect=dialect, + udt=dialect.SUPPORTS_USER_DEFINED_TYPES, + ) + expected = expression_kind(expression, exp) + except Exception: + expected = None + + cases.append( + { + "dialect": name or "ansi", + "sql": sql, + "expected": expected, + } + ) + + commit = subprocess.check_output( + ["git", "-C", sqlglot, "rev-parse", "HEAD"], + text=True, + ).strip() + records = [ + { + "source": "tobymao/sqlglot", + "commit": commit, + "cases": len(cases), + } + ] + records.extend(cases) + return "".join( + f"{json.dumps(record, separators=(',', ':'), ensure_ascii=False)}\n" + for record in records + ) + + +def main(): + args = arguments() + fixture = generate_fixture(args.sqlglot) + + if args.command == "generate": + args.fixture.parent.mkdir(parents=True, exist_ok=True) + args.fixture.write_text(fixture) + elif not args.fixture.exists() or args.fixture.read_text() != fixture: + raise SystemExit( + f"{args.fixture} does not match the generated Python SQLGlot parity fixture" + ) + + +if __name__ == "__main__": + main() diff --git a/src/ast/types.rs b/src/ast/types.rs index 04ef755..850bf7f 100644 --- a/src/ast/types.rs +++ b/src/ast/types.rs @@ -1850,6 +1850,202 @@ pub struct DropTableStatement { // Data types // ═══════════════════════════════════════════════════════════════════════ +/// Canonical SQLGlot data-type kinds. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)] +#[serde(rename_all = "SCREAMING_SNAKE_CASE")] +pub enum DataTypeKind { + Array, + #[serde(rename = "AGGREGATEFUNCTION")] + AggregateFunction, + #[serde(rename = "SIMPLEAGGREGATEFUNCTION")] + SimpleAggregateFunction, + #[serde(rename = "BIGDECIMAL")] + BigDecimal, + #[serde(rename = "BIGINT")] + BigInt, + #[serde(rename = "BIGNUM")] + BigNum, + #[serde(rename = "BIGSERIAL")] + BigSerial, + Binary, + Bit, + Blob, + Boolean, + #[serde(rename = "BPCHAR")] + BpChar, + Char, + CharacterSet, + Date, + Date32, + #[serde(rename = "DATEMULTIRANGE")] + DateMultiRange, + #[serde(rename = "DATERANGE")] + DateRange, + #[serde(rename = "DATETIME")] + DateTime, + #[serde(rename = "DATETIME2")] + DateTime2, + #[serde(rename = "DATETIME64")] + DateTime64, + Decimal, + Decimal32, + Decimal64, + Decimal128, + Decimal256, + #[serde(rename = "DECFLOAT")] + DecFloat, + Double, + Dynamic, + Enum, + Enum8, + Enum16, + File, + #[serde(rename = "FIXEDSTRING")] + FixedString, + Float, + Geography, + #[serde(rename = "GEOGRAPHYPOINT")] + GeographyPoint, + Geometry, + Point, + Ring, + #[serde(rename = "LINESTRING")] + LineString, + #[serde(rename = "MULTILINESTRING")] + MultiLineString, + Polygon, + #[serde(rename = "MULTIPOLYGON")] + MultiPolygon, + #[serde(rename = "HLLSKETCH")] + HllSketch, + #[serde(rename = "HSTORE")] + HStore, + Image, + Inet, + Int, + Int128, + Int256, + #[serde(rename = "INT4MULTIRANGE")] + Int4MultiRange, + #[serde(rename = "INT4RANGE")] + Int4Range, + #[serde(rename = "INT8MULTIRANGE")] + Int8MultiRange, + #[serde(rename = "INT8RANGE")] + Int8Range, + Interval, + #[serde(rename = "IPADDRESS")] + IpAddress, + #[serde(rename = "IPPREFIX")] + IpPrefix, + Ipv4, + Ipv6, + Json, + Jsonb, + List, + #[serde(rename = "LONGBLOB")] + LongBlob, + #[serde(rename = "LONGTEXT")] + LongText, + #[serde(rename = "LOWCARDINALITY")] + LowCardinality, + Map, + #[serde(rename = "MEDIUMBLOB")] + MediumBlob, + #[serde(rename = "MEDIUMINT")] + MediumInt, + #[serde(rename = "MEDIUMTEXT")] + MediumText, + Money, + Name, + #[serde(rename = "NCHAR")] + NChar, + Nested, + Nothing, + Null, + #[serde(rename = "NUMMULTIRANGE")] + NumMultiRange, + #[serde(rename = "NUMRANGE")] + NumRange, + Nvarchar, + Object, + Range, + #[serde(rename = "ROWVERSION")] + RowVersion, + Serial, + Set, + #[serde(rename = "SMALLDATETIME")] + SmallDateTime, + #[serde(rename = "SMALLINT")] + SmallInt, + #[serde(rename = "SMALLMONEY")] + SmallMoney, + #[serde(rename = "SMALLSERIAL")] + SmallSerial, + Struct, + Super, + Text, + #[serde(rename = "TINYBLOB")] + TinyBlob, + #[serde(rename = "TINYTEXT")] + TinyText, + Time, + #[serde(rename = "TIMETZ")] + TimeTz, + TimeNs, + Timestamp, + #[serde(rename = "TIMESTAMPNTZ")] + TimestampNtz, + #[serde(rename = "TIMESTAMPLTZ")] + TimestampLtz, + #[serde(rename = "TIMESTAMPTZ")] + TimestampTz, + TimestampS, + TimestampMs, + TimestampNs, + #[serde(rename = "TINYINT")] + TinyInt, + #[serde(rename = "TSMULTIRANGE")] + TsMultiRange, + #[serde(rename = "TSRANGE")] + TsRange, + #[serde(rename = "TSTZMULTIRANGE")] + TstzMultiRange, + #[serde(rename = "TSTZRANGE")] + TstzRange, + #[serde(rename = "UBIGINT")] + UBigInt, + #[serde(rename = "UINT")] + UInt, + #[serde(rename = "UINT128")] + UInt128, + #[serde(rename = "UINT256")] + UInt256, + #[serde(rename = "UMEDIUMINT")] + UMediumInt, + #[serde(rename = "UDECIMAL")] + UDecimal, + #[serde(rename = "UDOUBLE")] + UDouble, + Union, + Unknown, + #[serde(rename = "USERDEFINED")] + UserDefined, + #[serde(rename = "USMALLINT")] + USmallInt, + #[serde(rename = "UTINYINT")] + UTinyInt, + Uuid, + Varbinary, + Varchar, + Variant, + Vector, + Xml, + Year, + #[serde(rename = "TDIGEST")] + TDigest, +} + /// SQL data types. Significantly expanded to match sqlglot's DataType.Type enum. #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub enum DataType { @@ -1952,6 +2148,68 @@ pub enum DataType { Geography, Geometry, Super, + + Dialect { + kind: DataTypeKind, + sql: String, + }, + + UserDefined(String), +} + +impl DataType { + #[must_use] + pub fn kind(&self) -> DataTypeKind { + match self { + Self::TinyInt => DataTypeKind::TinyInt, + Self::SmallInt => DataTypeKind::SmallInt, + Self::SmallSerial => DataTypeKind::SmallSerial, + Self::Int => DataTypeKind::Int, + Self::Serial => DataTypeKind::Serial, + Self::BigInt => DataTypeKind::BigInt, + Self::BigSerial => DataTypeKind::BigSerial, + Self::Float | Self::Real => DataTypeKind::Float, + Self::Double => DataTypeKind::Double, + Self::Decimal { .. } | Self::Numeric { .. } => DataTypeKind::Decimal, + Self::Varchar(_) | Self::VarcharMax | Self::Varchar2(_) => DataTypeKind::Varchar, + Self::Char(_) => DataTypeKind::Char, + Self::Text | Self::String => DataTypeKind::Text, + Self::Binary(_) | Self::Bytes => DataTypeKind::Binary, + Self::Varbinary(_) | Self::Bytea => DataTypeKind::Varbinary, + Self::Blob => DataTypeKind::Blob, + Self::NChar(_) => DataTypeKind::NChar, + Self::NVarchar(_) | Self::NvarcharMax | Self::NVarchar2(_) => DataTypeKind::Nvarchar, + Self::Boolean => DataTypeKind::Boolean, + Self::Date => DataTypeKind::Date, + Self::Time { .. } => DataTypeKind::Time, + Self::Timestamp { with_tz: true, .. } => DataTypeKind::TimestampTz, + Self::Timestamp { with_tz: false, .. } => DataTypeKind::Timestamp, + Self::Interval => DataTypeKind::Interval, + Self::DateTime => DataTypeKind::DateTime, + Self::Json => DataTypeKind::Json, + Self::Jsonb => DataTypeKind::Jsonb, + Self::Uuid => DataTypeKind::Uuid, + Self::Array(_) => DataTypeKind::Array, + Self::Map { .. } => DataTypeKind::Map, + Self::Struct(_) | Self::Tuple(_) => DataTypeKind::Struct, + Self::Null => DataTypeKind::Null, + Self::Unknown(_) => DataTypeKind::Unknown, + Self::Variant => DataTypeKind::Variant, + Self::Object => DataTypeKind::Object, + Self::Xml => DataTypeKind::Xml, + Self::Inet | Self::Cidr => DataTypeKind::Inet, + Self::Macaddr => DataTypeKind::UserDefined, + Self::Bit(_) => DataTypeKind::Bit, + Self::Money => DataTypeKind::Money, + Self::Regclass | Self::Regtype => DataTypeKind::UserDefined, + Self::Hstore => DataTypeKind::HStore, + Self::Geography => DataTypeKind::Geography, + Self::Geometry => DataTypeKind::Geometry, + Self::Super => DataTypeKind::Super, + Self::Dialect { kind, .. } => *kind, + Self::UserDefined(_) => DataTypeKind::UserDefined, + } + } } // ═══════════════════════════════════════════════════════════════════════ diff --git a/src/dialects/mod.rs b/src/dialects/mod.rs index f1a5264..7f8b8fb 100644 --- a/src/dialects/mod.rs +++ b/src/dialects/mod.rs @@ -192,6 +192,29 @@ impl Dialect { ] } + /// Whether schema parsing accepts user-defined data types. + #[must_use] + pub fn supports_user_defined_types(self) -> bool { + matches!( + self, + Dialect::Ansi + | Dialect::Athena + | Dialect::Druid + | Dialect::DuckDb + | Dialect::Fabric + | Dialect::Materialize + | Dialect::Oracle + | Dialect::Postgres + | Dialect::Presto + | Dialect::Prql + | Dialect::RisingWave + | Dialect::Sqlite + | Dialect::Tableau + | Dialect::Teradata + | Dialect::Tsql + ) + } + /// Parse a dialect name (case-insensitive) into a `Dialect`. pub fn from_str(s: &str) -> Option { match s.to_lowercase().as_str() { diff --git a/src/ffi/semantics.rs b/src/ffi/semantics.rs index 372d32a..be6377b 100644 --- a/src/ffi/semantics.rs +++ b/src/ffi/semantics.rs @@ -12,7 +12,6 @@ use crate::dialects::Dialect; use crate::optimizer::lineage::{LineageConfig, LineageGraph, LineageNode, lineage}; use crate::optimizer::qualify_columns::qualify_columns; use crate::optimizer::scope_analysis::{ColumnRef, Scope, ScopeType, Source, build_scope}; -use crate::parser::parse_data_type; use crate::schema::MappingSchema; #[derive(Serialize)] @@ -167,7 +166,7 @@ fn mapping_schema(json: &str, dialect: Dialect) -> Option { .columns .into_iter() .map(|column| { - parse_data_type(&column.data_type, dialect) + crate::parser::parse_schema_data_type(&column.data_type, dialect) .ok() .map(|data_type| (column.name, data_type)) }) diff --git a/src/generator/sql_generator.rs b/src/generator/sql_generator.rs index 06908db..e639964 100644 --- a/src/generator/sql_generator.rs +++ b/src/generator/sql_generator.rs @@ -1750,6 +1750,7 @@ impl Generator { DataType::Geography => self.write("GEOGRAPHY"), DataType::Geometry => self.write("GEOMETRY"), DataType::Super => self.write("SUPER"), + DataType::Dialect { sql, .. } | DataType::UserDefined(sql) => self.write(sql), DataType::Unknown(name) => self.write(name), } } diff --git a/src/lib.rs b/src/lib.rs index b26fe13..234d97a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -119,7 +119,10 @@ pub use optimizer::lineage::{ }; pub use optimizer::pushdown_predicates::pushdown_predicates; pub use optimizer::scope_analysis::{Scope, ScopeType, build_scope, find_all_in_scope}; -pub use parser::{parse, parse_data_type, parse_statements_with_comments, parse_with_comments}; +pub use parser::{ + parse, parse_data_type, parse_data_type_with_udt, parse_statements_with_comments, + parse_with_comments, +}; pub use planner::{Plan, Projection, Step, StepId, plan}; /// Validate that a transformed AST doesn't contain constructs unsupported by the target dialect. diff --git a/src/parser/data_type_parser.rs b/src/parser/data_type_parser.rs new file mode 100644 index 0000000..285b1f1 --- /dev/null +++ b/src/parser/data_type_parser.rs @@ -0,0 +1,690 @@ +use crate::ast::{DataType, DataTypeKind}; +use crate::dialects::Dialect; +use crate::errors::{Result, SqlglotError}; + +const TYPE_ALIASES: &[(&str, DataTypeKind)] = &[ + ("AGGREGATEFUNCTION", DataTypeKind::AggregateFunction), + ( + "SIMPLEAGGREGATEFUNCTION", + DataTypeKind::SimpleAggregateFunction, + ), + ("BIGDECIMAL", DataTypeKind::BigDecimal), + ("BIGNUMERIC", DataTypeKind::BigDecimal), + ("BIGINT", DataTypeKind::BigInt), + ("BIGNUM", DataTypeKind::BigNum), + ("BIT", DataTypeKind::Bit), + ("BOOL", DataTypeKind::Boolean), + ("BOOLEAN", DataTypeKind::Boolean), + ("BYTE", DataTypeKind::TinyInt), + ("BYTEA", DataTypeKind::Varbinary), + ("CHAR VARYING", DataTypeKind::Varchar), + ("CHARACTER", DataTypeKind::Char), + ("CHARACTER VARYING", DataTypeKind::Varchar), + ("CLOB", DataTypeKind::Text), + ("DATE", DataTypeKind::Date), + ("DATEMULTIRANGE", DataTypeKind::DateMultiRange), + ("DATERANGE", DataTypeKind::DateRange), + ("DEC", DataTypeKind::Decimal), + ("DECFLOAT", DataTypeKind::DecFloat), + ("DECIMAL", DataTypeKind::Decimal), + ("DECIMAL128", DataTypeKind::Decimal128), + ("DECIMAL256", DataTypeKind::Decimal256), + ("DECIMAL32", DataTypeKind::Decimal32), + ("DECIMAL64", DataTypeKind::Decimal64), + ("DOUBLE", DataTypeKind::Double), + ("DOUBLE PRECISION", DataTypeKind::Double), + ("ENUM", DataTypeKind::Enum), + ("FIXED", DataTypeKind::Decimal), + ("FLOAT4", DataTypeKind::Float), + ("FLOAT8", DataTypeKind::Double), + ("GEOGRAPHY", DataTypeKind::Geography), + ("GEOMETRY", DataTypeKind::Geometry), + ("HUGEINT", DataTypeKind::Int128), + ("INET", DataTypeKind::Inet), + ("INT", DataTypeKind::Int), + ("INT1", DataTypeKind::TinyInt), + ("INT128", DataTypeKind::Int128), + ("INT16", DataTypeKind::SmallInt), + ("INT2", DataTypeKind::SmallInt), + ("INT256", DataTypeKind::Int256), + ("INT32", DataTypeKind::Int), + ("INT4", DataTypeKind::Int), + ("INT4MULTIRANGE", DataTypeKind::Int4MultiRange), + ("INT4RANGE", DataTypeKind::Int4Range), + ("INT64", DataTypeKind::BigInt), + ("INT8MULTIRANGE", DataTypeKind::Int8MultiRange), + ("INT8RANGE", DataTypeKind::Int8Range), + ("INTEGER", DataTypeKind::Int), + ("INTERVAL", DataTypeKind::Interval), + ("JSON", DataTypeKind::Json), + ("JSONB", DataTypeKind::Jsonb), + ("LIST", DataTypeKind::List), + ("LONG", DataTypeKind::BigInt), + ("LONGBLOB", DataTypeKind::LongBlob), + ("LONGTEXT", DataTypeKind::LongText), + ("LONGVARCHAR", DataTypeKind::Text), + ("MAP", DataTypeKind::Map), + ("MEDIUMBLOB", DataTypeKind::MediumBlob), + ("MEDIUMINT", DataTypeKind::MediumInt), + ("MEDIUMTEXT", DataTypeKind::MediumText), + ("NCHAR", DataTypeKind::NChar), + ("NULL", DataTypeKind::Null), + ("NUMBER", DataTypeKind::Decimal), + ("NUMERIC", DataTypeKind::Decimal), + ("NUMMULTIRANGE", DataTypeKind::NumMultiRange), + ("NUMRANGE", DataTypeKind::NumRange), + ("NVARCHAR", DataTypeKind::Nvarchar), + ("NVARCHAR2", DataTypeKind::Nvarchar), + ("OBJECT", DataTypeKind::Object), + ("RANGE", DataTypeKind::Range), + ("REAL", DataTypeKind::Float), + ("SHORT", DataTypeKind::SmallInt), + ("SMALLINT", DataTypeKind::SmallInt), + ("STR", DataTypeKind::Text), + ("STRING", DataTypeKind::Text), + ("STRUCT", DataTypeKind::Struct), + ("TEXT", DataTypeKind::Text), + ("TIME", DataTypeKind::Time), + ("TIMESTAMPLTZ", DataTypeKind::TimestampLtz), + ("TIMESTAMPNTZ", DataTypeKind::TimestampNtz), + ("TIMESTAMPTZ", DataTypeKind::TimestampTz), + ("TIMESTAMP_LTZ", DataTypeKind::TimestampLtz), + ("TIMESTAMP_NTZ", DataTypeKind::TimestampNtz), + ("TIMETZ", DataTypeKind::TimeTz), + ("TIME_NS", DataTypeKind::TimeNs), + ("TINYBLOB", DataTypeKind::TinyBlob), + ("TINYTEXT", DataTypeKind::TinyText), + ("TSMULTIRANGE", DataTypeKind::TsMultiRange), + ("TSRANGE", DataTypeKind::TsRange), + ("TSTZMULTIRANGE", DataTypeKind::TstzMultiRange), + ("TSTZRANGE", DataTypeKind::TstzRange), + ("UHUGEINT", DataTypeKind::UInt128), + ("UINT", DataTypeKind::UInt), + ("UINT128", DataTypeKind::UInt128), + ("UINT256", DataTypeKind::UInt256), + ("UNION", DataTypeKind::Union), + ("UNKNOWN", DataTypeKind::Unknown), + ("USER-DEFINED", DataTypeKind::UserDefined), + ("UUID", DataTypeKind::Uuid), + ("VARBINARY", DataTypeKind::Varbinary), + ("VARCHAR2", DataTypeKind::Varchar), + ("VARIANT", DataTypeKind::Variant), + ("VECTOR", DataTypeKind::Vector), +]; + +pub(crate) fn parse(sql: &str, dialect: Dialect) -> Result { + let sql = sql.trim(); + if sql.is_empty() { + return parser_error("Expected data type"); + } + + if let Some(inner) = nullable_inner(sql) { + let data_type = parse(inner, dialect)?; + return Ok(DataType::Dialect { + kind: data_type.kind(), + sql: sql.to_string(), + }); + } + + let normalized = normalize_words(sql); + let (mut kind, alias_len) = + longest_alias(&normalized, dialect).ok_or_else(|| SqlglotError::ParserError { + message: format!("Unknown data type '{sql}'"), + })?; + + let tail = normalized[alias_len..].trim_start(); + validate_tail(tail)?; + if let Some(wrapper) = postfix_kind(tail) { + kind = wrapper; + } + kind = apply_modifiers(kind, tail); + + Ok(build_data_type(kind, sql)) +} + +pub(crate) fn parse_schema(sql: &str, dialect: Dialect) -> Result { + parse_with_udt(sql, dialect, dialect.supports_user_defined_types()) +} + +pub(crate) fn parse_with_udt(sql: &str, dialect: Dialect, udt: bool) -> Result { + match parse(sql, dialect) { + Ok(data_type) => Ok(data_type), + Err(_) if udt && valid_user_defined_type(sql) => { + Ok(DataType::UserDefined(sql.trim().to_string())) + } + Err(error) => Err(error), + } +} + +fn longest_alias(sql: &str, dialect: Dialect) -> Option<(DataTypeKind, usize)> { + let mut best = None; + for end in word_ends(sql) { + let spelling = &sql[..end]; + if let Some(kind) = dialect_kind(spelling, dialect).or_else(|| base_kind(spelling)) { + best = Some((kind, end)); + } + } + best +} + +fn base_kind(spelling: &str) -> Option { + let default = match spelling { + "ARRAY" => DataTypeKind::Array, + "BINARY" => DataTypeKind::Binary, + "BLOB" => DataTypeKind::Varbinary, + "BPCHAR" => DataTypeKind::BpChar, + "CHAR" => DataTypeKind::Char, + "DATETIME" => DataTypeKind::DateTime, + "FLOAT" => DataTypeKind::Float, + "INT8" => DataTypeKind::TinyInt, + "TIMESTAMP" => DataTypeKind::Timestamp, + "TINYINT" => DataTypeKind::TinyInt, + "VARCHAR" => DataTypeKind::Varchar, + _ => { + return TYPE_ALIASES + .iter() + .find_map(|(alias, kind)| (*alias == spelling).then_some(*kind)); + } + }; + Some(default) +} + +#[allow(clippy::too_many_lines)] +fn dialect_kind(spelling: &str, dialect: Dialect) -> Option { + use DataTypeKind as K; + use Dialect as D; + + match (spelling, dialect) { + ("BINARY", D::DuckDb) => Some(K::Varbinary), + ("BLOB", D::Doris | D::Mysql | D::SingleStore | D::StarRocks) => Some(K::Blob), + ("BPCHAR" | "CHAR" | "VARCHAR", D::DuckDb) => Some(K::Text), + ("DATETIME", D::BigQuery) => Some(K::Timestamp), + ("DATETIME", D::DuckDb) => Some(K::TimestampNtz), + ("FLOAT", D::Materialize | D::Postgres | D::Redshift | D::RisingWave | D::Snowflake) => { + Some(K::Double) + } + ("INT8", D::DuckDb | D::Materialize | D::Postgres | D::Redshift | D::RisingWave) => { + Some(K::BigInt) + } + ( + "TIMESTAMP", + D::BigQuery | D::Databricks | D::Doris | D::Mysql | D::Spark | D::StarRocks, + ) => Some(K::TimestampTz), + ("TIMESTAMP", D::DuckDb) => Some(K::TimestampNtz), + ("TIMESTAMP", D::Tsql) => Some(K::RowVersion), + ("TINYINT", D::Fabric | D::Tsql) => Some(K::UTinyInt), + + ("ANY TYPE", D::BigQuery) => Some(K::Variant), + ("BYTEINT", D::BigQuery | D::Snowflake) => Some(K::Int), + ("BYTEINT", D::Teradata) => Some(K::SmallInt), + ("BYTES", D::BigQuery) => Some(K::Binary), + ("FLOAT64", D::BigQuery | D::ClickHouse) => Some(K::Double), + ("RECORD", D::BigQuery | D::SingleStore) => Some(K::Struct), + + ("DATE32", D::ClickHouse) => Some(K::Date32), + ("DATETIME64", D::ClickHouse) => Some(K::DateTime64), + ("DYNAMIC", D::ClickHouse) => Some(K::Dynamic), + ("ENUM8", D::ClickHouse) => Some(K::Enum8), + ("ENUM16", D::ClickHouse) => Some(K::Enum16), + ("FIXEDSTRING", D::ClickHouse) => Some(K::FixedString), + ("FLOAT32", D::ClickHouse) => Some(K::Float), + ("IPV4", D::ClickHouse) => Some(K::Ipv4), + ("IPV6", D::ClickHouse) => Some(K::Ipv6), + ("LINESTRING", D::ClickHouse) => Some(K::LineString), + ("LOWCARDINALITY", D::ClickHouse) => Some(K::LowCardinality), + ("MULTILINESTRING", D::ClickHouse) => Some(K::MultiLineString), + ("MULTIPOLYGON", D::ClickHouse) => Some(K::MultiPolygon), + ("NESTED", D::ClickHouse) => Some(K::Nested), + ("NOTHING", D::ClickHouse) => Some(K::Nothing), + ("POINT", D::ClickHouse | D::Materialize | D::Postgres | D::Redshift | D::RisingWave) => { + Some(K::Point) + } + ("POLYGON", D::ClickHouse) => Some(K::Polygon), + ("RING", D::ClickHouse) => Some(K::Ring), + ("TUPLE", D::ClickHouse) => Some(K::Struct), + ("UINT8", D::ClickHouse) => Some(K::UTinyInt), + ("UINT16", D::ClickHouse) => Some(K::USmallInt), + ("UINT32", D::ClickHouse) => Some(K::UInt), + ("UINT64", D::ClickHouse) => Some(K::UBigInt), + + ("VOID", D::Databricks) => Some(K::Null), + ( + "SERIAL", + D::Doris + | D::Materialize + | D::Mysql + | D::Postgres + | D::Redshift + | D::RisingWave + | D::SingleStore + | D::StarRocks, + ) => Some(K::Serial), + ("SET", D::Doris | D::Mysql | D::SingleStore | D::StarRocks) => Some(K::Set), + ("SIGNED" | "SIGNED INTEGER", D::Doris | D::Mysql | D::SingleStore | D::StarRocks) => { + Some(K::BigInt) + } + ("UNSIGNED" | "UNSIGNED INTEGER", D::Doris | D::Mysql | D::SingleStore | D::StarRocks) => { + Some(K::UBigInt) + } + ("YEAR", D::Doris | D::Mysql | D::SingleStore | D::StarRocks) => Some(K::Year), + + ("BITSTRING", D::DuckDb) => Some(K::Bit), + ("LOGICAL", D::DuckDb) => Some(K::Boolean), + ("ROW", D::DuckDb | D::Athena | D::Presto | D::Trino) => Some(K::Struct), + ("SIGNED", D::DuckDb) => Some(K::Int), + ("TIMESTAMP_MS", D::DuckDb) => Some(K::TimestampMs), + ("TIMESTAMP_NS", D::DuckDb) => Some(K::TimestampNs), + ("TIMESTAMP_S", D::DuckDb) => Some(K::TimestampS), + ("TIMESTAMP_US", D::DuckDb) => Some(K::Timestamp), + ("UBIGINT", D::DuckDb) => Some(K::UBigInt), + ("UINTEGER", D::DuckDb) => Some(K::UInt), + ("USMALLINT", D::DuckDb) => Some(K::USmallInt), + ("UTINYINT", D::DuckDb) => Some(K::UTinyInt), + ("LONG VARCHAR", D::Exasol) => Some(K::Text), + + ("DATETIME2", D::Fabric | D::Tsql) => Some(K::DateTime2), + ("DATETIMEOFFSET", D::Fabric | D::Tsql) => Some(K::TimestampTz), + ("IMAGE", D::Fabric | D::Tsql) => Some(K::Image), + ( + "MONEY", + D::Fabric | D::Materialize | D::Postgres | D::Redshift | D::RisingWave | D::Tsql, + ) => Some(K::Money), + ("NTEXT", D::Fabric | D::Tsql) => Some(K::Text), + ("ROWVERSION", D::Fabric | D::Tsql) => Some(K::RowVersion), + ("SMALLDATETIME", D::Fabric | D::Tsql) => Some(K::SmallDateTime), + ("SMALLMONEY", D::Fabric | D::Tsql) => Some(K::SmallMoney), + ("SQL_VARIANT", D::Fabric | D::Tsql) => Some(K::Variant), + ("UNIQUEIDENTIFIER", D::Fabric | D::Tsql) => Some(K::Uuid), + ("UTINYINT", D::Fabric) => Some(K::UTinyInt), + ( + "XML", + D::Fabric | D::Materialize | D::Postgres | D::Redshift | D::RisingWave | D::Tsql, + ) => Some(K::Xml), + + ("BIGSERIAL", D::Materialize | D::Postgres | D::Redshift | D::RisingWave) => { + Some(K::BigSerial) + } + ("HSTORE", D::Materialize | D::Postgres | D::Redshift | D::RisingWave) => Some(K::HStore), + ("NAME", D::Materialize | D::Postgres | D::Redshift | D::RisingWave) => Some(K::Name), + ("SMALLSERIAL", D::Materialize | D::Postgres | D::Redshift | D::RisingWave) => { + Some(K::SmallSerial) + } + ( + "CSTRING" | "OID" | "REGCLASS" | "REGCOLLATION" | "REGCONFIG" | "REGDICTIONARY" + | "REGNAMESPACE" | "REGOPER" | "REGOPERATOR" | "REGPROC" | "REGPROCEDURE" | "REGROLE" + | "REGTYPE", + D::Materialize | D::Postgres | D::Redshift | D::RisingWave, + ) => Some(K::UserDefined), + + ("BINARY_DOUBLE" | "SQL_DOUBLE", D::Oracle | D::Snowflake) => Some(K::Double), + ("BINARY_FLOAT", D::Oracle) => Some(K::Float), + ("BINARY VARYING", D::Redshift) => Some(K::Varbinary), + ("HLLSKETCH", D::Redshift) => Some(K::HllSketch), + ("SUPER", D::Redshift) => Some(K::Super), + ("VARBYTE", D::Redshift) => Some(K::Varbinary), + ("BSON", D::SingleStore) => Some(K::Jsonb), + ("GEOGRAPHYPOINT", D::SingleStore) => Some(K::GeographyPoint), + ("LARGEINT", D::StarRocks) => Some(K::Int128), + ("FILE", D::Snowflake) => Some(K::File), + ("NCHAR VARYING" | "SQL_VARCHAR", D::Snowflake) => Some(K::Varchar), + ("TIMESTAMP_TZ", D::Snowflake) => Some(K::TimestampTz), + ("ST_GEOMETRY", D::Teradata) => Some(K::Geometry), + + ("HYPERLOGLOG", D::Athena | D::Presto | D::Trino) => Some(K::HllSketch), + ("IPADDRESS", D::Athena | D::Presto | D::Trino) => Some(K::IpAddress), + ("IPPREFIX", D::Athena | D::Presto | D::Trino) => Some(K::IpPrefix), + ("TDIGEST", D::Athena | D::Presto | D::Trino) => Some(K::TDigest), + _ => None, + } +} + +fn build_data_type(kind: DataTypeKind, sql: &str) -> DataType { + let (precision, scale) = numeric_parameters(sql); + match kind { + DataTypeKind::TinyInt => DataType::TinyInt, + DataTypeKind::SmallInt => DataType::SmallInt, + DataTypeKind::Int => DataType::Int, + DataTypeKind::BigInt => DataType::BigInt, + DataTypeKind::Float => DataType::Float, + DataTypeKind::Double => DataType::Double, + DataTypeKind::Decimal => DataType::Decimal { precision, scale }, + DataTypeKind::Varchar => DataType::Varchar(precision), + DataTypeKind::Char => DataType::Char(precision), + DataTypeKind::Text => DataType::Text, + DataTypeKind::Binary => DataType::Binary(precision), + DataTypeKind::Varbinary => DataType::Varbinary(precision), + DataTypeKind::Blob => DataType::Blob, + DataTypeKind::NChar => DataType::NChar(precision), + DataTypeKind::Nvarchar => DataType::NVarchar(precision), + DataTypeKind::Boolean => DataType::Boolean, + DataTypeKind::Date => DataType::Date, + DataTypeKind::Time => DataType::Time { precision }, + DataTypeKind::Timestamp => DataType::Timestamp { + precision, + with_tz: false, + }, + DataTypeKind::TimestampTz => DataType::Timestamp { + precision, + with_tz: true, + }, + DataTypeKind::Interval => DataType::Interval, + DataTypeKind::DateTime => DataType::DateTime, + DataTypeKind::Json => DataType::Json, + DataTypeKind::Jsonb => DataType::Jsonb, + DataTypeKind::Uuid => DataType::Uuid, + DataTypeKind::Null => DataType::Null, + DataTypeKind::Variant => DataType::Variant, + DataTypeKind::Object => DataType::Object, + DataTypeKind::Xml => DataType::Xml, + DataTypeKind::Inet => DataType::Inet, + DataTypeKind::Bit => DataType::Bit(precision), + DataTypeKind::Money => DataType::Money, + DataTypeKind::Serial => DataType::Serial, + DataTypeKind::BigSerial => DataType::BigSerial, + DataTypeKind::SmallSerial => DataType::SmallSerial, + DataTypeKind::HStore => DataType::Hstore, + DataTypeKind::Geography => DataType::Geography, + DataTypeKind::Geometry => DataType::Geometry, + DataTypeKind::Super => DataType::Super, + DataTypeKind::Unknown => DataType::Unknown("UNKNOWN".to_string()), + DataTypeKind::UserDefined => DataType::UserDefined(sql.to_string()), + _ => DataType::Dialect { + kind, + sql: sql.to_string(), + }, + } +} + +fn apply_modifiers(kind: DataTypeKind, tail: &str) -> DataTypeKind { + let tail = tail.to_ascii_uppercase(); + if tail.contains("UNSIGNED") { + return match kind { + DataTypeKind::BigInt => DataTypeKind::UBigInt, + DataTypeKind::Int => DataTypeKind::UInt, + DataTypeKind::MediumInt => DataTypeKind::UMediumInt, + DataTypeKind::SmallInt => DataTypeKind::USmallInt, + DataTypeKind::TinyInt => DataTypeKind::UTinyInt, + DataTypeKind::Decimal => DataTypeKind::UDecimal, + DataTypeKind::Double => DataTypeKind::UDouble, + kind => kind, + }; + } + if tail.contains("WITH LOCAL TIME ZONE") { + DataTypeKind::TimestampLtz + } else if tail.contains("WITH TIME ZONE") { + match kind { + DataTypeKind::Time => DataTypeKind::TimeTz, + DataTypeKind::Timestamp => DataTypeKind::TimestampTz, + kind => kind, + } + } else { + kind + } +} + +fn postfix_kind(tail: &str) -> Option { + let mut depth = 0; + let mut word = String::new(); + for c in tail.chars() { + match c { + '(' | '<' => depth += 1, + ')' | '>' => depth -= 1, + '[' if depth == 0 => return Some(DataTypeKind::Array), + '[' => depth += 1, + ']' => depth -= 1, + c if depth == 0 && (c.is_ascii_alphabetic() || c == '_') => { + word.push(c.to_ascii_uppercase()); + } + c if depth == 0 && !word.is_empty() => { + if word == "ARRAY" { + return Some(DataTypeKind::Array); + } + if word == "LIST" { + return Some(DataTypeKind::List); + } + word.clear(); + if !c.is_whitespace() { + continue; + } + } + _ => {} + } + } + match word.as_str() { + "ARRAY" => Some(DataTypeKind::Array), + "LIST" => Some(DataTypeKind::List), + _ => None, + } +} + +fn validate_tail(tail: &str) -> Result<()> { + let mut stack = Vec::new(); + let mut quote = None; + let mut escaped = false; + let mut top_level_words = String::new(); + + for c in tail.chars() { + if let Some(delimiter) = quote { + if escaped { + escaped = false; + } else if c == '\\' { + escaped = true; + } else if c == delimiter { + quote = None; + } + continue; + } + + match c { + '\'' | '"' | '`' => quote = Some(c), + '(' | '<' | '[' => stack.push(c), + ')' => { + if stack.pop() != Some('(') { + return parser_error("Unbalanced data type"); + } + } + '>' => { + if stack.pop() != Some('<') { + return parser_error("Unbalanced data type"); + } + } + ']' => { + if stack.pop() != Some('[') { + return parser_error("Unbalanced data type"); + } + } + ';' => return parser_error("Unexpected statement terminator in data type"), + c if stack.is_empty() && (c.is_ascii_alphabetic() || c == '_') => { + top_level_words.push(c.to_ascii_uppercase()); + } + c if stack.is_empty() && c.is_whitespace() => top_level_words.push(' '), + c if c.is_ascii_alphanumeric() || c.is_whitespace() || "_.,=:+-*/".contains(c) => {} + _ => return parser_error(&format!("Unexpected token '{c}' in data type")), + } + } + + if quote.is_some() || !stack.is_empty() { + return parser_error("Unbalanced data type"); + } + + let words = normalize_words(&top_level_words); + if words.is_empty() || valid_suffix(&words) { + Ok(()) + } else { + parser_error(&format!("Unexpected data type suffix '{words}'")) + } +} + +fn valid_suffix(words: &str) -> bool { + const SUFFIX_WORDS: &[&str] = &[ + "ARRAY", + "BYTE", + "CHAR", + "CHARACTER", + "COLLATE", + "DAY", + "ENCODING", + "FORMAT", + "HOUR", + "LIST", + "LOCAL", + "MINUTE", + "MONTH", + "PRECISION", + "SECOND", + "SET", + "TIME", + "TO", + "UNSIGNED", + "VARYING", + "WITH", + "WITHOUT", + "YEAR", + "ZONE", + ]; + words + .split_whitespace() + .all(|word| SUFFIX_WORDS.contains(&word)) +} + +fn numeric_parameters(sql: &str) -> (Option, Option) { + let Some(start) = sql.find('(') else { + return (None, None); + }; + let Some(end) = sql[start + 1..].find(')') else { + return (None, None); + }; + let values: Vec<_> = sql[start + 1..start + 1 + end] + .split(',') + .map(str::trim) + .collect(); + ( + values.first().and_then(|value| value.parse().ok()), + values.get(1).and_then(|value| value.parse().ok()), + ) +} + +fn normalize_words(sql: &str) -> String { + sql.split_whitespace() + .collect::>() + .join(" ") + .to_ascii_uppercase() +} + +fn word_ends(sql: &str) -> impl Iterator + '_ { + sql.char_indices() + .filter_map(|(index, c)| { + ((c.is_whitespace() || "([<".contains(c)) && index > 0).then_some(index) + }) + .chain(std::iter::once(sql.len())) +} + +fn nullable_inner(sql: &str) -> Option<&str> { + let upper = sql.to_ascii_uppercase(); + if !upper.starts_with("NULLABLE(") || !sql.ends_with(')') { + return None; + } + Some(&sql["NULLABLE(".len()..sql.len() - 1]) +} + +fn valid_user_defined_type(sql: &str) -> bool { + let mut sql = sql.trim(); + while let Some(base) = strip_array_suffix(sql) { + sql = base.trim_end(); + } + if sql.is_empty() { + return false; + } + + sql.split('.').all(valid_identifier) +} + +fn strip_array_suffix(sql: &str) -> Option<&str> { + if !sql.ends_with(']') { + return None; + } + let start = sql.rfind('[')?; + if start == 0 + || !sql[start + 1..sql.len() - 1] + .chars() + .all(|c| c.is_ascii_digit() || c.is_whitespace()) + { + return None; + } + Some(&sql[..start]) +} + +fn valid_identifier(identifier: &str) -> bool { + let identifier = identifier.trim(); + if identifier.len() >= 2 { + let first = identifier.as_bytes()[0] as char; + let last = identifier.as_bytes()[identifier.len() - 1] as char; + if matches!((first, last), ('"', '"') | ('`', '`') | ('[', ']')) { + return !identifier[1..identifier.len() - 1].is_empty(); + } + } + + let mut chars = identifier.chars(); + matches!(chars.next(), Some(c) if c.is_alphabetic() || c == '_') + && chars.all(|c| c.is_alphanumeric() || matches!(c, '_' | '$')) +} + +fn parser_error(message: &str) -> Result { + Err(SqlglotError::ParserError { + message: message.to_string(), + }) +} + +#[cfg(test)] +mod tests { + use super::{parse, parse_schema}; + use crate::ast::{DataType, DataTypeKind}; + use crate::dialects::Dialect; + + #[test] + fn applies_dialect_type_mappings() { + assert_eq!(parse("INT8", Dialect::Postgres).unwrap(), DataType::BigInt); + assert_eq!(parse("INT8", Dialect::Ansi).unwrap(), DataType::TinyInt); + assert_eq!( + parse("TIMESTAMP", Dialect::BigQuery).unwrap().kind(), + DataTypeKind::TimestampTz + ); + assert_eq!( + parse("TIMESTAMP", Dialect::Tsql).unwrap().kind(), + DataTypeKind::RowVersion + ); + } + + #[test] + fn parses_nested_and_parameterized_types() { + assert_eq!( + parse("MAP>", Dialect::Trino) + .unwrap() + .kind(), + DataTypeKind::Map + ); + assert_eq!( + parse("Nullable(LowCardinality(String))", Dialect::ClickHouse) + .unwrap() + .kind(), + DataTypeKind::LowCardinality + ); + assert_eq!( + parse("INTERVAL DAY(3) TO SECOND(6)", Dialect::Oracle) + .unwrap() + .kind(), + DataTypeKind::Interval + ); + } + + #[test] + fn distinguishes_user_defined_types_from_invalid_builtins() { + assert!(matches!( + parse_schema("app.custom_type", Dialect::Postgres).unwrap(), + DataType::UserDefined(_) + )); + assert!(parse_schema("custom_type", Dialect::BigQuery).is_err()); + assert!(parse("INTEGER nonsense", Dialect::Postgres).is_err()); + assert!(parse("ARRAY Result { /// Returns a [`SqlglotError`](crate::errors::SqlglotError) if the input is not /// a valid data type or contains trailing tokens. pub fn parse_data_type(sql: &str, dialect: Dialect) -> Result { - let mut parser = Parser::new_with_bracket_identifiers(sql, is_tsql_family(dialect))?; - parser.parse_data_type_expression() + data_type_parser::parse(sql, dialect) +} + +/// Parse a standalone SQL data type, falling back to a user-defined type for a +/// valid unrecognized type name. +/// +/// # Errors +/// +/// Returns a [`SqlglotError`](crate::errors::SqlglotError) if the input cannot +/// be parsed and is not a valid user-defined name. +pub fn parse_data_type_with_udt(sql: &str, dialect: Dialect) -> Result { + data_type_parser::parse_with_udt(sql, dialect, true) +} + +pub(crate) fn parse_schema_data_type(sql: &str, dialect: Dialect) -> Result { + data_type_parser::parse_schema(sql, dialect) } /// Parse a SQL string into a [`Statement`] AST, preserving SQL comments. @@ -67,7 +82,7 @@ pub fn parse_statements_with_comments(sql: &str, dialect: Dialect) -> Result Result { - let data_type = self.parse_data_type()?; - if self.peek_type() != &TokenType::Eof { - return Err(SqlglotError::ParserError { - message: format!( - "Expected end of data type, got {:?}", - self.peek().token_type - ), - }); - } - Ok(data_type) - } - // ── Comment helpers ──────────────────────────────────────────── /// Consume any comment tokens at the current position, accumulating diff --git a/tests/fixtures/python_type_parity.jsonl b/tests/fixtures/python_type_parity.jsonl new file mode 100644 index 0000000..cf1ea5b --- /dev/null +++ b/tests/fixtures/python_type_parity.jsonl @@ -0,0 +1,3682 @@ +{"source":"tobymao/sqlglot","commit":"6b12cb8444816377fe7eb8b27d492fc117e3409b","cases":3681} +{"dialect":"ansi","sql":"\"custom type\"","expected":"USERDEFINED"} +{"dialect":"ansi","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"ansi","sql":"ARRAY>","expected":"ARRAY"} +{"dialect":"ansi","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"ansi","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"ansi","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"ansi","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"ansi","sql":"BINARY","expected":"BINARY"} +{"dialect":"ansi","sql":"BIT","expected":"BIT"} +{"dialect":"ansi","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"ansi","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"ansi","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"ansi","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"ansi","sql":"BYTE","expected":"TINYINT"} +{"dialect":"ansi","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"ansi","sql":"CHAR","expected":"CHAR"} +{"dialect":"ansi","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"ansi","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"ansi","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"ansi","sql":"CHARACTER VARYING(255)","expected":"VARCHAR"} +{"dialect":"ansi","sql":"CLOB","expected":"TEXT"} +{"dialect":"ansi","sql":"DATE","expected":"DATE"} +{"dialect":"ansi","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"ansi","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"ansi","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"ansi","sql":"DEC","expected":"DECIMAL"} +{"dialect":"ansi","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"ansi","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"ansi","sql":"DECIMAL(38, 9)","expected":"DECIMAL"} +{"dialect":"ansi","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"ansi","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"ansi","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"ansi","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"ansi","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"ansi","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"ansi","sql":"ENUM","expected":"ENUM"} +{"dialect":"ansi","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"ansi","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"ansi","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"ansi","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"ansi","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"ansi","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"ansi","sql":"HUGEINT","expected":"INT128"} +{"dialect":"ansi","sql":"INET","expected":"INET"} +{"dialect":"ansi","sql":"INT","expected":"INT"} +{"dialect":"ansi","sql":"INT1","expected":"TINYINT"} +{"dialect":"ansi","sql":"INT128","expected":"INT128"} +{"dialect":"ansi","sql":"INT16","expected":"SMALLINT"} +{"dialect":"ansi","sql":"INT2","expected":"SMALLINT"} +{"dialect":"ansi","sql":"INT256","expected":"INT256"} +{"dialect":"ansi","sql":"INT32","expected":"INT"} +{"dialect":"ansi","sql":"INT4","expected":"INT"} +{"dialect":"ansi","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"ansi","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"ansi","sql":"INT64","expected":"BIGINT"} +{"dialect":"ansi","sql":"INT8","expected":"TINYINT"} +{"dialect":"ansi","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"ansi","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"ansi","sql":"INTEGER","expected":"INT"} +{"dialect":"ansi","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"ansi","sql":"INTERVAL YEAR TO MONTH","expected":"INTERVAL"} +{"dialect":"ansi","sql":"JSON","expected":"JSON"} +{"dialect":"ansi","sql":"JSONB","expected":"JSONB"} +{"dialect":"ansi","sql":"LIST","expected":"LIST"} +{"dialect":"ansi","sql":"LONG","expected":"BIGINT"} +{"dialect":"ansi","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"ansi","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"ansi","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"ansi","sql":"MAP","expected":"MAP"} +{"dialect":"ansi","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"ansi","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"ansi","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"ansi","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"ansi","sql":"NULL","expected":"NULL"} +{"dialect":"ansi","sql":"NULLABLE","expected":"USERDEFINED"} +{"dialect":"ansi","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"ansi","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"ansi","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"ansi","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"ansi","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"ansi","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"ansi","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"ansi","sql":"RANGE","expected":"RANGE"} +{"dialect":"ansi","sql":"REAL","expected":"FLOAT"} +{"dialect":"ansi","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"ansi","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"ansi","sql":"STR","expected":"TEXT"} +{"dialect":"ansi","sql":"STRING","expected":"TEXT"} +{"dialect":"ansi","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"ansi","sql":"STRUCT>","expected":"STRUCT"} +{"dialect":"ansi","sql":"TEXT","expected":"TEXT"} +{"dialect":"ansi","sql":"TIME","expected":"TIME"} +{"dialect":"ansi","sql":"TIME WITH TIME ZONE","expected":"TIMETZ"} +{"dialect":"ansi","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"ansi","sql":"TIMESTAMP WITHOUT TIME ZONE","expected":"TIMESTAMP"} +{"dialect":"ansi","sql":"TIMESTAMP(6) WITH TIME ZONE","expected":"TIMESTAMPTZ"} +{"dialect":"ansi","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"ansi","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"ansi","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"ansi","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"ansi","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"ansi","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"ansi","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"ansi","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"ansi","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"ansi","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"ansi","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"ansi","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"ansi","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"ansi","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"ansi","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"ansi","sql":"UINT","expected":"UINT"} +{"dialect":"ansi","sql":"UINT128","expected":"UINT128"} +{"dialect":"ansi","sql":"UINT256","expected":"UINT256"} +{"dialect":"ansi","sql":"UNION","expected":"UNION"} +{"dialect":"ansi","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"ansi","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"ansi","sql":"UUID","expected":"UUID"} +{"dialect":"ansi","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"ansi","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"ansi","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"ansi","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"ansi","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"ansi","sql":"app.custom_type","expected":"USERDEFINED"} +{"dialect":"athena","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"athena","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"athena","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"athena","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"athena","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"athena","sql":"BINARY","expected":"BINARY"} +{"dialect":"athena","sql":"BIT","expected":"BIT"} +{"dialect":"athena","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"athena","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"athena","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"athena","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"athena","sql":"BYTE","expected":"TINYINT"} +{"dialect":"athena","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"athena","sql":"CHAR","expected":"CHAR"} +{"dialect":"athena","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"athena","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"athena","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"athena","sql":"CLOB","expected":"TEXT"} +{"dialect":"athena","sql":"DATE","expected":"DATE"} +{"dialect":"athena","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"athena","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"athena","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"athena","sql":"DEC","expected":"DECIMAL"} +{"dialect":"athena","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"athena","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"athena","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"athena","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"athena","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"athena","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"athena","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"athena","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"athena","sql":"ENUM","expected":"ENUM"} +{"dialect":"athena","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"athena","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"athena","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"athena","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"athena","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"athena","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"athena","sql":"HUGEINT","expected":"INT128"} +{"dialect":"athena","sql":"HYPERLOGLOG","expected":"HLLSKETCH"} +{"dialect":"athena","sql":"INET","expected":"INET"} +{"dialect":"athena","sql":"INT","expected":"INT"} +{"dialect":"athena","sql":"INT1","expected":"TINYINT"} +{"dialect":"athena","sql":"INT128","expected":"INT128"} +{"dialect":"athena","sql":"INT16","expected":"SMALLINT"} +{"dialect":"athena","sql":"INT2","expected":"SMALLINT"} +{"dialect":"athena","sql":"INT256","expected":"INT256"} +{"dialect":"athena","sql":"INT32","expected":"INT"} +{"dialect":"athena","sql":"INT4","expected":"INT"} +{"dialect":"athena","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"athena","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"athena","sql":"INT64","expected":"BIGINT"} +{"dialect":"athena","sql":"INT8","expected":"TINYINT"} +{"dialect":"athena","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"athena","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"athena","sql":"INTEGER","expected":"INT"} +{"dialect":"athena","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"athena","sql":"IPADDRESS","expected":"IPADDRESS"} +{"dialect":"athena","sql":"IPPREFIX","expected":"IPPREFIX"} +{"dialect":"athena","sql":"JSON","expected":"JSON"} +{"dialect":"athena","sql":"JSONB","expected":"JSONB"} +{"dialect":"athena","sql":"LIST","expected":"LIST"} +{"dialect":"athena","sql":"LONG","expected":"BIGINT"} +{"dialect":"athena","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"athena","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"athena","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"athena","sql":"MAP","expected":"MAP"} +{"dialect":"athena","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"athena","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"athena","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"athena","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"athena","sql":"NULL","expected":"NULL"} +{"dialect":"athena","sql":"NULLABLE","expected":"USERDEFINED"} +{"dialect":"athena","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"athena","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"athena","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"athena","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"athena","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"athena","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"athena","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"athena","sql":"RANGE","expected":"RANGE"} +{"dialect":"athena","sql":"REAL","expected":"FLOAT"} +{"dialect":"athena","sql":"ROW","expected":"STRUCT"} +{"dialect":"athena","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"athena","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"athena","sql":"STR","expected":"TEXT"} +{"dialect":"athena","sql":"STRING","expected":"TEXT"} +{"dialect":"athena","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"athena","sql":"TDIGEST","expected":"TDIGEST"} +{"dialect":"athena","sql":"TEXT","expected":"TEXT"} +{"dialect":"athena","sql":"TIME","expected":"TIME"} +{"dialect":"athena","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"athena","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"athena","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"athena","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"athena","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"athena","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"athena","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"athena","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"athena","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"athena","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"athena","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"athena","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"athena","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"athena","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"athena","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"athena","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"athena","sql":"UINT","expected":"UINT"} +{"dialect":"athena","sql":"UINT128","expected":"UINT128"} +{"dialect":"athena","sql":"UINT256","expected":"UINT256"} +{"dialect":"athena","sql":"UNION","expected":"UNION"} +{"dialect":"athena","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"athena","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"athena","sql":"UUID","expected":"UUID"} +{"dialect":"athena","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"athena","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"athena","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"athena","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"athena","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"bigquery","sql":"ANY TYPE","expected":"VARIANT"} +{"dialect":"bigquery","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"bigquery","sql":"ARRAY>","expected":"ARRAY"} +{"dialect":"bigquery","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"bigquery","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"bigquery","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"bigquery","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"bigquery","sql":"BIGNUMERIC(76, 38)","expected":"BIGDECIMAL"} +{"dialect":"bigquery","sql":"BINARY","expected":"BINARY"} +{"dialect":"bigquery","sql":"BIT","expected":"BIT"} +{"dialect":"bigquery","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"bigquery","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"bigquery","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"bigquery","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"bigquery","sql":"BYTE","expected":"TINYINT"} +{"dialect":"bigquery","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"bigquery","sql":"BYTEINT","expected":"INT"} +{"dialect":"bigquery","sql":"BYTES","expected":"BINARY"} +{"dialect":"bigquery","sql":"CHAR","expected":"CHAR"} +{"dialect":"bigquery","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"bigquery","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"bigquery","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"bigquery","sql":"CLOB","expected":"TEXT"} +{"dialect":"bigquery","sql":"DATE","expected":"DATE"} +{"dialect":"bigquery","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"bigquery","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"bigquery","sql":"DATETIME","expected":"TIMESTAMP"} +{"dialect":"bigquery","sql":"DEC","expected":"DECIMAL"} +{"dialect":"bigquery","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"bigquery","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"bigquery","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"bigquery","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"bigquery","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"bigquery","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"bigquery","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"bigquery","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"bigquery","sql":"ENUM","expected":"ENUM"} +{"dialect":"bigquery","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"bigquery","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"bigquery","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"bigquery","sql":"FLOAT64","expected":"DOUBLE"} +{"dialect":"bigquery","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"bigquery","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"bigquery","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"bigquery","sql":"HUGEINT","expected":"INT128"} +{"dialect":"bigquery","sql":"INET","expected":"INET"} +{"dialect":"bigquery","sql":"INT","expected":"INT"} +{"dialect":"bigquery","sql":"INT1","expected":"TINYINT"} +{"dialect":"bigquery","sql":"INT128","expected":"INT128"} +{"dialect":"bigquery","sql":"INT16","expected":"SMALLINT"} +{"dialect":"bigquery","sql":"INT2","expected":"SMALLINT"} +{"dialect":"bigquery","sql":"INT256","expected":"INT256"} +{"dialect":"bigquery","sql":"INT32","expected":"INT"} +{"dialect":"bigquery","sql":"INT4","expected":"INT"} +{"dialect":"bigquery","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"bigquery","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"bigquery","sql":"INT64","expected":"BIGINT"} +{"dialect":"bigquery","sql":"INT8","expected":"TINYINT"} +{"dialect":"bigquery","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"bigquery","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"bigquery","sql":"INTEGER","expected":"INT"} +{"dialect":"bigquery","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"bigquery","sql":"JSON","expected":"JSON"} +{"dialect":"bigquery","sql":"JSONB","expected":"JSONB"} +{"dialect":"bigquery","sql":"LIST","expected":"LIST"} +{"dialect":"bigquery","sql":"LONG","expected":"BIGINT"} +{"dialect":"bigquery","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"bigquery","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"bigquery","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"bigquery","sql":"MAP","expected":"MAP"} +{"dialect":"bigquery","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"bigquery","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"bigquery","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"bigquery","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"bigquery","sql":"NULL","expected":"NULL"} +{"dialect":"bigquery","sql":"NULLABLE","expected":null} +{"dialect":"bigquery","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"bigquery","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"bigquery","sql":"NUMERIC(38, 9)","expected":"DECIMAL"} +{"dialect":"bigquery","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"bigquery","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"bigquery","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"bigquery","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"bigquery","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"bigquery","sql":"RANGE","expected":"RANGE"} +{"dialect":"bigquery","sql":"RANGE","expected":"RANGE"} +{"dialect":"bigquery","sql":"REAL","expected":"FLOAT"} +{"dialect":"bigquery","sql":"RECORD","expected":"STRUCT"} +{"dialect":"bigquery","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"bigquery","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"bigquery","sql":"STR","expected":"TEXT"} +{"dialect":"bigquery","sql":"STRING","expected":"TEXT"} +{"dialect":"bigquery","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"bigquery","sql":"TEXT","expected":"TEXT"} +{"dialect":"bigquery","sql":"TIME","expected":"TIME"} +{"dialect":"bigquery","sql":"TIMESTAMP","expected":"TIMESTAMPTZ"} +{"dialect":"bigquery","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"bigquery","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"bigquery","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"bigquery","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"bigquery","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"bigquery","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"bigquery","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"bigquery","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"bigquery","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"bigquery","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"bigquery","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"bigquery","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"bigquery","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"bigquery","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"bigquery","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"bigquery","sql":"UINT","expected":"UINT"} +{"dialect":"bigquery","sql":"UINT128","expected":"UINT128"} +{"dialect":"bigquery","sql":"UINT256","expected":"UINT256"} +{"dialect":"bigquery","sql":"UNION","expected":"UNION"} +{"dialect":"bigquery","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"bigquery","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"bigquery","sql":"UUID","expected":"UUID"} +{"dialect":"bigquery","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"bigquery","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"bigquery","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"bigquery","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"bigquery","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"bigquery","sql":"custom_type","expected":null} +{"dialect":"clickhouse","sql":"AGGREGATEFUNCTION","expected":"AGGREGATEFUNCTION"} +{"dialect":"clickhouse","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"clickhouse","sql":"AggregateFunction(sum, UInt64)","expected":"AGGREGATEFUNCTION"} +{"dialect":"clickhouse","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"clickhouse","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"clickhouse","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"clickhouse","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"clickhouse","sql":"BINARY","expected":"BINARY"} +{"dialect":"clickhouse","sql":"BIT","expected":"BIT"} +{"dialect":"clickhouse","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"clickhouse","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"clickhouse","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"clickhouse","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"clickhouse","sql":"BYTE","expected":"TINYINT"} +{"dialect":"clickhouse","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"clickhouse","sql":"CHAR","expected":"CHAR"} +{"dialect":"clickhouse","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"clickhouse","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"clickhouse","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"clickhouse","sql":"CLOB","expected":"TEXT"} +{"dialect":"clickhouse","sql":"DATE","expected":"DATE"} +{"dialect":"clickhouse","sql":"DATE32","expected":"DATE32"} +{"dialect":"clickhouse","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"clickhouse","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"clickhouse","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"clickhouse","sql":"DATETIME64","expected":"DATETIME64"} +{"dialect":"clickhouse","sql":"DEC","expected":"DECIMAL"} +{"dialect":"clickhouse","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"clickhouse","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"clickhouse","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"clickhouse","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"clickhouse","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"clickhouse","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"clickhouse","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"clickhouse","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"clickhouse","sql":"DYNAMIC","expected":"DYNAMIC"} +{"dialect":"clickhouse","sql":"DateTime64(6, 'UTC')","expected":"DATETIME64"} +{"dialect":"clickhouse","sql":"Decimal256(76, 20)","expected":"DECIMAL256"} +{"dialect":"clickhouse","sql":"ENUM","expected":"ENUM"} +{"dialect":"clickhouse","sql":"ENUM16","expected":"ENUM16"} +{"dialect":"clickhouse","sql":"ENUM8","expected":"ENUM8"} +{"dialect":"clickhouse","sql":"Enum8('open' = 1, 'closed' = 2)","expected":"ENUM8"} +{"dialect":"clickhouse","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"clickhouse","sql":"FIXEDSTRING","expected":"FIXEDSTRING"} +{"dialect":"clickhouse","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"clickhouse","sql":"FLOAT32","expected":"FLOAT"} +{"dialect":"clickhouse","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"clickhouse","sql":"FLOAT64","expected":"DOUBLE"} +{"dialect":"clickhouse","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"clickhouse","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"clickhouse","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"clickhouse","sql":"HUGEINT","expected":"INT128"} +{"dialect":"clickhouse","sql":"INET","expected":"INET"} +{"dialect":"clickhouse","sql":"INT","expected":"INT"} +{"dialect":"clickhouse","sql":"INT1","expected":"TINYINT"} +{"dialect":"clickhouse","sql":"INT128","expected":"INT128"} +{"dialect":"clickhouse","sql":"INT16","expected":"SMALLINT"} +{"dialect":"clickhouse","sql":"INT2","expected":"SMALLINT"} +{"dialect":"clickhouse","sql":"INT256","expected":"INT256"} +{"dialect":"clickhouse","sql":"INT32","expected":"INT"} +{"dialect":"clickhouse","sql":"INT4","expected":"INT"} +{"dialect":"clickhouse","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"clickhouse","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"clickhouse","sql":"INT64","expected":"BIGINT"} +{"dialect":"clickhouse","sql":"INT8","expected":"TINYINT"} +{"dialect":"clickhouse","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"clickhouse","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"clickhouse","sql":"INTEGER","expected":"INT"} +{"dialect":"clickhouse","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"clickhouse","sql":"IPV4","expected":"IPV4"} +{"dialect":"clickhouse","sql":"IPV6","expected":"IPV6"} +{"dialect":"clickhouse","sql":"JSON","expected":"JSON"} +{"dialect":"clickhouse","sql":"JSON(payload String, SKIP metadata)","expected":"JSON"} +{"dialect":"clickhouse","sql":"JSONB","expected":"JSONB"} +{"dialect":"clickhouse","sql":"LINESTRING","expected":"LINESTRING"} +{"dialect":"clickhouse","sql":"LIST","expected":"LIST"} +{"dialect":"clickhouse","sql":"LONG","expected":"BIGINT"} +{"dialect":"clickhouse","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"clickhouse","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"clickhouse","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"clickhouse","sql":"LOWCARDINALITY","expected":"LOWCARDINALITY"} +{"dialect":"clickhouse","sql":"MAP","expected":"MAP"} +{"dialect":"clickhouse","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"clickhouse","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"clickhouse","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"clickhouse","sql":"MULTILINESTRING","expected":"MULTILINESTRING"} +{"dialect":"clickhouse","sql":"MULTIPOLYGON","expected":"MULTIPOLYGON"} +{"dialect":"clickhouse","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"clickhouse","sql":"NESTED","expected":"NESTED"} +{"dialect":"clickhouse","sql":"NOTHING","expected":"NOTHING"} +{"dialect":"clickhouse","sql":"NULL","expected":"NULL"} +{"dialect":"clickhouse","sql":"NULLABLE","expected":null} +{"dialect":"clickhouse","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"clickhouse","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"clickhouse","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"clickhouse","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"clickhouse","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"clickhouse","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"clickhouse","sql":"Nullable(LowCardinality(String))","expected":"LOWCARDINALITY"} +{"dialect":"clickhouse","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"clickhouse","sql":"POINT","expected":"POINT"} +{"dialect":"clickhouse","sql":"POLYGON","expected":"POLYGON"} +{"dialect":"clickhouse","sql":"RANGE","expected":"RANGE"} +{"dialect":"clickhouse","sql":"REAL","expected":"FLOAT"} +{"dialect":"clickhouse","sql":"RING","expected":"RING"} +{"dialect":"clickhouse","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"clickhouse","sql":"SIMPLEAGGREGATEFUNCTION","expected":"SIMPLEAGGREGATEFUNCTION"} +{"dialect":"clickhouse","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"clickhouse","sql":"STR","expected":"TEXT"} +{"dialect":"clickhouse","sql":"STRING","expected":"TEXT"} +{"dialect":"clickhouse","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"clickhouse","sql":"SimpleAggregateFunction(sum, UInt64)","expected":"SIMPLEAGGREGATEFUNCTION"} +{"dialect":"clickhouse","sql":"TEXT","expected":"TEXT"} +{"dialect":"clickhouse","sql":"TIME","expected":"TIME"} +{"dialect":"clickhouse","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"clickhouse","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"clickhouse","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"clickhouse","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"clickhouse","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"clickhouse","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"clickhouse","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"clickhouse","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"clickhouse","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"clickhouse","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"clickhouse","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"clickhouse","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"clickhouse","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"clickhouse","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"clickhouse","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"clickhouse","sql":"TUPLE","expected":"STRUCT"} +{"dialect":"clickhouse","sql":"Tuple(a Int32, b Array(Nullable(UInt64)))","expected":"STRUCT"} +{"dialect":"clickhouse","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"clickhouse","sql":"UINT","expected":"UINT"} +{"dialect":"clickhouse","sql":"UINT128","expected":"UINT128"} +{"dialect":"clickhouse","sql":"UINT16","expected":"USMALLINT"} +{"dialect":"clickhouse","sql":"UINT256","expected":"UINT256"} +{"dialect":"clickhouse","sql":"UINT32","expected":"UINT"} +{"dialect":"clickhouse","sql":"UINT64","expected":"UBIGINT"} +{"dialect":"clickhouse","sql":"UINT8","expected":"UTINYINT"} +{"dialect":"clickhouse","sql":"UNION","expected":"UNION"} +{"dialect":"clickhouse","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"clickhouse","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"clickhouse","sql":"UUID","expected":"UUID"} +{"dialect":"clickhouse","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"clickhouse","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"clickhouse","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"clickhouse","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"clickhouse","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"databricks","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"databricks","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"databricks","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"databricks","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"databricks","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"databricks","sql":"BINARY","expected":"BINARY"} +{"dialect":"databricks","sql":"BIT","expected":"BIT"} +{"dialect":"databricks","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"databricks","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"databricks","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"databricks","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"databricks","sql":"BYTE","expected":"TINYINT"} +{"dialect":"databricks","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"databricks","sql":"CHAR","expected":"CHAR"} +{"dialect":"databricks","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"databricks","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"databricks","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"databricks","sql":"CLOB","expected":"TEXT"} +{"dialect":"databricks","sql":"DATE","expected":"DATE"} +{"dialect":"databricks","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"databricks","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"databricks","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"databricks","sql":"DEC","expected":"DECIMAL"} +{"dialect":"databricks","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"databricks","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"databricks","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"databricks","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"databricks","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"databricks","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"databricks","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"databricks","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"databricks","sql":"ENUM","expected":"ENUM"} +{"dialect":"databricks","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"databricks","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"databricks","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"databricks","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"databricks","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"databricks","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"databricks","sql":"HUGEINT","expected":"INT128"} +{"dialect":"databricks","sql":"INET","expected":"INET"} +{"dialect":"databricks","sql":"INT","expected":"INT"} +{"dialect":"databricks","sql":"INT1","expected":"TINYINT"} +{"dialect":"databricks","sql":"INT128","expected":"INT128"} +{"dialect":"databricks","sql":"INT16","expected":"SMALLINT"} +{"dialect":"databricks","sql":"INT2","expected":"SMALLINT"} +{"dialect":"databricks","sql":"INT256","expected":"INT256"} +{"dialect":"databricks","sql":"INT32","expected":"INT"} +{"dialect":"databricks","sql":"INT4","expected":"INT"} +{"dialect":"databricks","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"databricks","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"databricks","sql":"INT64","expected":"BIGINT"} +{"dialect":"databricks","sql":"INT8","expected":"TINYINT"} +{"dialect":"databricks","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"databricks","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"databricks","sql":"INTEGER","expected":"INT"} +{"dialect":"databricks","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"databricks","sql":"JSON","expected":"JSON"} +{"dialect":"databricks","sql":"JSONB","expected":"JSONB"} +{"dialect":"databricks","sql":"LIST","expected":"LIST"} +{"dialect":"databricks","sql":"LONG","expected":"BIGINT"} +{"dialect":"databricks","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"databricks","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"databricks","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"databricks","sql":"MAP","expected":"MAP"} +{"dialect":"databricks","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"databricks","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"databricks","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"databricks","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"databricks","sql":"NULL","expected":"NULL"} +{"dialect":"databricks","sql":"NULLABLE","expected":null} +{"dialect":"databricks","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"databricks","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"databricks","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"databricks","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"databricks","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"databricks","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"databricks","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"databricks","sql":"RANGE","expected":"RANGE"} +{"dialect":"databricks","sql":"REAL","expected":"FLOAT"} +{"dialect":"databricks","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"databricks","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"databricks","sql":"STR","expected":"TEXT"} +{"dialect":"databricks","sql":"STRING","expected":"TEXT"} +{"dialect":"databricks","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"databricks","sql":"TEXT","expected":"TEXT"} +{"dialect":"databricks","sql":"TIME","expected":"TIME"} +{"dialect":"databricks","sql":"TIMESTAMP","expected":"TIMESTAMPTZ"} +{"dialect":"databricks","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"databricks","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"databricks","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"databricks","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"databricks","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"databricks","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"databricks","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"databricks","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"databricks","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"databricks","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"databricks","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"databricks","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"databricks","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"databricks","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"databricks","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"databricks","sql":"UINT","expected":"UINT"} +{"dialect":"databricks","sql":"UINT128","expected":"UINT128"} +{"dialect":"databricks","sql":"UINT256","expected":"UINT256"} +{"dialect":"databricks","sql":"UNION","expected":"UNION"} +{"dialect":"databricks","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"databricks","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"databricks","sql":"UUID","expected":"UUID"} +{"dialect":"databricks","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"databricks","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"databricks","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"databricks","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"databricks","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"databricks","sql":"VOID","expected":"NULL"} +{"dialect":"doris","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"doris","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"doris","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"doris","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"doris","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"doris","sql":"BINARY","expected":"BINARY"} +{"dialect":"doris","sql":"BIT","expected":"BIT"} +{"dialect":"doris","sql":"BLOB","expected":"BLOB"} +{"dialect":"doris","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"doris","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"doris","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"doris","sql":"BYTE","expected":"TINYINT"} +{"dialect":"doris","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"doris","sql":"CHAR","expected":"CHAR"} +{"dialect":"doris","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"doris","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"doris","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"doris","sql":"CLOB","expected":"TEXT"} +{"dialect":"doris","sql":"DATE","expected":"DATE"} +{"dialect":"doris","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"doris","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"doris","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"doris","sql":"DEC","expected":"DECIMAL"} +{"dialect":"doris","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"doris","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"doris","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"doris","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"doris","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"doris","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"doris","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"doris","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"doris","sql":"ENUM","expected":"ENUM"} +{"dialect":"doris","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"doris","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"doris","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"doris","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"doris","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"doris","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"doris","sql":"HUGEINT","expected":"INT128"} +{"dialect":"doris","sql":"INET","expected":"INET"} +{"dialect":"doris","sql":"INT","expected":"INT"} +{"dialect":"doris","sql":"INT1","expected":"TINYINT"} +{"dialect":"doris","sql":"INT128","expected":"INT128"} +{"dialect":"doris","sql":"INT16","expected":"SMALLINT"} +{"dialect":"doris","sql":"INT2","expected":"SMALLINT"} +{"dialect":"doris","sql":"INT256","expected":"INT256"} +{"dialect":"doris","sql":"INT32","expected":"INT"} +{"dialect":"doris","sql":"INT4","expected":"INT"} +{"dialect":"doris","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"doris","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"doris","sql":"INT64","expected":"BIGINT"} +{"dialect":"doris","sql":"INT8","expected":"TINYINT"} +{"dialect":"doris","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"doris","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"doris","sql":"INTEGER","expected":"INT"} +{"dialect":"doris","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"doris","sql":"JSON","expected":"JSON"} +{"dialect":"doris","sql":"JSONB","expected":"JSONB"} +{"dialect":"doris","sql":"LIST","expected":"LIST"} +{"dialect":"doris","sql":"LONG","expected":"BIGINT"} +{"dialect":"doris","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"doris","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"doris","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"doris","sql":"MAP","expected":"MAP"} +{"dialect":"doris","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"doris","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"doris","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"doris","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"doris","sql":"NULL","expected":"NULL"} +{"dialect":"doris","sql":"NULLABLE","expected":null} +{"dialect":"doris","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"doris","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"doris","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"doris","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"doris","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"doris","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"doris","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"doris","sql":"RANGE","expected":"RANGE"} +{"dialect":"doris","sql":"REAL","expected":"FLOAT"} +{"dialect":"doris","sql":"SERIAL","expected":"SERIAL"} +{"dialect":"doris","sql":"SET","expected":"SET"} +{"dialect":"doris","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"doris","sql":"SIGNED","expected":"BIGINT"} +{"dialect":"doris","sql":"SIGNED INTEGER","expected":"BIGINT"} +{"dialect":"doris","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"doris","sql":"STR","expected":"TEXT"} +{"dialect":"doris","sql":"STRING","expected":"TEXT"} +{"dialect":"doris","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"doris","sql":"TEXT","expected":"TEXT"} +{"dialect":"doris","sql":"TIME","expected":"TIME"} +{"dialect":"doris","sql":"TIMESTAMP","expected":"TIMESTAMPTZ"} +{"dialect":"doris","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"doris","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"doris","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"doris","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"doris","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"doris","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"doris","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"doris","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"doris","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"doris","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"doris","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"doris","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"doris","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"doris","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"doris","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"doris","sql":"UINT","expected":"UINT"} +{"dialect":"doris","sql":"UINT128","expected":"UINT128"} +{"dialect":"doris","sql":"UINT256","expected":"UINT256"} +{"dialect":"doris","sql":"UNION","expected":"UNION"} +{"dialect":"doris","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"doris","sql":"UNSIGNED","expected":"UBIGINT"} +{"dialect":"doris","sql":"UNSIGNED INTEGER","expected":"UBIGINT"} +{"dialect":"doris","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"doris","sql":"UUID","expected":"UUID"} +{"dialect":"doris","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"doris","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"doris","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"doris","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"doris","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"doris","sql":"YEAR","expected":"YEAR"} +{"dialect":"dremio","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"dremio","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"dremio","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"dremio","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"dremio","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"dremio","sql":"BINARY","expected":"BINARY"} +{"dialect":"dremio","sql":"BIT","expected":"BIT"} +{"dialect":"dremio","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"dremio","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"dremio","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"dremio","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"dremio","sql":"BYTE","expected":"TINYINT"} +{"dialect":"dremio","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"dremio","sql":"CHAR","expected":"CHAR"} +{"dialect":"dremio","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"dremio","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"dremio","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"dremio","sql":"CLOB","expected":"TEXT"} +{"dialect":"dremio","sql":"DATE","expected":"DATE"} +{"dialect":"dremio","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"dremio","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"dremio","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"dremio","sql":"DEC","expected":"DECIMAL"} +{"dialect":"dremio","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"dremio","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"dremio","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"dremio","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"dremio","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"dremio","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"dremio","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"dremio","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"dremio","sql":"ENUM","expected":"ENUM"} +{"dialect":"dremio","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"dremio","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"dremio","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"dremio","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"dremio","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"dremio","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"dremio","sql":"HUGEINT","expected":"INT128"} +{"dialect":"dremio","sql":"INET","expected":"INET"} +{"dialect":"dremio","sql":"INT","expected":"INT"} +{"dialect":"dremio","sql":"INT1","expected":"TINYINT"} +{"dialect":"dremio","sql":"INT128","expected":"INT128"} +{"dialect":"dremio","sql":"INT16","expected":"SMALLINT"} +{"dialect":"dremio","sql":"INT2","expected":"SMALLINT"} +{"dialect":"dremio","sql":"INT256","expected":"INT256"} +{"dialect":"dremio","sql":"INT32","expected":"INT"} +{"dialect":"dremio","sql":"INT4","expected":"INT"} +{"dialect":"dremio","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"dremio","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"dremio","sql":"INT64","expected":"BIGINT"} +{"dialect":"dremio","sql":"INT8","expected":"TINYINT"} +{"dialect":"dremio","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"dremio","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"dremio","sql":"INTEGER","expected":"INT"} +{"dialect":"dremio","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"dremio","sql":"JSON","expected":"JSON"} +{"dialect":"dremio","sql":"JSONB","expected":"JSONB"} +{"dialect":"dremio","sql":"LIST","expected":"LIST"} +{"dialect":"dremio","sql":"LONG","expected":"BIGINT"} +{"dialect":"dremio","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"dremio","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"dremio","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"dremio","sql":"MAP","expected":"MAP"} +{"dialect":"dremio","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"dremio","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"dremio","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"dremio","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"dremio","sql":"NULL","expected":"NULL"} +{"dialect":"dremio","sql":"NULLABLE","expected":null} +{"dialect":"dremio","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"dremio","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"dremio","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"dremio","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"dremio","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"dremio","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"dremio","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"dremio","sql":"RANGE","expected":"RANGE"} +{"dialect":"dremio","sql":"REAL","expected":"FLOAT"} +{"dialect":"dremio","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"dremio","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"dremio","sql":"STR","expected":"TEXT"} +{"dialect":"dremio","sql":"STRING","expected":"TEXT"} +{"dialect":"dremio","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"dremio","sql":"TEXT","expected":"TEXT"} +{"dialect":"dremio","sql":"TIME","expected":"TIME"} +{"dialect":"dremio","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"dremio","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"dremio","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"dremio","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"dremio","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"dremio","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"dremio","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"dremio","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"dremio","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"dremio","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"dremio","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"dremio","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"dremio","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"dremio","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"dremio","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"dremio","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"dremio","sql":"UINT","expected":"UINT"} +{"dialect":"dremio","sql":"UINT128","expected":"UINT128"} +{"dialect":"dremio","sql":"UINT256","expected":"UINT256"} +{"dialect":"dremio","sql":"UNION","expected":"UNION"} +{"dialect":"dremio","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"dremio","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"dremio","sql":"UUID","expected":"UUID"} +{"dialect":"dremio","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"dremio","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"dremio","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"dremio","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"dremio","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"drill","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"drill","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"drill","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"drill","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"drill","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"drill","sql":"BINARY","expected":"BINARY"} +{"dialect":"drill","sql":"BIT","expected":"BIT"} +{"dialect":"drill","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"drill","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"drill","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"drill","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"drill","sql":"BYTE","expected":"TINYINT"} +{"dialect":"drill","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"drill","sql":"CHAR","expected":"CHAR"} +{"dialect":"drill","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"drill","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"drill","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"drill","sql":"CLOB","expected":"TEXT"} +{"dialect":"drill","sql":"DATE","expected":"DATE"} +{"dialect":"drill","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"drill","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"drill","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"drill","sql":"DEC","expected":"DECIMAL"} +{"dialect":"drill","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"drill","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"drill","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"drill","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"drill","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"drill","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"drill","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"drill","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"drill","sql":"ENUM","expected":"ENUM"} +{"dialect":"drill","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"drill","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"drill","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"drill","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"drill","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"drill","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"drill","sql":"HUGEINT","expected":"INT128"} +{"dialect":"drill","sql":"INET","expected":"INET"} +{"dialect":"drill","sql":"INT","expected":"INT"} +{"dialect":"drill","sql":"INT1","expected":"TINYINT"} +{"dialect":"drill","sql":"INT128","expected":"INT128"} +{"dialect":"drill","sql":"INT16","expected":"SMALLINT"} +{"dialect":"drill","sql":"INT2","expected":"SMALLINT"} +{"dialect":"drill","sql":"INT256","expected":"INT256"} +{"dialect":"drill","sql":"INT32","expected":"INT"} +{"dialect":"drill","sql":"INT4","expected":"INT"} +{"dialect":"drill","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"drill","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"drill","sql":"INT64","expected":"BIGINT"} +{"dialect":"drill","sql":"INT8","expected":"TINYINT"} +{"dialect":"drill","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"drill","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"drill","sql":"INTEGER","expected":"INT"} +{"dialect":"drill","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"drill","sql":"JSON","expected":"JSON"} +{"dialect":"drill","sql":"JSONB","expected":"JSONB"} +{"dialect":"drill","sql":"LIST","expected":"LIST"} +{"dialect":"drill","sql":"LONG","expected":"BIGINT"} +{"dialect":"drill","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"drill","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"drill","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"drill","sql":"MAP","expected":"MAP"} +{"dialect":"drill","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"drill","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"drill","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"drill","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"drill","sql":"NULL","expected":"NULL"} +{"dialect":"drill","sql":"NULLABLE","expected":null} +{"dialect":"drill","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"drill","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"drill","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"drill","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"drill","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"drill","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"drill","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"drill","sql":"RANGE","expected":"RANGE"} +{"dialect":"drill","sql":"REAL","expected":"FLOAT"} +{"dialect":"drill","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"drill","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"drill","sql":"STR","expected":"TEXT"} +{"dialect":"drill","sql":"STRING","expected":"TEXT"} +{"dialect":"drill","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"drill","sql":"TEXT","expected":"TEXT"} +{"dialect":"drill","sql":"TIME","expected":"TIME"} +{"dialect":"drill","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"drill","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"drill","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"drill","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"drill","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"drill","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"drill","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"drill","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"drill","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"drill","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"drill","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"drill","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"drill","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"drill","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"drill","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"drill","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"drill","sql":"UINT","expected":"UINT"} +{"dialect":"drill","sql":"UINT128","expected":"UINT128"} +{"dialect":"drill","sql":"UINT256","expected":"UINT256"} +{"dialect":"drill","sql":"UNION","expected":"UNION"} +{"dialect":"drill","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"drill","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"drill","sql":"UUID","expected":"UUID"} +{"dialect":"drill","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"drill","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"drill","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"drill","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"drill","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"druid","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"druid","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"druid","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"druid","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"druid","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"druid","sql":"BINARY","expected":"BINARY"} +{"dialect":"druid","sql":"BIT","expected":"BIT"} +{"dialect":"druid","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"druid","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"druid","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"druid","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"druid","sql":"BYTE","expected":"TINYINT"} +{"dialect":"druid","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"druid","sql":"CHAR","expected":"CHAR"} +{"dialect":"druid","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"druid","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"druid","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"druid","sql":"CLOB","expected":"TEXT"} +{"dialect":"druid","sql":"DATE","expected":"DATE"} +{"dialect":"druid","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"druid","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"druid","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"druid","sql":"DEC","expected":"DECIMAL"} +{"dialect":"druid","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"druid","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"druid","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"druid","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"druid","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"druid","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"druid","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"druid","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"druid","sql":"ENUM","expected":"ENUM"} +{"dialect":"druid","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"druid","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"druid","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"druid","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"druid","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"druid","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"druid","sql":"HUGEINT","expected":"INT128"} +{"dialect":"druid","sql":"INET","expected":"INET"} +{"dialect":"druid","sql":"INT","expected":"INT"} +{"dialect":"druid","sql":"INT1","expected":"TINYINT"} +{"dialect":"druid","sql":"INT128","expected":"INT128"} +{"dialect":"druid","sql":"INT16","expected":"SMALLINT"} +{"dialect":"druid","sql":"INT2","expected":"SMALLINT"} +{"dialect":"druid","sql":"INT256","expected":"INT256"} +{"dialect":"druid","sql":"INT32","expected":"INT"} +{"dialect":"druid","sql":"INT4","expected":"INT"} +{"dialect":"druid","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"druid","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"druid","sql":"INT64","expected":"BIGINT"} +{"dialect":"druid","sql":"INT8","expected":"TINYINT"} +{"dialect":"druid","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"druid","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"druid","sql":"INTEGER","expected":"INT"} +{"dialect":"druid","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"druid","sql":"JSON","expected":"JSON"} +{"dialect":"druid","sql":"JSONB","expected":"JSONB"} +{"dialect":"druid","sql":"LIST","expected":"LIST"} +{"dialect":"druid","sql":"LONG","expected":"BIGINT"} +{"dialect":"druid","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"druid","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"druid","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"druid","sql":"MAP","expected":"MAP"} +{"dialect":"druid","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"druid","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"druid","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"druid","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"druid","sql":"NULL","expected":"NULL"} +{"dialect":"druid","sql":"NULLABLE","expected":"USERDEFINED"} +{"dialect":"druid","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"druid","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"druid","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"druid","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"druid","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"druid","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"druid","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"druid","sql":"RANGE","expected":"RANGE"} +{"dialect":"druid","sql":"REAL","expected":"FLOAT"} +{"dialect":"druid","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"druid","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"druid","sql":"STR","expected":"TEXT"} +{"dialect":"druid","sql":"STRING","expected":"TEXT"} +{"dialect":"druid","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"druid","sql":"TEXT","expected":"TEXT"} +{"dialect":"druid","sql":"TIME","expected":"TIME"} +{"dialect":"druid","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"druid","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"druid","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"druid","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"druid","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"druid","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"druid","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"druid","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"druid","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"druid","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"druid","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"druid","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"druid","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"druid","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"druid","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"druid","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"druid","sql":"UINT","expected":"UINT"} +{"dialect":"druid","sql":"UINT128","expected":"UINT128"} +{"dialect":"druid","sql":"UINT256","expected":"UINT256"} +{"dialect":"druid","sql":"UNION","expected":"UNION"} +{"dialect":"druid","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"druid","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"druid","sql":"UUID","expected":"UUID"} +{"dialect":"druid","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"druid","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"druid","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"druid","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"druid","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"duckdb","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"duckdb","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"duckdb","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"duckdb","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"duckdb","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"duckdb","sql":"BINARY","expected":"VARBINARY"} +{"dialect":"duckdb","sql":"BIT","expected":"BIT"} +{"dialect":"duckdb","sql":"BITSTRING","expected":"BIT"} +{"dialect":"duckdb","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"duckdb","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"duckdb","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"duckdb","sql":"BPCHAR","expected":"TEXT"} +{"dialect":"duckdb","sql":"BYTE","expected":"TINYINT"} +{"dialect":"duckdb","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"duckdb","sql":"CHAR","expected":"TEXT"} +{"dialect":"duckdb","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"duckdb","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"duckdb","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"duckdb","sql":"CLOB","expected":"TEXT"} +{"dialect":"duckdb","sql":"DATE","expected":"DATE"} +{"dialect":"duckdb","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"duckdb","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"duckdb","sql":"DATETIME","expected":"TIMESTAMPNTZ"} +{"dialect":"duckdb","sql":"DEC","expected":"DECIMAL"} +{"dialect":"duckdb","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"duckdb","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"duckdb","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"duckdb","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"duckdb","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"duckdb","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"duckdb","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"duckdb","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"duckdb","sql":"ENUM","expected":"ENUM"} +{"dialect":"duckdb","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"duckdb","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"duckdb","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"duckdb","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"duckdb","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"duckdb","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"duckdb","sql":"HUGEINT","expected":"INT128"} +{"dialect":"duckdb","sql":"INET","expected":"INET"} +{"dialect":"duckdb","sql":"INT","expected":"INT"} +{"dialect":"duckdb","sql":"INT1","expected":"TINYINT"} +{"dialect":"duckdb","sql":"INT128","expected":"INT128"} +{"dialect":"duckdb","sql":"INT16","expected":"SMALLINT"} +{"dialect":"duckdb","sql":"INT2","expected":"SMALLINT"} +{"dialect":"duckdb","sql":"INT256","expected":"INT256"} +{"dialect":"duckdb","sql":"INT32","expected":"INT"} +{"dialect":"duckdb","sql":"INT4","expected":"INT"} +{"dialect":"duckdb","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"duckdb","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"duckdb","sql":"INT64","expected":"BIGINT"} +{"dialect":"duckdb","sql":"INT8","expected":"BIGINT"} +{"dialect":"duckdb","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"duckdb","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"duckdb","sql":"INTEGER","expected":"INT"} +{"dialect":"duckdb","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"duckdb","sql":"JSON","expected":"JSON"} +{"dialect":"duckdb","sql":"JSONB","expected":"JSONB"} +{"dialect":"duckdb","sql":"LIST","expected":"LIST"} +{"dialect":"duckdb","sql":"LOGICAL","expected":"BOOLEAN"} +{"dialect":"duckdb","sql":"LONG","expected":"BIGINT"} +{"dialect":"duckdb","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"duckdb","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"duckdb","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"duckdb","sql":"MAP","expected":"MAP"} +{"dialect":"duckdb","sql":"MAP(VARCHAR, INTEGER)","expected":"MAP"} +{"dialect":"duckdb","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"duckdb","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"duckdb","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"duckdb","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"duckdb","sql":"NULL","expected":"NULL"} +{"dialect":"duckdb","sql":"NULLABLE","expected":"USERDEFINED"} +{"dialect":"duckdb","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"duckdb","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"duckdb","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"duckdb","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"duckdb","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"duckdb","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"duckdb","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"duckdb","sql":"RANGE","expected":"RANGE"} +{"dialect":"duckdb","sql":"REAL","expected":"FLOAT"} +{"dialect":"duckdb","sql":"ROW","expected":"STRUCT"} +{"dialect":"duckdb","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"duckdb","sql":"SIGNED","expected":"INT"} +{"dialect":"duckdb","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"duckdb","sql":"STR","expected":"TEXT"} +{"dialect":"duckdb","sql":"STRING","expected":"TEXT"} +{"dialect":"duckdb","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"duckdb","sql":"STRUCT(id BIGINT, tags VARCHAR[])","expected":"STRUCT"} +{"dialect":"duckdb","sql":"TEXT","expected":"TEXT"} +{"dialect":"duckdb","sql":"TIME","expected":"TIME"} +{"dialect":"duckdb","sql":"TIMESTAMP","expected":"TIMESTAMPNTZ"} +{"dialect":"duckdb","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"duckdb","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"duckdb","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"duckdb","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"duckdb","sql":"TIMESTAMP_MS","expected":"TIMESTAMP_MS"} +{"dialect":"duckdb","sql":"TIMESTAMP_NS","expected":"TIMESTAMP_NS"} +{"dialect":"duckdb","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"duckdb","sql":"TIMESTAMP_S","expected":"TIMESTAMP_S"} +{"dialect":"duckdb","sql":"TIMESTAMP_US","expected":"TIMESTAMP"} +{"dialect":"duckdb","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"duckdb","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"duckdb","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"duckdb","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"duckdb","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"duckdb","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"duckdb","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"duckdb","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"duckdb","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"duckdb","sql":"UBIGINT","expected":"UBIGINT"} +{"dialect":"duckdb","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"duckdb","sql":"UINT","expected":"UINT"} +{"dialect":"duckdb","sql":"UINT128","expected":"UINT128"} +{"dialect":"duckdb","sql":"UINT256","expected":"UINT256"} +{"dialect":"duckdb","sql":"UINTEGER","expected":"UINT"} +{"dialect":"duckdb","sql":"UNION","expected":"UNION"} +{"dialect":"duckdb","sql":"UNION(number INTEGER, text VARCHAR)","expected":"UNION"} +{"dialect":"duckdb","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"duckdb","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"duckdb","sql":"USMALLINT","expected":"USMALLINT"} +{"dialect":"duckdb","sql":"UTINYINT","expected":"UTINYINT"} +{"dialect":"duckdb","sql":"UUID","expected":"UUID"} +{"dialect":"duckdb","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"duckdb","sql":"VARCHAR","expected":"TEXT"} +{"dialect":"duckdb","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"duckdb","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"duckdb","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"duckdb","sql":"custom_type[]","expected":"USERDEFINED"} +{"dialect":"exasol","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"exasol","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"exasol","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"exasol","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"exasol","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"exasol","sql":"BINARY","expected":"BINARY"} +{"dialect":"exasol","sql":"BIT","expected":"BIT"} +{"dialect":"exasol","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"exasol","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"exasol","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"exasol","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"exasol","sql":"BYTE","expected":"TINYINT"} +{"dialect":"exasol","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"exasol","sql":"CHAR","expected":"CHAR"} +{"dialect":"exasol","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"exasol","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"exasol","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"exasol","sql":"CLOB","expected":"TEXT"} +{"dialect":"exasol","sql":"DATE","expected":"DATE"} +{"dialect":"exasol","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"exasol","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"exasol","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"exasol","sql":"DEC","expected":"DECIMAL"} +{"dialect":"exasol","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"exasol","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"exasol","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"exasol","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"exasol","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"exasol","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"exasol","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"exasol","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"exasol","sql":"ENUM","expected":"ENUM"} +{"dialect":"exasol","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"exasol","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"exasol","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"exasol","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"exasol","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"exasol","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"exasol","sql":"HUGEINT","expected":"INT128"} +{"dialect":"exasol","sql":"INET","expected":"INET"} +{"dialect":"exasol","sql":"INT","expected":"INT"} +{"dialect":"exasol","sql":"INT1","expected":"TINYINT"} +{"dialect":"exasol","sql":"INT128","expected":"INT128"} +{"dialect":"exasol","sql":"INT16","expected":"SMALLINT"} +{"dialect":"exasol","sql":"INT2","expected":"SMALLINT"} +{"dialect":"exasol","sql":"INT256","expected":"INT256"} +{"dialect":"exasol","sql":"INT32","expected":"INT"} +{"dialect":"exasol","sql":"INT4","expected":"INT"} +{"dialect":"exasol","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"exasol","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"exasol","sql":"INT64","expected":"BIGINT"} +{"dialect":"exasol","sql":"INT8","expected":"TINYINT"} +{"dialect":"exasol","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"exasol","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"exasol","sql":"INTEGER","expected":"INT"} +{"dialect":"exasol","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"exasol","sql":"JSON","expected":"JSON"} +{"dialect":"exasol","sql":"JSONB","expected":"JSONB"} +{"dialect":"exasol","sql":"LIST","expected":"LIST"} +{"dialect":"exasol","sql":"LONG","expected":"BIGINT"} +{"dialect":"exasol","sql":"LONG VARCHAR","expected":"TEXT"} +{"dialect":"exasol","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"exasol","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"exasol","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"exasol","sql":"MAP","expected":"MAP"} +{"dialect":"exasol","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"exasol","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"exasol","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"exasol","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"exasol","sql":"NULL","expected":"NULL"} +{"dialect":"exasol","sql":"NULLABLE","expected":null} +{"dialect":"exasol","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"exasol","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"exasol","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"exasol","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"exasol","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"exasol","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"exasol","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"exasol","sql":"RANGE","expected":"RANGE"} +{"dialect":"exasol","sql":"REAL","expected":"FLOAT"} +{"dialect":"exasol","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"exasol","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"exasol","sql":"STR","expected":"TEXT"} +{"dialect":"exasol","sql":"STRING","expected":"TEXT"} +{"dialect":"exasol","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"exasol","sql":"TEXT","expected":"TEXT"} +{"dialect":"exasol","sql":"TIME","expected":"TIME"} +{"dialect":"exasol","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"exasol","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"exasol","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"exasol","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"exasol","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"exasol","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"exasol","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"exasol","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"exasol","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"exasol","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"exasol","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"exasol","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"exasol","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"exasol","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"exasol","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"exasol","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"exasol","sql":"UINT","expected":"UINT"} +{"dialect":"exasol","sql":"UINT128","expected":"UINT128"} +{"dialect":"exasol","sql":"UINT256","expected":"UINT256"} +{"dialect":"exasol","sql":"UNION","expected":"UNION"} +{"dialect":"exasol","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"exasol","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"exasol","sql":"UUID","expected":"UUID"} +{"dialect":"exasol","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"exasol","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"exasol","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"exasol","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"exasol","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"fabric","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"fabric","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"fabric","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"fabric","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"fabric","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"fabric","sql":"BINARY","expected":"BINARY"} +{"dialect":"fabric","sql":"BIT","expected":"BIT"} +{"dialect":"fabric","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"fabric","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"fabric","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"fabric","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"fabric","sql":"BYTE","expected":"TINYINT"} +{"dialect":"fabric","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"fabric","sql":"CHAR","expected":"CHAR"} +{"dialect":"fabric","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"fabric","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"fabric","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"fabric","sql":"CLOB","expected":"TEXT"} +{"dialect":"fabric","sql":"DATE","expected":"DATE"} +{"dialect":"fabric","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"fabric","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"fabric","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"fabric","sql":"DATETIME2","expected":"DATETIME2"} +{"dialect":"fabric","sql":"DATETIMEOFFSET","expected":"TIMESTAMPTZ"} +{"dialect":"fabric","sql":"DEC","expected":"DECIMAL"} +{"dialect":"fabric","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"fabric","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"fabric","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"fabric","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"fabric","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"fabric","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"fabric","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"fabric","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"fabric","sql":"ENUM","expected":"ENUM"} +{"dialect":"fabric","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"fabric","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"fabric","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"fabric","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"fabric","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"fabric","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"fabric","sql":"HUGEINT","expected":"INT128"} +{"dialect":"fabric","sql":"IMAGE","expected":"IMAGE"} +{"dialect":"fabric","sql":"INET","expected":"INET"} +{"dialect":"fabric","sql":"INT","expected":"INT"} +{"dialect":"fabric","sql":"INT1","expected":"TINYINT"} +{"dialect":"fabric","sql":"INT128","expected":"INT128"} +{"dialect":"fabric","sql":"INT16","expected":"SMALLINT"} +{"dialect":"fabric","sql":"INT2","expected":"SMALLINT"} +{"dialect":"fabric","sql":"INT256","expected":"INT256"} +{"dialect":"fabric","sql":"INT32","expected":"INT"} +{"dialect":"fabric","sql":"INT4","expected":"INT"} +{"dialect":"fabric","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"fabric","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"fabric","sql":"INT64","expected":"BIGINT"} +{"dialect":"fabric","sql":"INT8","expected":"TINYINT"} +{"dialect":"fabric","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"fabric","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"fabric","sql":"INTEGER","expected":"INT"} +{"dialect":"fabric","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"fabric","sql":"JSON","expected":"JSON"} +{"dialect":"fabric","sql":"JSONB","expected":"JSONB"} +{"dialect":"fabric","sql":"LIST","expected":"LIST"} +{"dialect":"fabric","sql":"LONG","expected":"BIGINT"} +{"dialect":"fabric","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"fabric","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"fabric","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"fabric","sql":"MAP","expected":"MAP"} +{"dialect":"fabric","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"fabric","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"fabric","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"fabric","sql":"MONEY","expected":"MONEY"} +{"dialect":"fabric","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"fabric","sql":"NTEXT","expected":"TEXT"} +{"dialect":"fabric","sql":"NULL","expected":"NULL"} +{"dialect":"fabric","sql":"NULLABLE","expected":"USERDEFINED"} +{"dialect":"fabric","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"fabric","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"fabric","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"fabric","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"fabric","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"fabric","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"fabric","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"fabric","sql":"RANGE","expected":"RANGE"} +{"dialect":"fabric","sql":"REAL","expected":"FLOAT"} +{"dialect":"fabric","sql":"ROWVERSION","expected":"ROWVERSION"} +{"dialect":"fabric","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"fabric","sql":"SMALLDATETIME","expected":"SMALLDATETIME"} +{"dialect":"fabric","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"fabric","sql":"SMALLMONEY","expected":"SMALLMONEY"} +{"dialect":"fabric","sql":"SQL_VARIANT","expected":"VARIANT"} +{"dialect":"fabric","sql":"STR","expected":"TEXT"} +{"dialect":"fabric","sql":"STRING","expected":"TEXT"} +{"dialect":"fabric","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"fabric","sql":"TEXT","expected":"TEXT"} +{"dialect":"fabric","sql":"TIME","expected":"TIME"} +{"dialect":"fabric","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"fabric","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"fabric","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"fabric","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"fabric","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"fabric","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"fabric","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"fabric","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"fabric","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"fabric","sql":"TINYINT","expected":"UTINYINT"} +{"dialect":"fabric","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"fabric","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"fabric","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"fabric","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"fabric","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"fabric","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"fabric","sql":"UINT","expected":"UINT"} +{"dialect":"fabric","sql":"UINT128","expected":"UINT128"} +{"dialect":"fabric","sql":"UINT256","expected":"UINT256"} +{"dialect":"fabric","sql":"UNION","expected":"UNION"} +{"dialect":"fabric","sql":"UNIQUEIDENTIFIER","expected":"UUID"} +{"dialect":"fabric","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"fabric","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"fabric","sql":"UTINYINT","expected":"UTINYINT"} +{"dialect":"fabric","sql":"UUID","expected":"UUID"} +{"dialect":"fabric","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"fabric","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"fabric","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"fabric","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"fabric","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"fabric","sql":"XML","expected":"XML"} +{"dialect":"hive","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"hive","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"hive","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"hive","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"hive","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"hive","sql":"BINARY","expected":"BINARY"} +{"dialect":"hive","sql":"BIT","expected":"BIT"} +{"dialect":"hive","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"hive","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"hive","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"hive","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"hive","sql":"BYTE","expected":"TINYINT"} +{"dialect":"hive","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"hive","sql":"CHAR","expected":"CHAR"} +{"dialect":"hive","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"hive","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"hive","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"hive","sql":"CLOB","expected":"TEXT"} +{"dialect":"hive","sql":"DATE","expected":"DATE"} +{"dialect":"hive","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"hive","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"hive","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"hive","sql":"DEC","expected":"DECIMAL"} +{"dialect":"hive","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"hive","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"hive","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"hive","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"hive","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"hive","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"hive","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"hive","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"hive","sql":"ENUM","expected":"ENUM"} +{"dialect":"hive","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"hive","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"hive","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"hive","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"hive","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"hive","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"hive","sql":"HUGEINT","expected":"INT128"} +{"dialect":"hive","sql":"INET","expected":"INET"} +{"dialect":"hive","sql":"INT","expected":"INT"} +{"dialect":"hive","sql":"INT1","expected":"TINYINT"} +{"dialect":"hive","sql":"INT128","expected":"INT128"} +{"dialect":"hive","sql":"INT16","expected":"SMALLINT"} +{"dialect":"hive","sql":"INT2","expected":"SMALLINT"} +{"dialect":"hive","sql":"INT256","expected":"INT256"} +{"dialect":"hive","sql":"INT32","expected":"INT"} +{"dialect":"hive","sql":"INT4","expected":"INT"} +{"dialect":"hive","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"hive","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"hive","sql":"INT64","expected":"BIGINT"} +{"dialect":"hive","sql":"INT8","expected":"TINYINT"} +{"dialect":"hive","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"hive","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"hive","sql":"INTEGER","expected":"INT"} +{"dialect":"hive","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"hive","sql":"JSON","expected":"JSON"} +{"dialect":"hive","sql":"JSONB","expected":"JSONB"} +{"dialect":"hive","sql":"LIST","expected":"LIST"} +{"dialect":"hive","sql":"LONG","expected":"BIGINT"} +{"dialect":"hive","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"hive","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"hive","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"hive","sql":"MAP","expected":"MAP"} +{"dialect":"hive","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"hive","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"hive","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"hive","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"hive","sql":"NULL","expected":"NULL"} +{"dialect":"hive","sql":"NULLABLE","expected":null} +{"dialect":"hive","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"hive","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"hive","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"hive","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"hive","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"hive","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"hive","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"hive","sql":"RANGE","expected":"RANGE"} +{"dialect":"hive","sql":"REAL","expected":"FLOAT"} +{"dialect":"hive","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"hive","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"hive","sql":"STR","expected":"TEXT"} +{"dialect":"hive","sql":"STRING","expected":"TEXT"} +{"dialect":"hive","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"hive","sql":"TEXT","expected":"TEXT"} +{"dialect":"hive","sql":"TIME","expected":"TIME"} +{"dialect":"hive","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"hive","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"hive","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"hive","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"hive","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"hive","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"hive","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"hive","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"hive","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"hive","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"hive","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"hive","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"hive","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"hive","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"hive","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"hive","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"hive","sql":"UINT","expected":"UINT"} +{"dialect":"hive","sql":"UINT128","expected":"UINT128"} +{"dialect":"hive","sql":"UINT256","expected":"UINT256"} +{"dialect":"hive","sql":"UNION","expected":"UNION"} +{"dialect":"hive","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"hive","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"hive","sql":"UUID","expected":"UUID"} +{"dialect":"hive","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"hive","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"hive","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"hive","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"hive","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"materialize","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"materialize","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"materialize","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"materialize","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"materialize","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"materialize","sql":"BIGSERIAL","expected":"BIGSERIAL"} +{"dialect":"materialize","sql":"BINARY","expected":"BINARY"} +{"dialect":"materialize","sql":"BIT","expected":"BIT"} +{"dialect":"materialize","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"materialize","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"materialize","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"materialize","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"materialize","sql":"BYTE","expected":"TINYINT"} +{"dialect":"materialize","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"materialize","sql":"CHAR","expected":"CHAR"} +{"dialect":"materialize","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"materialize","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"materialize","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"materialize","sql":"CLOB","expected":"TEXT"} +{"dialect":"materialize","sql":"CSTRING","expected":"USERDEFINED"} +{"dialect":"materialize","sql":"DATE","expected":"DATE"} +{"dialect":"materialize","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"materialize","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"materialize","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"materialize","sql":"DEC","expected":"DECIMAL"} +{"dialect":"materialize","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"materialize","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"materialize","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"materialize","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"materialize","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"materialize","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"materialize","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"materialize","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"materialize","sql":"ENUM","expected":"ENUM"} +{"dialect":"materialize","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"materialize","sql":"FLOAT","expected":"DOUBLE"} +{"dialect":"materialize","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"materialize","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"materialize","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"materialize","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"materialize","sql":"HSTORE","expected":"HSTORE"} +{"dialect":"materialize","sql":"HUGEINT","expected":"INT128"} +{"dialect":"materialize","sql":"INET","expected":"INET"} +{"dialect":"materialize","sql":"INT","expected":"INT"} +{"dialect":"materialize","sql":"INT1","expected":"TINYINT"} +{"dialect":"materialize","sql":"INT128","expected":"INT128"} +{"dialect":"materialize","sql":"INT16","expected":"SMALLINT"} +{"dialect":"materialize","sql":"INT2","expected":"SMALLINT"} +{"dialect":"materialize","sql":"INT256","expected":"INT256"} +{"dialect":"materialize","sql":"INT32","expected":"INT"} +{"dialect":"materialize","sql":"INT4","expected":"INT"} +{"dialect":"materialize","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"materialize","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"materialize","sql":"INT64","expected":"BIGINT"} +{"dialect":"materialize","sql":"INT8","expected":"BIGINT"} +{"dialect":"materialize","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"materialize","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"materialize","sql":"INTEGER","expected":"INT"} +{"dialect":"materialize","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"materialize","sql":"JSON","expected":"JSON"} +{"dialect":"materialize","sql":"JSONB","expected":"JSONB"} +{"dialect":"materialize","sql":"LIST","expected":"LIST"} +{"dialect":"materialize","sql":"LONG","expected":"BIGINT"} +{"dialect":"materialize","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"materialize","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"materialize","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"materialize","sql":"MAP","expected":"MAP"} +{"dialect":"materialize","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"materialize","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"materialize","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"materialize","sql":"MONEY","expected":"MONEY"} +{"dialect":"materialize","sql":"NAME","expected":"NAME"} +{"dialect":"materialize","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"materialize","sql":"NULL","expected":"NULL"} +{"dialect":"materialize","sql":"NULLABLE","expected":"USERDEFINED"} +{"dialect":"materialize","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"materialize","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"materialize","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"materialize","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"materialize","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"materialize","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"materialize","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"materialize","sql":"OID","expected":"USERDEFINED"} +{"dialect":"materialize","sql":"POINT","expected":"POINT"} +{"dialect":"materialize","sql":"RANGE","expected":"RANGE"} +{"dialect":"materialize","sql":"REAL","expected":"FLOAT"} +{"dialect":"materialize","sql":"REGCLASS","expected":"USERDEFINED"} +{"dialect":"materialize","sql":"REGCOLLATION","expected":"USERDEFINED"} +{"dialect":"materialize","sql":"REGCONFIG","expected":"USERDEFINED"} +{"dialect":"materialize","sql":"REGDICTIONARY","expected":"USERDEFINED"} +{"dialect":"materialize","sql":"REGNAMESPACE","expected":"USERDEFINED"} +{"dialect":"materialize","sql":"REGOPER","expected":"USERDEFINED"} +{"dialect":"materialize","sql":"REGOPERATOR","expected":"USERDEFINED"} +{"dialect":"materialize","sql":"REGPROC","expected":"USERDEFINED"} +{"dialect":"materialize","sql":"REGPROCEDURE","expected":"USERDEFINED"} +{"dialect":"materialize","sql":"REGROLE","expected":"USERDEFINED"} +{"dialect":"materialize","sql":"REGTYPE","expected":"USERDEFINED"} +{"dialect":"materialize","sql":"SERIAL","expected":"SERIAL"} +{"dialect":"materialize","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"materialize","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"materialize","sql":"SMALLSERIAL","expected":"SMALLSERIAL"} +{"dialect":"materialize","sql":"STR","expected":"TEXT"} +{"dialect":"materialize","sql":"STRING","expected":"TEXT"} +{"dialect":"materialize","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"materialize","sql":"TEXT","expected":"TEXT"} +{"dialect":"materialize","sql":"TIME","expected":"TIME"} +{"dialect":"materialize","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"materialize","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"materialize","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"materialize","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"materialize","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"materialize","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"materialize","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"materialize","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"materialize","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"materialize","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"materialize","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"materialize","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"materialize","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"materialize","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"materialize","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"materialize","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"materialize","sql":"UINT","expected":"UINT"} +{"dialect":"materialize","sql":"UINT128","expected":"UINT128"} +{"dialect":"materialize","sql":"UINT256","expected":"UINT256"} +{"dialect":"materialize","sql":"UNION","expected":"UNION"} +{"dialect":"materialize","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"materialize","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"materialize","sql":"UUID","expected":"UUID"} +{"dialect":"materialize","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"materialize","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"materialize","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"materialize","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"materialize","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"materialize","sql":"XML","expected":"XML"} +{"dialect":"mysql","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"mysql","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"mysql","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"mysql","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"mysql","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"mysql","sql":"BINARY","expected":"BINARY"} +{"dialect":"mysql","sql":"BIT","expected":"BIT"} +{"dialect":"mysql","sql":"BLOB","expected":"BLOB"} +{"dialect":"mysql","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"mysql","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"mysql","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"mysql","sql":"BYTE","expected":"TINYINT"} +{"dialect":"mysql","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"mysql","sql":"CHAR","expected":"CHAR"} +{"dialect":"mysql","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"mysql","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"mysql","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"mysql","sql":"CLOB","expected":"TEXT"} +{"dialect":"mysql","sql":"DATE","expected":"DATE"} +{"dialect":"mysql","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"mysql","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"mysql","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"mysql","sql":"DEC","expected":"DECIMAL"} +{"dialect":"mysql","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"mysql","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"mysql","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"mysql","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"mysql","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"mysql","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"mysql","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"mysql","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"mysql","sql":"ENUM","expected":"ENUM"} +{"dialect":"mysql","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"mysql","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"mysql","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"mysql","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"mysql","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"mysql","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"mysql","sql":"HUGEINT","expected":"INT128"} +{"dialect":"mysql","sql":"INET","expected":"INET"} +{"dialect":"mysql","sql":"INT","expected":"INT"} +{"dialect":"mysql","sql":"INT1","expected":"TINYINT"} +{"dialect":"mysql","sql":"INT128","expected":"INT128"} +{"dialect":"mysql","sql":"INT16","expected":"SMALLINT"} +{"dialect":"mysql","sql":"INT2","expected":"SMALLINT"} +{"dialect":"mysql","sql":"INT256","expected":"INT256"} +{"dialect":"mysql","sql":"INT32","expected":"INT"} +{"dialect":"mysql","sql":"INT4","expected":"INT"} +{"dialect":"mysql","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"mysql","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"mysql","sql":"INT64","expected":"BIGINT"} +{"dialect":"mysql","sql":"INT8","expected":"TINYINT"} +{"dialect":"mysql","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"mysql","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"mysql","sql":"INTEGER","expected":"INT"} +{"dialect":"mysql","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"mysql","sql":"JSON","expected":"JSON"} +{"dialect":"mysql","sql":"JSONB","expected":"JSONB"} +{"dialect":"mysql","sql":"LIST","expected":"LIST"} +{"dialect":"mysql","sql":"LONG","expected":"BIGINT"} +{"dialect":"mysql","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"mysql","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"mysql","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"mysql","sql":"MAP","expected":"MAP"} +{"dialect":"mysql","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"mysql","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"mysql","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"mysql","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"mysql","sql":"NULL","expected":"NULL"} +{"dialect":"mysql","sql":"NULLABLE","expected":null} +{"dialect":"mysql","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"mysql","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"mysql","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"mysql","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"mysql","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"mysql","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"mysql","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"mysql","sql":"RANGE","expected":"RANGE"} +{"dialect":"mysql","sql":"REAL","expected":"FLOAT"} +{"dialect":"mysql","sql":"SERIAL","expected":"SERIAL"} +{"dialect":"mysql","sql":"SET","expected":"SET"} +{"dialect":"mysql","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"mysql","sql":"SIGNED","expected":"BIGINT"} +{"dialect":"mysql","sql":"SIGNED INTEGER","expected":"BIGINT"} +{"dialect":"mysql","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"mysql","sql":"STR","expected":"TEXT"} +{"dialect":"mysql","sql":"STRING","expected":"TEXT"} +{"dialect":"mysql","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"mysql","sql":"TEXT","expected":"TEXT"} +{"dialect":"mysql","sql":"TIME","expected":"TIME"} +{"dialect":"mysql","sql":"TIMESTAMP","expected":"TIMESTAMPTZ"} +{"dialect":"mysql","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"mysql","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"mysql","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"mysql","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"mysql","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"mysql","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"mysql","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"mysql","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"mysql","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"mysql","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"mysql","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"mysql","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"mysql","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"mysql","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"mysql","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"mysql","sql":"UINT","expected":"UINT"} +{"dialect":"mysql","sql":"UINT128","expected":"UINT128"} +{"dialect":"mysql","sql":"UINT256","expected":"UINT256"} +{"dialect":"mysql","sql":"UNION","expected":"UNION"} +{"dialect":"mysql","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"mysql","sql":"UNSIGNED","expected":"UBIGINT"} +{"dialect":"mysql","sql":"UNSIGNED INTEGER","expected":"UBIGINT"} +{"dialect":"mysql","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"mysql","sql":"UUID","expected":"UUID"} +{"dialect":"mysql","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"mysql","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"mysql","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"mysql","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"mysql","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"mysql","sql":"YEAR","expected":"YEAR"} +{"dialect":"oracle","sql":"APP.CUSTOM_TYPE","expected":"USERDEFINED"} +{"dialect":"oracle","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"oracle","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"oracle","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"oracle","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"oracle","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"oracle","sql":"BINARY","expected":"BINARY"} +{"dialect":"oracle","sql":"BINARY_DOUBLE","expected":"DOUBLE"} +{"dialect":"oracle","sql":"BINARY_FLOAT","expected":"FLOAT"} +{"dialect":"oracle","sql":"BIT","expected":"BIT"} +{"dialect":"oracle","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"oracle","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"oracle","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"oracle","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"oracle","sql":"BYTE","expected":"TINYINT"} +{"dialect":"oracle","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"oracle","sql":"CHAR","expected":"CHAR"} +{"dialect":"oracle","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"oracle","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"oracle","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"oracle","sql":"CLOB","expected":"TEXT"} +{"dialect":"oracle","sql":"DATE","expected":"DATE"} +{"dialect":"oracle","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"oracle","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"oracle","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"oracle","sql":"DEC","expected":"DECIMAL"} +{"dialect":"oracle","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"oracle","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"oracle","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"oracle","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"oracle","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"oracle","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"oracle","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"oracle","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"oracle","sql":"ENUM","expected":"ENUM"} +{"dialect":"oracle","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"oracle","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"oracle","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"oracle","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"oracle","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"oracle","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"oracle","sql":"HUGEINT","expected":"INT128"} +{"dialect":"oracle","sql":"INET","expected":"INET"} +{"dialect":"oracle","sql":"INT","expected":"INT"} +{"dialect":"oracle","sql":"INT1","expected":"TINYINT"} +{"dialect":"oracle","sql":"INT128","expected":"INT128"} +{"dialect":"oracle","sql":"INT16","expected":"SMALLINT"} +{"dialect":"oracle","sql":"INT2","expected":"SMALLINT"} +{"dialect":"oracle","sql":"INT256","expected":"INT256"} +{"dialect":"oracle","sql":"INT32","expected":"INT"} +{"dialect":"oracle","sql":"INT4","expected":"INT"} +{"dialect":"oracle","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"oracle","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"oracle","sql":"INT64","expected":"BIGINT"} +{"dialect":"oracle","sql":"INT8","expected":"TINYINT"} +{"dialect":"oracle","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"oracle","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"oracle","sql":"INTEGER","expected":"INT"} +{"dialect":"oracle","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"oracle","sql":"INTERVAL DAY(3) TO SECOND(6)","expected":"INTERVAL"} +{"dialect":"oracle","sql":"JSON","expected":"JSON"} +{"dialect":"oracle","sql":"JSONB","expected":"JSONB"} +{"dialect":"oracle","sql":"LIST","expected":"LIST"} +{"dialect":"oracle","sql":"LONG","expected":"BIGINT"} +{"dialect":"oracle","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"oracle","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"oracle","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"oracle","sql":"MAP","expected":"MAP"} +{"dialect":"oracle","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"oracle","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"oracle","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"oracle","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"oracle","sql":"NULL","expected":"NULL"} +{"dialect":"oracle","sql":"NULLABLE","expected":"USERDEFINED"} +{"dialect":"oracle","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"oracle","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"oracle","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"oracle","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"oracle","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"oracle","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"oracle","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"oracle","sql":"RANGE","expected":"RANGE"} +{"dialect":"oracle","sql":"REAL","expected":"FLOAT"} +{"dialect":"oracle","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"oracle","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"oracle","sql":"STR","expected":"TEXT"} +{"dialect":"oracle","sql":"STRING","expected":"TEXT"} +{"dialect":"oracle","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"oracle","sql":"TEXT","expected":"TEXT"} +{"dialect":"oracle","sql":"TIME","expected":"TIME"} +{"dialect":"oracle","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"oracle","sql":"TIMESTAMP(9) WITH LOCAL TIME ZONE","expected":"TIMESTAMPLTZ"} +{"dialect":"oracle","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"oracle","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"oracle","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"oracle","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"oracle","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"oracle","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"oracle","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"oracle","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"oracle","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"oracle","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"oracle","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"oracle","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"oracle","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"oracle","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"oracle","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"oracle","sql":"UINT","expected":"UINT"} +{"dialect":"oracle","sql":"UINT128","expected":"UINT128"} +{"dialect":"oracle","sql":"UINT256","expected":"UINT256"} +{"dialect":"oracle","sql":"UNION","expected":"UNION"} +{"dialect":"oracle","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"oracle","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"oracle","sql":"UUID","expected":"UUID"} +{"dialect":"oracle","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"oracle","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"oracle","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"oracle","sql":"VARCHAR2(255 CHAR)","expected":"VARCHAR"} +{"dialect":"oracle","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"oracle","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"postgres","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"postgres","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"postgres","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"postgres","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"postgres","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"postgres","sql":"BIGSERIAL","expected":"BIGSERIAL"} +{"dialect":"postgres","sql":"BINARY","expected":"BINARY"} +{"dialect":"postgres","sql":"BIT","expected":"BIT"} +{"dialect":"postgres","sql":"BIT VARYING(128)","expected":"BIT"} +{"dialect":"postgres","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"postgres","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"postgres","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"postgres","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"postgres","sql":"BYTE","expected":"TINYINT"} +{"dialect":"postgres","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"postgres","sql":"CHAR","expected":"CHAR"} +{"dialect":"postgres","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"postgres","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"postgres","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"postgres","sql":"CLOB","expected":"TEXT"} +{"dialect":"postgres","sql":"CSTRING","expected":"USERDEFINED"} +{"dialect":"postgres","sql":"DATE","expected":"DATE"} +{"dialect":"postgres","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"postgres","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"postgres","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"postgres","sql":"DEC","expected":"DECIMAL"} +{"dialect":"postgres","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"postgres","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"postgres","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"postgres","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"postgres","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"postgres","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"postgres","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"postgres","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"postgres","sql":"ENUM","expected":"ENUM"} +{"dialect":"postgres","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"postgres","sql":"FLOAT","expected":"DOUBLE"} +{"dialect":"postgres","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"postgres","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"postgres","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"postgres","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"postgres","sql":"HSTORE","expected":"HSTORE"} +{"dialect":"postgres","sql":"HUGEINT","expected":"INT128"} +{"dialect":"postgres","sql":"INET","expected":"INET"} +{"dialect":"postgres","sql":"INT","expected":"INT"} +{"dialect":"postgres","sql":"INT ARRAY[3]","expected":"ARRAY"} +{"dialect":"postgres","sql":"INT1","expected":"TINYINT"} +{"dialect":"postgres","sql":"INT128","expected":"INT128"} +{"dialect":"postgres","sql":"INT16","expected":"SMALLINT"} +{"dialect":"postgres","sql":"INT2","expected":"SMALLINT"} +{"dialect":"postgres","sql":"INT256","expected":"INT256"} +{"dialect":"postgres","sql":"INT32","expected":"INT"} +{"dialect":"postgres","sql":"INT4","expected":"INT"} +{"dialect":"postgres","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"postgres","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"postgres","sql":"INT64","expected":"BIGINT"} +{"dialect":"postgres","sql":"INT8","expected":"BIGINT"} +{"dialect":"postgres","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"postgres","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"postgres","sql":"INTEGER","expected":"INT"} +{"dialect":"postgres","sql":"INTEGER[][]","expected":"ARRAY"} +{"dialect":"postgres","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"postgres","sql":"JSON","expected":"JSON"} +{"dialect":"postgres","sql":"JSONB","expected":"JSONB"} +{"dialect":"postgres","sql":"LIST","expected":"LIST"} +{"dialect":"postgres","sql":"LONG","expected":"BIGINT"} +{"dialect":"postgres","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"postgres","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"postgres","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"postgres","sql":"MAP","expected":"MAP"} +{"dialect":"postgres","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"postgres","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"postgres","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"postgres","sql":"MONEY","expected":"MONEY"} +{"dialect":"postgres","sql":"NAME","expected":"NAME"} +{"dialect":"postgres","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"postgres","sql":"NULL","expected":"NULL"} +{"dialect":"postgres","sql":"NULLABLE","expected":"USERDEFINED"} +{"dialect":"postgres","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"postgres","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"postgres","sql":"NUMERIC(38, 9)[]","expected":"ARRAY"} +{"dialect":"postgres","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"postgres","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"postgres","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"postgres","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"postgres","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"postgres","sql":"OID","expected":"USERDEFINED"} +{"dialect":"postgres","sql":"POINT","expected":"POINT"} +{"dialect":"postgres","sql":"RANGE","expected":"RANGE"} +{"dialect":"postgres","sql":"REAL","expected":"FLOAT"} +{"dialect":"postgres","sql":"REGCLASS","expected":"USERDEFINED"} +{"dialect":"postgres","sql":"REGCOLLATION","expected":"USERDEFINED"} +{"dialect":"postgres","sql":"REGCONFIG","expected":"USERDEFINED"} +{"dialect":"postgres","sql":"REGDICTIONARY","expected":"USERDEFINED"} +{"dialect":"postgres","sql":"REGNAMESPACE","expected":"USERDEFINED"} +{"dialect":"postgres","sql":"REGOPER","expected":"USERDEFINED"} +{"dialect":"postgres","sql":"REGOPERATOR","expected":"USERDEFINED"} +{"dialect":"postgres","sql":"REGPROC","expected":"USERDEFINED"} +{"dialect":"postgres","sql":"REGPROCEDURE","expected":"USERDEFINED"} +{"dialect":"postgres","sql":"REGROLE","expected":"USERDEFINED"} +{"dialect":"postgres","sql":"REGTYPE","expected":"USERDEFINED"} +{"dialect":"postgres","sql":"SERIAL","expected":"SERIAL"} +{"dialect":"postgres","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"postgres","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"postgres","sql":"SMALLSERIAL","expected":"SMALLSERIAL"} +{"dialect":"postgres","sql":"STR","expected":"TEXT"} +{"dialect":"postgres","sql":"STRING","expected":"TEXT"} +{"dialect":"postgres","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"postgres","sql":"TEXT","expected":"TEXT"} +{"dialect":"postgres","sql":"TIME","expected":"TIME"} +{"dialect":"postgres","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"postgres","sql":"TIMESTAMP(6) WITH TIME ZONE","expected":"TIMESTAMPTZ"} +{"dialect":"postgres","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"postgres","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"postgres","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"postgres","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"postgres","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"postgres","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"postgres","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"postgres","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"postgres","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"postgres","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"postgres","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"postgres","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"postgres","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"postgres","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"postgres","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"postgres","sql":"UINT","expected":"UINT"} +{"dialect":"postgres","sql":"UINT128","expected":"UINT128"} +{"dialect":"postgres","sql":"UINT256","expected":"UINT256"} +{"dialect":"postgres","sql":"UNION","expected":"UNION"} +{"dialect":"postgres","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"postgres","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"postgres","sql":"UUID","expected":"UUID"} +{"dialect":"postgres","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"postgres","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"postgres","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"postgres","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"postgres","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"postgres","sql":"XML","expected":"XML"} +{"dialect":"postgres","sql":"app.\"custom type\"","expected":"USERDEFINED"} +{"dialect":"postgres","sql":"app.custom_type","expected":"USERDEFINED"} +{"dialect":"postgres","sql":"app.custom_type[][]","expected":"USERDEFINED"} +{"dialect":"presto","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"presto","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"presto","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"presto","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"presto","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"presto","sql":"BINARY","expected":"BINARY"} +{"dialect":"presto","sql":"BIT","expected":"BIT"} +{"dialect":"presto","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"presto","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"presto","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"presto","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"presto","sql":"BYTE","expected":"TINYINT"} +{"dialect":"presto","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"presto","sql":"CHAR","expected":"CHAR"} +{"dialect":"presto","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"presto","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"presto","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"presto","sql":"CLOB","expected":"TEXT"} +{"dialect":"presto","sql":"DATE","expected":"DATE"} +{"dialect":"presto","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"presto","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"presto","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"presto","sql":"DEC","expected":"DECIMAL"} +{"dialect":"presto","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"presto","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"presto","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"presto","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"presto","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"presto","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"presto","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"presto","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"presto","sql":"ENUM","expected":"ENUM"} +{"dialect":"presto","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"presto","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"presto","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"presto","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"presto","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"presto","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"presto","sql":"HUGEINT","expected":"INT128"} +{"dialect":"presto","sql":"HYPERLOGLOG","expected":"HLLSKETCH"} +{"dialect":"presto","sql":"INET","expected":"INET"} +{"dialect":"presto","sql":"INT","expected":"INT"} +{"dialect":"presto","sql":"INT1","expected":"TINYINT"} +{"dialect":"presto","sql":"INT128","expected":"INT128"} +{"dialect":"presto","sql":"INT16","expected":"SMALLINT"} +{"dialect":"presto","sql":"INT2","expected":"SMALLINT"} +{"dialect":"presto","sql":"INT256","expected":"INT256"} +{"dialect":"presto","sql":"INT32","expected":"INT"} +{"dialect":"presto","sql":"INT4","expected":"INT"} +{"dialect":"presto","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"presto","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"presto","sql":"INT64","expected":"BIGINT"} +{"dialect":"presto","sql":"INT8","expected":"TINYINT"} +{"dialect":"presto","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"presto","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"presto","sql":"INTEGER","expected":"INT"} +{"dialect":"presto","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"presto","sql":"IPADDRESS","expected":"IPADDRESS"} +{"dialect":"presto","sql":"IPPREFIX","expected":"IPPREFIX"} +{"dialect":"presto","sql":"JSON","expected":"JSON"} +{"dialect":"presto","sql":"JSONB","expected":"JSONB"} +{"dialect":"presto","sql":"LIST","expected":"LIST"} +{"dialect":"presto","sql":"LONG","expected":"BIGINT"} +{"dialect":"presto","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"presto","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"presto","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"presto","sql":"MAP","expected":"MAP"} +{"dialect":"presto","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"presto","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"presto","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"presto","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"presto","sql":"NULL","expected":"NULL"} +{"dialect":"presto","sql":"NULLABLE","expected":"USERDEFINED"} +{"dialect":"presto","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"presto","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"presto","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"presto","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"presto","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"presto","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"presto","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"presto","sql":"RANGE","expected":"RANGE"} +{"dialect":"presto","sql":"REAL","expected":"FLOAT"} +{"dialect":"presto","sql":"ROW","expected":"STRUCT"} +{"dialect":"presto","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"presto","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"presto","sql":"STR","expected":"TEXT"} +{"dialect":"presto","sql":"STRING","expected":"TEXT"} +{"dialect":"presto","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"presto","sql":"TDIGEST","expected":"TDIGEST"} +{"dialect":"presto","sql":"TEXT","expected":"TEXT"} +{"dialect":"presto","sql":"TIME","expected":"TIME"} +{"dialect":"presto","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"presto","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"presto","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"presto","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"presto","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"presto","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"presto","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"presto","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"presto","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"presto","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"presto","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"presto","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"presto","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"presto","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"presto","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"presto","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"presto","sql":"UINT","expected":"UINT"} +{"dialect":"presto","sql":"UINT128","expected":"UINT128"} +{"dialect":"presto","sql":"UINT256","expected":"UINT256"} +{"dialect":"presto","sql":"UNION","expected":"UNION"} +{"dialect":"presto","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"presto","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"presto","sql":"UUID","expected":"UUID"} +{"dialect":"presto","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"presto","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"presto","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"presto","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"presto","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"prql","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"prql","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"prql","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"prql","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"prql","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"prql","sql":"BINARY","expected":"BINARY"} +{"dialect":"prql","sql":"BIT","expected":"BIT"} +{"dialect":"prql","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"prql","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"prql","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"prql","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"prql","sql":"BYTE","expected":"TINYINT"} +{"dialect":"prql","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"prql","sql":"CHAR","expected":"CHAR"} +{"dialect":"prql","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"prql","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"prql","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"prql","sql":"CLOB","expected":"TEXT"} +{"dialect":"prql","sql":"DATE","expected":"DATE"} +{"dialect":"prql","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"prql","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"prql","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"prql","sql":"DEC","expected":"DECIMAL"} +{"dialect":"prql","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"prql","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"prql","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"prql","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"prql","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"prql","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"prql","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"prql","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"prql","sql":"ENUM","expected":"ENUM"} +{"dialect":"prql","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"prql","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"prql","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"prql","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"prql","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"prql","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"prql","sql":"HUGEINT","expected":"INT128"} +{"dialect":"prql","sql":"INET","expected":"INET"} +{"dialect":"prql","sql":"INT","expected":"INT"} +{"dialect":"prql","sql":"INT1","expected":"TINYINT"} +{"dialect":"prql","sql":"INT128","expected":"INT128"} +{"dialect":"prql","sql":"INT16","expected":"SMALLINT"} +{"dialect":"prql","sql":"INT2","expected":"SMALLINT"} +{"dialect":"prql","sql":"INT256","expected":"INT256"} +{"dialect":"prql","sql":"INT32","expected":"INT"} +{"dialect":"prql","sql":"INT4","expected":"INT"} +{"dialect":"prql","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"prql","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"prql","sql":"INT64","expected":"BIGINT"} +{"dialect":"prql","sql":"INT8","expected":"TINYINT"} +{"dialect":"prql","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"prql","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"prql","sql":"INTEGER","expected":"INT"} +{"dialect":"prql","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"prql","sql":"JSON","expected":"JSON"} +{"dialect":"prql","sql":"JSONB","expected":"JSONB"} +{"dialect":"prql","sql":"LIST","expected":"LIST"} +{"dialect":"prql","sql":"LONG","expected":"BIGINT"} +{"dialect":"prql","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"prql","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"prql","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"prql","sql":"MAP","expected":"MAP"} +{"dialect":"prql","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"prql","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"prql","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"prql","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"prql","sql":"NULL","expected":"NULL"} +{"dialect":"prql","sql":"NULLABLE","expected":"USERDEFINED"} +{"dialect":"prql","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"prql","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"prql","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"prql","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"prql","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"prql","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"prql","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"prql","sql":"RANGE","expected":"RANGE"} +{"dialect":"prql","sql":"REAL","expected":"FLOAT"} +{"dialect":"prql","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"prql","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"prql","sql":"STR","expected":"TEXT"} +{"dialect":"prql","sql":"STRING","expected":"TEXT"} +{"dialect":"prql","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"prql","sql":"TEXT","expected":"TEXT"} +{"dialect":"prql","sql":"TIME","expected":"TIME"} +{"dialect":"prql","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"prql","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"prql","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"prql","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"prql","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"prql","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"prql","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"prql","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"prql","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"prql","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"prql","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"prql","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"prql","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"prql","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"prql","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"prql","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"prql","sql":"UINT","expected":"UINT"} +{"dialect":"prql","sql":"UINT128","expected":"UINT128"} +{"dialect":"prql","sql":"UINT256","expected":"UINT256"} +{"dialect":"prql","sql":"UNION","expected":"UNION"} +{"dialect":"prql","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"prql","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"prql","sql":"UUID","expected":"UUID"} +{"dialect":"prql","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"prql","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"prql","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"prql","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"prql","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"redshift","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"redshift","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"redshift","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"redshift","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"redshift","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"redshift","sql":"BIGSERIAL","expected":"BIGSERIAL"} +{"dialect":"redshift","sql":"BINARY","expected":"BINARY"} +{"dialect":"redshift","sql":"BINARY VARYING","expected":"VARBINARY"} +{"dialect":"redshift","sql":"BIT","expected":"BIT"} +{"dialect":"redshift","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"redshift","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"redshift","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"redshift","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"redshift","sql":"BYTE","expected":"TINYINT"} +{"dialect":"redshift","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"redshift","sql":"CHAR","expected":"CHAR"} +{"dialect":"redshift","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"redshift","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"redshift","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"redshift","sql":"CLOB","expected":"TEXT"} +{"dialect":"redshift","sql":"CSTRING","expected":"USERDEFINED"} +{"dialect":"redshift","sql":"DATE","expected":"DATE"} +{"dialect":"redshift","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"redshift","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"redshift","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"redshift","sql":"DEC","expected":"DECIMAL"} +{"dialect":"redshift","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"redshift","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"redshift","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"redshift","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"redshift","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"redshift","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"redshift","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"redshift","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"redshift","sql":"ENUM","expected":"ENUM"} +{"dialect":"redshift","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"redshift","sql":"FLOAT","expected":"DOUBLE"} +{"dialect":"redshift","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"redshift","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"redshift","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"redshift","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"redshift","sql":"HLLSKETCH","expected":"HLLSKETCH"} +{"dialect":"redshift","sql":"HSTORE","expected":"HSTORE"} +{"dialect":"redshift","sql":"HUGEINT","expected":"INT128"} +{"dialect":"redshift","sql":"INET","expected":"INET"} +{"dialect":"redshift","sql":"INT","expected":"INT"} +{"dialect":"redshift","sql":"INT1","expected":"TINYINT"} +{"dialect":"redshift","sql":"INT128","expected":"INT128"} +{"dialect":"redshift","sql":"INT16","expected":"SMALLINT"} +{"dialect":"redshift","sql":"INT2","expected":"SMALLINT"} +{"dialect":"redshift","sql":"INT256","expected":"INT256"} +{"dialect":"redshift","sql":"INT32","expected":"INT"} +{"dialect":"redshift","sql":"INT4","expected":"INT"} +{"dialect":"redshift","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"redshift","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"redshift","sql":"INT64","expected":"BIGINT"} +{"dialect":"redshift","sql":"INT8","expected":"BIGINT"} +{"dialect":"redshift","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"redshift","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"redshift","sql":"INTEGER","expected":"INT"} +{"dialect":"redshift","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"redshift","sql":"JSON","expected":"JSON"} +{"dialect":"redshift","sql":"JSONB","expected":"JSONB"} +{"dialect":"redshift","sql":"LIST","expected":"LIST"} +{"dialect":"redshift","sql":"LONG","expected":"BIGINT"} +{"dialect":"redshift","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"redshift","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"redshift","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"redshift","sql":"MAP","expected":"MAP"} +{"dialect":"redshift","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"redshift","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"redshift","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"redshift","sql":"MONEY","expected":"MONEY"} +{"dialect":"redshift","sql":"NAME","expected":"NAME"} +{"dialect":"redshift","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"redshift","sql":"NULL","expected":"NULL"} +{"dialect":"redshift","sql":"NULLABLE","expected":null} +{"dialect":"redshift","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"redshift","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"redshift","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"redshift","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"redshift","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"redshift","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"redshift","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"redshift","sql":"OID","expected":"USERDEFINED"} +{"dialect":"redshift","sql":"POINT","expected":"POINT"} +{"dialect":"redshift","sql":"RANGE","expected":"RANGE"} +{"dialect":"redshift","sql":"REAL","expected":"FLOAT"} +{"dialect":"redshift","sql":"REGCLASS","expected":"USERDEFINED"} +{"dialect":"redshift","sql":"REGCOLLATION","expected":"USERDEFINED"} +{"dialect":"redshift","sql":"REGCONFIG","expected":"USERDEFINED"} +{"dialect":"redshift","sql":"REGDICTIONARY","expected":"USERDEFINED"} +{"dialect":"redshift","sql":"REGNAMESPACE","expected":"USERDEFINED"} +{"dialect":"redshift","sql":"REGOPER","expected":"USERDEFINED"} +{"dialect":"redshift","sql":"REGOPERATOR","expected":"USERDEFINED"} +{"dialect":"redshift","sql":"REGPROC","expected":"USERDEFINED"} +{"dialect":"redshift","sql":"REGPROCEDURE","expected":"USERDEFINED"} +{"dialect":"redshift","sql":"REGROLE","expected":"USERDEFINED"} +{"dialect":"redshift","sql":"REGTYPE","expected":"USERDEFINED"} +{"dialect":"redshift","sql":"SERIAL","expected":"SERIAL"} +{"dialect":"redshift","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"redshift","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"redshift","sql":"SMALLSERIAL","expected":"SMALLSERIAL"} +{"dialect":"redshift","sql":"STR","expected":"TEXT"} +{"dialect":"redshift","sql":"STRING","expected":"TEXT"} +{"dialect":"redshift","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"redshift","sql":"SUPER","expected":"SUPER"} +{"dialect":"redshift","sql":"TEXT","expected":"TEXT"} +{"dialect":"redshift","sql":"TIME","expected":"TIME"} +{"dialect":"redshift","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"redshift","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"redshift","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"redshift","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"redshift","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"redshift","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"redshift","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"redshift","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"redshift","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"redshift","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"redshift","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"redshift","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"redshift","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"redshift","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"redshift","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"redshift","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"redshift","sql":"UINT","expected":"UINT"} +{"dialect":"redshift","sql":"UINT128","expected":"UINT128"} +{"dialect":"redshift","sql":"UINT256","expected":"UINT256"} +{"dialect":"redshift","sql":"UNION","expected":"UNION"} +{"dialect":"redshift","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"redshift","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"redshift","sql":"UUID","expected":"UUID"} +{"dialect":"redshift","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"redshift","sql":"VARBYTE","expected":"VARBINARY"} +{"dialect":"redshift","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"redshift","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"redshift","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"redshift","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"redshift","sql":"XML","expected":"XML"} +{"dialect":"risingwave","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"risingwave","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"risingwave","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"risingwave","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"risingwave","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"risingwave","sql":"BIGSERIAL","expected":"BIGSERIAL"} +{"dialect":"risingwave","sql":"BINARY","expected":"BINARY"} +{"dialect":"risingwave","sql":"BIT","expected":"BIT"} +{"dialect":"risingwave","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"risingwave","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"risingwave","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"risingwave","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"risingwave","sql":"BYTE","expected":"TINYINT"} +{"dialect":"risingwave","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"risingwave","sql":"CHAR","expected":"CHAR"} +{"dialect":"risingwave","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"risingwave","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"risingwave","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"risingwave","sql":"CLOB","expected":"TEXT"} +{"dialect":"risingwave","sql":"CSTRING","expected":"USERDEFINED"} +{"dialect":"risingwave","sql":"DATE","expected":"DATE"} +{"dialect":"risingwave","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"risingwave","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"risingwave","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"risingwave","sql":"DEC","expected":"DECIMAL"} +{"dialect":"risingwave","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"risingwave","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"risingwave","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"risingwave","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"risingwave","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"risingwave","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"risingwave","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"risingwave","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"risingwave","sql":"ENUM","expected":"ENUM"} +{"dialect":"risingwave","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"risingwave","sql":"FLOAT","expected":"DOUBLE"} +{"dialect":"risingwave","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"risingwave","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"risingwave","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"risingwave","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"risingwave","sql":"HSTORE","expected":"HSTORE"} +{"dialect":"risingwave","sql":"HUGEINT","expected":"INT128"} +{"dialect":"risingwave","sql":"INET","expected":"INET"} +{"dialect":"risingwave","sql":"INT","expected":"INT"} +{"dialect":"risingwave","sql":"INT1","expected":"TINYINT"} +{"dialect":"risingwave","sql":"INT128","expected":"INT128"} +{"dialect":"risingwave","sql":"INT16","expected":"SMALLINT"} +{"dialect":"risingwave","sql":"INT2","expected":"SMALLINT"} +{"dialect":"risingwave","sql":"INT256","expected":"INT256"} +{"dialect":"risingwave","sql":"INT32","expected":"INT"} +{"dialect":"risingwave","sql":"INT4","expected":"INT"} +{"dialect":"risingwave","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"risingwave","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"risingwave","sql":"INT64","expected":"BIGINT"} +{"dialect":"risingwave","sql":"INT8","expected":"BIGINT"} +{"dialect":"risingwave","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"risingwave","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"risingwave","sql":"INTEGER","expected":"INT"} +{"dialect":"risingwave","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"risingwave","sql":"JSON","expected":"JSON"} +{"dialect":"risingwave","sql":"JSONB","expected":"JSONB"} +{"dialect":"risingwave","sql":"LIST","expected":"LIST"} +{"dialect":"risingwave","sql":"LONG","expected":"BIGINT"} +{"dialect":"risingwave","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"risingwave","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"risingwave","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"risingwave","sql":"MAP","expected":"MAP"} +{"dialect":"risingwave","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"risingwave","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"risingwave","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"risingwave","sql":"MONEY","expected":"MONEY"} +{"dialect":"risingwave","sql":"NAME","expected":"NAME"} +{"dialect":"risingwave","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"risingwave","sql":"NULL","expected":"NULL"} +{"dialect":"risingwave","sql":"NULLABLE","expected":"USERDEFINED"} +{"dialect":"risingwave","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"risingwave","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"risingwave","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"risingwave","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"risingwave","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"risingwave","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"risingwave","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"risingwave","sql":"OID","expected":"USERDEFINED"} +{"dialect":"risingwave","sql":"POINT","expected":"POINT"} +{"dialect":"risingwave","sql":"RANGE","expected":"RANGE"} +{"dialect":"risingwave","sql":"REAL","expected":"FLOAT"} +{"dialect":"risingwave","sql":"REGCLASS","expected":"USERDEFINED"} +{"dialect":"risingwave","sql":"REGCOLLATION","expected":"USERDEFINED"} +{"dialect":"risingwave","sql":"REGCONFIG","expected":"USERDEFINED"} +{"dialect":"risingwave","sql":"REGDICTIONARY","expected":"USERDEFINED"} +{"dialect":"risingwave","sql":"REGNAMESPACE","expected":"USERDEFINED"} +{"dialect":"risingwave","sql":"REGOPER","expected":"USERDEFINED"} +{"dialect":"risingwave","sql":"REGOPERATOR","expected":"USERDEFINED"} +{"dialect":"risingwave","sql":"REGPROC","expected":"USERDEFINED"} +{"dialect":"risingwave","sql":"REGPROCEDURE","expected":"USERDEFINED"} +{"dialect":"risingwave","sql":"REGROLE","expected":"USERDEFINED"} +{"dialect":"risingwave","sql":"REGTYPE","expected":"USERDEFINED"} +{"dialect":"risingwave","sql":"SERIAL","expected":"SERIAL"} +{"dialect":"risingwave","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"risingwave","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"risingwave","sql":"SMALLSERIAL","expected":"SMALLSERIAL"} +{"dialect":"risingwave","sql":"STR","expected":"TEXT"} +{"dialect":"risingwave","sql":"STRING","expected":"TEXT"} +{"dialect":"risingwave","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"risingwave","sql":"TEXT","expected":"TEXT"} +{"dialect":"risingwave","sql":"TIME","expected":"TIME"} +{"dialect":"risingwave","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"risingwave","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"risingwave","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"risingwave","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"risingwave","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"risingwave","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"risingwave","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"risingwave","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"risingwave","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"risingwave","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"risingwave","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"risingwave","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"risingwave","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"risingwave","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"risingwave","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"risingwave","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"risingwave","sql":"UINT","expected":"UINT"} +{"dialect":"risingwave","sql":"UINT128","expected":"UINT128"} +{"dialect":"risingwave","sql":"UINT256","expected":"UINT256"} +{"dialect":"risingwave","sql":"UNION","expected":"UNION"} +{"dialect":"risingwave","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"risingwave","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"risingwave","sql":"UUID","expected":"UUID"} +{"dialect":"risingwave","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"risingwave","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"risingwave","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"risingwave","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"risingwave","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"risingwave","sql":"XML","expected":"XML"} +{"dialect":"singlestore","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"singlestore","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"singlestore","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"singlestore","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"singlestore","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"singlestore","sql":"BINARY","expected":"BINARY"} +{"dialect":"singlestore","sql":"BIT","expected":"BIT"} +{"dialect":"singlestore","sql":"BLOB","expected":"BLOB"} +{"dialect":"singlestore","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"singlestore","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"singlestore","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"singlestore","sql":"BSON","expected":"JSONB"} +{"dialect":"singlestore","sql":"BYTE","expected":"TINYINT"} +{"dialect":"singlestore","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"singlestore","sql":"CHAR","expected":"CHAR"} +{"dialect":"singlestore","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"singlestore","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"singlestore","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"singlestore","sql":"CLOB","expected":"TEXT"} +{"dialect":"singlestore","sql":"DATE","expected":"DATE"} +{"dialect":"singlestore","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"singlestore","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"singlestore","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"singlestore","sql":"DEC","expected":"DECIMAL"} +{"dialect":"singlestore","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"singlestore","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"singlestore","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"singlestore","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"singlestore","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"singlestore","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"singlestore","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"singlestore","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"singlestore","sql":"ENUM","expected":"ENUM"} +{"dialect":"singlestore","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"singlestore","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"singlestore","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"singlestore","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"singlestore","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"singlestore","sql":"GEOGRAPHYPOINT","expected":"GEOGRAPHYPOINT"} +{"dialect":"singlestore","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"singlestore","sql":"HUGEINT","expected":"INT128"} +{"dialect":"singlestore","sql":"INET","expected":"INET"} +{"dialect":"singlestore","sql":"INT","expected":"INT"} +{"dialect":"singlestore","sql":"INT1","expected":"TINYINT"} +{"dialect":"singlestore","sql":"INT128","expected":"INT128"} +{"dialect":"singlestore","sql":"INT16","expected":"SMALLINT"} +{"dialect":"singlestore","sql":"INT2","expected":"SMALLINT"} +{"dialect":"singlestore","sql":"INT256","expected":"INT256"} +{"dialect":"singlestore","sql":"INT32","expected":"INT"} +{"dialect":"singlestore","sql":"INT4","expected":"INT"} +{"dialect":"singlestore","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"singlestore","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"singlestore","sql":"INT64","expected":"BIGINT"} +{"dialect":"singlestore","sql":"INT8","expected":"TINYINT"} +{"dialect":"singlestore","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"singlestore","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"singlestore","sql":"INTEGER","expected":"INT"} +{"dialect":"singlestore","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"singlestore","sql":"JSON","expected":"JSON"} +{"dialect":"singlestore","sql":"JSONB","expected":"JSONB"} +{"dialect":"singlestore","sql":"LIST","expected":"LIST"} +{"dialect":"singlestore","sql":"LONG","expected":"BIGINT"} +{"dialect":"singlestore","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"singlestore","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"singlestore","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"singlestore","sql":"MAP","expected":"MAP"} +{"dialect":"singlestore","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"singlestore","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"singlestore","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"singlestore","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"singlestore","sql":"NULL","expected":"NULL"} +{"dialect":"singlestore","sql":"NULLABLE","expected":null} +{"dialect":"singlestore","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"singlestore","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"singlestore","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"singlestore","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"singlestore","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"singlestore","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"singlestore","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"singlestore","sql":"RANGE","expected":"RANGE"} +{"dialect":"singlestore","sql":"REAL","expected":"FLOAT"} +{"dialect":"singlestore","sql":"RECORD","expected":"STRUCT"} +{"dialect":"singlestore","sql":"SERIAL","expected":"SERIAL"} +{"dialect":"singlestore","sql":"SET","expected":"SET"} +{"dialect":"singlestore","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"singlestore","sql":"SIGNED","expected":"BIGINT"} +{"dialect":"singlestore","sql":"SIGNED INTEGER","expected":"BIGINT"} +{"dialect":"singlestore","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"singlestore","sql":"STR","expected":"TEXT"} +{"dialect":"singlestore","sql":"STRING","expected":"TEXT"} +{"dialect":"singlestore","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"singlestore","sql":"TEXT","expected":"TEXT"} +{"dialect":"singlestore","sql":"TIME","expected":"TIME"} +{"dialect":"singlestore","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"singlestore","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"singlestore","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"singlestore","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"singlestore","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"singlestore","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"singlestore","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"singlestore","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"singlestore","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"singlestore","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"singlestore","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"singlestore","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"singlestore","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"singlestore","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"singlestore","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"singlestore","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"singlestore","sql":"UINT","expected":"UINT"} +{"dialect":"singlestore","sql":"UINT128","expected":"UINT128"} +{"dialect":"singlestore","sql":"UINT256","expected":"UINT256"} +{"dialect":"singlestore","sql":"UNION","expected":"UNION"} +{"dialect":"singlestore","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"singlestore","sql":"UNSIGNED","expected":"UBIGINT"} +{"dialect":"singlestore","sql":"UNSIGNED INTEGER","expected":"UBIGINT"} +{"dialect":"singlestore","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"singlestore","sql":"UUID","expected":"UUID"} +{"dialect":"singlestore","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"singlestore","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"singlestore","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"singlestore","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"singlestore","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"singlestore","sql":"YEAR","expected":"YEAR"} +{"dialect":"snowflake","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"snowflake","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"snowflake","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"snowflake","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"snowflake","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"snowflake","sql":"BINARY","expected":"BINARY"} +{"dialect":"snowflake","sql":"BIT","expected":"BIT"} +{"dialect":"snowflake","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"snowflake","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"snowflake","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"snowflake","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"snowflake","sql":"BYTE","expected":"TINYINT"} +{"dialect":"snowflake","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"snowflake","sql":"BYTEINT","expected":"INT"} +{"dialect":"snowflake","sql":"CHAR","expected":"CHAR"} +{"dialect":"snowflake","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"snowflake","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"snowflake","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"snowflake","sql":"CLOB","expected":"TEXT"} +{"dialect":"snowflake","sql":"DATE","expected":"DATE"} +{"dialect":"snowflake","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"snowflake","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"snowflake","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"snowflake","sql":"DEC","expected":"DECIMAL"} +{"dialect":"snowflake","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"snowflake","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"snowflake","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"snowflake","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"snowflake","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"snowflake","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"snowflake","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"snowflake","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"snowflake","sql":"ENUM","expected":"ENUM"} +{"dialect":"snowflake","sql":"FILE","expected":"FILE"} +{"dialect":"snowflake","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"snowflake","sql":"FLOAT","expected":"DOUBLE"} +{"dialect":"snowflake","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"snowflake","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"snowflake","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"snowflake","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"snowflake","sql":"HUGEINT","expected":"INT128"} +{"dialect":"snowflake","sql":"INET","expected":"INET"} +{"dialect":"snowflake","sql":"INT","expected":"INT"} +{"dialect":"snowflake","sql":"INT1","expected":"TINYINT"} +{"dialect":"snowflake","sql":"INT128","expected":"INT128"} +{"dialect":"snowflake","sql":"INT16","expected":"SMALLINT"} +{"dialect":"snowflake","sql":"INT2","expected":"SMALLINT"} +{"dialect":"snowflake","sql":"INT256","expected":"INT256"} +{"dialect":"snowflake","sql":"INT32","expected":"INT"} +{"dialect":"snowflake","sql":"INT4","expected":"INT"} +{"dialect":"snowflake","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"snowflake","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"snowflake","sql":"INT64","expected":"BIGINT"} +{"dialect":"snowflake","sql":"INT8","expected":"TINYINT"} +{"dialect":"snowflake","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"snowflake","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"snowflake","sql":"INTEGER","expected":"INT"} +{"dialect":"snowflake","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"snowflake","sql":"JSON","expected":"JSON"} +{"dialect":"snowflake","sql":"JSONB","expected":"JSONB"} +{"dialect":"snowflake","sql":"LIST","expected":"LIST"} +{"dialect":"snowflake","sql":"LONG","expected":"BIGINT"} +{"dialect":"snowflake","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"snowflake","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"snowflake","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"snowflake","sql":"MAP","expected":"MAP"} +{"dialect":"snowflake","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"snowflake","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"snowflake","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"snowflake","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"snowflake","sql":"NCHAR VARYING","expected":"VARCHAR"} +{"dialect":"snowflake","sql":"NULL","expected":"NULL"} +{"dialect":"snowflake","sql":"NULLABLE","expected":null} +{"dialect":"snowflake","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"snowflake","sql":"NUMBER(38, 0)","expected":"DECIMAL"} +{"dialect":"snowflake","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"snowflake","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"snowflake","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"snowflake","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"snowflake","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"snowflake","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"snowflake","sql":"RANGE","expected":"RANGE"} +{"dialect":"snowflake","sql":"REAL","expected":"FLOAT"} +{"dialect":"snowflake","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"snowflake","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"snowflake","sql":"SQL_DOUBLE","expected":"DOUBLE"} +{"dialect":"snowflake","sql":"SQL_VARCHAR","expected":"VARCHAR"} +{"dialect":"snowflake","sql":"STR","expected":"TEXT"} +{"dialect":"snowflake","sql":"STRING","expected":"TEXT"} +{"dialect":"snowflake","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"snowflake","sql":"TEXT","expected":"TEXT"} +{"dialect":"snowflake","sql":"TIME","expected":"TIME"} +{"dialect":"snowflake","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"snowflake","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"snowflake","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"snowflake","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"snowflake","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"snowflake","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"snowflake","sql":"TIMESTAMP_TZ","expected":"TIMESTAMPTZ"} +{"dialect":"snowflake","sql":"TIMESTAMP_TZ(9)","expected":"TIMESTAMPTZ"} +{"dialect":"snowflake","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"snowflake","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"snowflake","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"snowflake","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"snowflake","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"snowflake","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"snowflake","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"snowflake","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"snowflake","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"snowflake","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"snowflake","sql":"UINT","expected":"UINT"} +{"dialect":"snowflake","sql":"UINT128","expected":"UINT128"} +{"dialect":"snowflake","sql":"UINT256","expected":"UINT256"} +{"dialect":"snowflake","sql":"UNION","expected":"UNION"} +{"dialect":"snowflake","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"snowflake","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"snowflake","sql":"UUID","expected":"UUID"} +{"dialect":"snowflake","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"snowflake","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"snowflake","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"snowflake","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"snowflake","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"snowflake","sql":"VECTOR(FLOAT, 768)","expected":"VECTOR"} +{"dialect":"spark","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"spark","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"spark","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"spark","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"spark","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"spark","sql":"BINARY","expected":"BINARY"} +{"dialect":"spark","sql":"BIT","expected":"BIT"} +{"dialect":"spark","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"spark","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"spark","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"spark","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"spark","sql":"BYTE","expected":"TINYINT"} +{"dialect":"spark","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"spark","sql":"CHAR","expected":"CHAR"} +{"dialect":"spark","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"spark","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"spark","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"spark","sql":"CLOB","expected":"TEXT"} +{"dialect":"spark","sql":"DATE","expected":"DATE"} +{"dialect":"spark","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"spark","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"spark","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"spark","sql":"DEC","expected":"DECIMAL"} +{"dialect":"spark","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"spark","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"spark","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"spark","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"spark","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"spark","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"spark","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"spark","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"spark","sql":"ENUM","expected":"ENUM"} +{"dialect":"spark","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"spark","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"spark","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"spark","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"spark","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"spark","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"spark","sql":"HUGEINT","expected":"INT128"} +{"dialect":"spark","sql":"INET","expected":"INET"} +{"dialect":"spark","sql":"INT","expected":"INT"} +{"dialect":"spark","sql":"INT1","expected":"TINYINT"} +{"dialect":"spark","sql":"INT128","expected":"INT128"} +{"dialect":"spark","sql":"INT16","expected":"SMALLINT"} +{"dialect":"spark","sql":"INT2","expected":"SMALLINT"} +{"dialect":"spark","sql":"INT256","expected":"INT256"} +{"dialect":"spark","sql":"INT32","expected":"INT"} +{"dialect":"spark","sql":"INT4","expected":"INT"} +{"dialect":"spark","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"spark","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"spark","sql":"INT64","expected":"BIGINT"} +{"dialect":"spark","sql":"INT8","expected":"TINYINT"} +{"dialect":"spark","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"spark","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"spark","sql":"INTEGER","expected":"INT"} +{"dialect":"spark","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"spark","sql":"JSON","expected":"JSON"} +{"dialect":"spark","sql":"JSONB","expected":"JSONB"} +{"dialect":"spark","sql":"LIST","expected":"LIST"} +{"dialect":"spark","sql":"LONG","expected":"BIGINT"} +{"dialect":"spark","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"spark","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"spark","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"spark","sql":"MAP","expected":"MAP"} +{"dialect":"spark","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"spark","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"spark","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"spark","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"spark","sql":"NULL","expected":"NULL"} +{"dialect":"spark","sql":"NULLABLE","expected":null} +{"dialect":"spark","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"spark","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"spark","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"spark","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"spark","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"spark","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"spark","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"spark","sql":"RANGE","expected":"RANGE"} +{"dialect":"spark","sql":"REAL","expected":"FLOAT"} +{"dialect":"spark","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"spark","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"spark","sql":"STR","expected":"TEXT"} +{"dialect":"spark","sql":"STRING","expected":"TEXT"} +{"dialect":"spark","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"spark","sql":"TEXT","expected":"TEXT"} +{"dialect":"spark","sql":"TIME","expected":"TIME"} +{"dialect":"spark","sql":"TIMESTAMP","expected":"TIMESTAMPTZ"} +{"dialect":"spark","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"spark","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"spark","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"spark","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"spark","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"spark","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"spark","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"spark","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"spark","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"spark","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"spark","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"spark","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"spark","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"spark","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"spark","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"spark","sql":"UINT","expected":"UINT"} +{"dialect":"spark","sql":"UINT128","expected":"UINT128"} +{"dialect":"spark","sql":"UINT256","expected":"UINT256"} +{"dialect":"spark","sql":"UNION","expected":"UNION"} +{"dialect":"spark","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"spark","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"spark","sql":"UUID","expected":"UUID"} +{"dialect":"spark","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"spark","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"spark","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"spark","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"spark","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"sqlite","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"sqlite","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"sqlite","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"sqlite","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"sqlite","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"sqlite","sql":"BINARY","expected":"BINARY"} +{"dialect":"sqlite","sql":"BIT","expected":"BIT"} +{"dialect":"sqlite","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"sqlite","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"sqlite","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"sqlite","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"sqlite","sql":"BYTE","expected":"TINYINT"} +{"dialect":"sqlite","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"sqlite","sql":"CHAR","expected":"CHAR"} +{"dialect":"sqlite","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"sqlite","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"sqlite","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"sqlite","sql":"CLOB","expected":"TEXT"} +{"dialect":"sqlite","sql":"DATE","expected":"DATE"} +{"dialect":"sqlite","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"sqlite","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"sqlite","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"sqlite","sql":"DEC","expected":"DECIMAL"} +{"dialect":"sqlite","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"sqlite","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"sqlite","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"sqlite","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"sqlite","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"sqlite","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"sqlite","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"sqlite","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"sqlite","sql":"ENUM","expected":"ENUM"} +{"dialect":"sqlite","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"sqlite","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"sqlite","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"sqlite","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"sqlite","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"sqlite","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"sqlite","sql":"HUGEINT","expected":"INT128"} +{"dialect":"sqlite","sql":"INET","expected":"INET"} +{"dialect":"sqlite","sql":"INT","expected":"INT"} +{"dialect":"sqlite","sql":"INT1","expected":"TINYINT"} +{"dialect":"sqlite","sql":"INT128","expected":"INT128"} +{"dialect":"sqlite","sql":"INT16","expected":"SMALLINT"} +{"dialect":"sqlite","sql":"INT2","expected":"SMALLINT"} +{"dialect":"sqlite","sql":"INT256","expected":"INT256"} +{"dialect":"sqlite","sql":"INT32","expected":"INT"} +{"dialect":"sqlite","sql":"INT4","expected":"INT"} +{"dialect":"sqlite","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"sqlite","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"sqlite","sql":"INT64","expected":"BIGINT"} +{"dialect":"sqlite","sql":"INT8","expected":"TINYINT"} +{"dialect":"sqlite","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"sqlite","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"sqlite","sql":"INTEGER","expected":"INT"} +{"dialect":"sqlite","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"sqlite","sql":"JSON","expected":"JSON"} +{"dialect":"sqlite","sql":"JSONB","expected":"JSONB"} +{"dialect":"sqlite","sql":"LIST","expected":"LIST"} +{"dialect":"sqlite","sql":"LONG","expected":"BIGINT"} +{"dialect":"sqlite","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"sqlite","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"sqlite","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"sqlite","sql":"MAP","expected":"MAP"} +{"dialect":"sqlite","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"sqlite","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"sqlite","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"sqlite","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"sqlite","sql":"NULL","expected":"NULL"} +{"dialect":"sqlite","sql":"NULLABLE","expected":"USERDEFINED"} +{"dialect":"sqlite","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"sqlite","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"sqlite","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"sqlite","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"sqlite","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"sqlite","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"sqlite","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"sqlite","sql":"RANGE","expected":"RANGE"} +{"dialect":"sqlite","sql":"REAL","expected":"FLOAT"} +{"dialect":"sqlite","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"sqlite","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"sqlite","sql":"STR","expected":"TEXT"} +{"dialect":"sqlite","sql":"STRING","expected":"TEXT"} +{"dialect":"sqlite","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"sqlite","sql":"TEXT","expected":"TEXT"} +{"dialect":"sqlite","sql":"TIME","expected":"TIME"} +{"dialect":"sqlite","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"sqlite","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"sqlite","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"sqlite","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"sqlite","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"sqlite","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"sqlite","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"sqlite","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"sqlite","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"sqlite","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"sqlite","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"sqlite","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"sqlite","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"sqlite","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"sqlite","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"sqlite","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"sqlite","sql":"UINT","expected":"UINT"} +{"dialect":"sqlite","sql":"UINT128","expected":"UINT128"} +{"dialect":"sqlite","sql":"UINT256","expected":"UINT256"} +{"dialect":"sqlite","sql":"UNION","expected":"UNION"} +{"dialect":"sqlite","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"sqlite","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"sqlite","sql":"UUID","expected":"UUID"} +{"dialect":"sqlite","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"sqlite","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"sqlite","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"sqlite","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"sqlite","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"starrocks","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"starrocks","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"starrocks","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"starrocks","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"starrocks","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"starrocks","sql":"BINARY","expected":"BINARY"} +{"dialect":"starrocks","sql":"BIT","expected":"BIT"} +{"dialect":"starrocks","sql":"BLOB","expected":"BLOB"} +{"dialect":"starrocks","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"starrocks","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"starrocks","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"starrocks","sql":"BYTE","expected":"TINYINT"} +{"dialect":"starrocks","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"starrocks","sql":"CHAR","expected":"CHAR"} +{"dialect":"starrocks","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"starrocks","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"starrocks","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"starrocks","sql":"CLOB","expected":"TEXT"} +{"dialect":"starrocks","sql":"DATE","expected":"DATE"} +{"dialect":"starrocks","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"starrocks","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"starrocks","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"starrocks","sql":"DEC","expected":"DECIMAL"} +{"dialect":"starrocks","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"starrocks","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"starrocks","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"starrocks","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"starrocks","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"starrocks","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"starrocks","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"starrocks","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"starrocks","sql":"ENUM","expected":"ENUM"} +{"dialect":"starrocks","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"starrocks","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"starrocks","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"starrocks","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"starrocks","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"starrocks","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"starrocks","sql":"HUGEINT","expected":"INT128"} +{"dialect":"starrocks","sql":"INET","expected":"INET"} +{"dialect":"starrocks","sql":"INT","expected":"INT"} +{"dialect":"starrocks","sql":"INT1","expected":"TINYINT"} +{"dialect":"starrocks","sql":"INT128","expected":"INT128"} +{"dialect":"starrocks","sql":"INT16","expected":"SMALLINT"} +{"dialect":"starrocks","sql":"INT2","expected":"SMALLINT"} +{"dialect":"starrocks","sql":"INT256","expected":"INT256"} +{"dialect":"starrocks","sql":"INT32","expected":"INT"} +{"dialect":"starrocks","sql":"INT4","expected":"INT"} +{"dialect":"starrocks","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"starrocks","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"starrocks","sql":"INT64","expected":"BIGINT"} +{"dialect":"starrocks","sql":"INT8","expected":"TINYINT"} +{"dialect":"starrocks","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"starrocks","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"starrocks","sql":"INTEGER","expected":"INT"} +{"dialect":"starrocks","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"starrocks","sql":"JSON","expected":"JSON"} +{"dialect":"starrocks","sql":"JSONB","expected":"JSONB"} +{"dialect":"starrocks","sql":"LARGEINT","expected":"INT128"} +{"dialect":"starrocks","sql":"LIST","expected":"LIST"} +{"dialect":"starrocks","sql":"LONG","expected":"BIGINT"} +{"dialect":"starrocks","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"starrocks","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"starrocks","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"starrocks","sql":"MAP","expected":"MAP"} +{"dialect":"starrocks","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"starrocks","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"starrocks","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"starrocks","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"starrocks","sql":"NULL","expected":"NULL"} +{"dialect":"starrocks","sql":"NULLABLE","expected":null} +{"dialect":"starrocks","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"starrocks","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"starrocks","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"starrocks","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"starrocks","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"starrocks","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"starrocks","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"starrocks","sql":"RANGE","expected":"RANGE"} +{"dialect":"starrocks","sql":"REAL","expected":"FLOAT"} +{"dialect":"starrocks","sql":"SERIAL","expected":"SERIAL"} +{"dialect":"starrocks","sql":"SET","expected":"SET"} +{"dialect":"starrocks","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"starrocks","sql":"SIGNED","expected":"BIGINT"} +{"dialect":"starrocks","sql":"SIGNED INTEGER","expected":"BIGINT"} +{"dialect":"starrocks","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"starrocks","sql":"STR","expected":"TEXT"} +{"dialect":"starrocks","sql":"STRING","expected":"TEXT"} +{"dialect":"starrocks","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"starrocks","sql":"TEXT","expected":"TEXT"} +{"dialect":"starrocks","sql":"TIME","expected":"TIME"} +{"dialect":"starrocks","sql":"TIMESTAMP","expected":"TIMESTAMPTZ"} +{"dialect":"starrocks","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"starrocks","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"starrocks","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"starrocks","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"starrocks","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"starrocks","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"starrocks","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"starrocks","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"starrocks","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"starrocks","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"starrocks","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"starrocks","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"starrocks","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"starrocks","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"starrocks","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"starrocks","sql":"UINT","expected":"UINT"} +{"dialect":"starrocks","sql":"UINT128","expected":"UINT128"} +{"dialect":"starrocks","sql":"UINT256","expected":"UINT256"} +{"dialect":"starrocks","sql":"UNION","expected":"UNION"} +{"dialect":"starrocks","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"starrocks","sql":"UNSIGNED","expected":"UBIGINT"} +{"dialect":"starrocks","sql":"UNSIGNED INTEGER","expected":"UBIGINT"} +{"dialect":"starrocks","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"starrocks","sql":"UUID","expected":"UUID"} +{"dialect":"starrocks","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"starrocks","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"starrocks","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"starrocks","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"starrocks","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"starrocks","sql":"YEAR","expected":"YEAR"} +{"dialect":"tableau","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"tableau","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"tableau","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"tableau","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"tableau","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"tableau","sql":"BINARY","expected":"BINARY"} +{"dialect":"tableau","sql":"BIT","expected":"BIT"} +{"dialect":"tableau","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"tableau","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"tableau","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"tableau","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"tableau","sql":"BYTE","expected":"TINYINT"} +{"dialect":"tableau","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"tableau","sql":"CHAR","expected":"CHAR"} +{"dialect":"tableau","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"tableau","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"tableau","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"tableau","sql":"CLOB","expected":"TEXT"} +{"dialect":"tableau","sql":"DATE","expected":"DATE"} +{"dialect":"tableau","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"tableau","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"tableau","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"tableau","sql":"DEC","expected":"DECIMAL"} +{"dialect":"tableau","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"tableau","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"tableau","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"tableau","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"tableau","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"tableau","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"tableau","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"tableau","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"tableau","sql":"ENUM","expected":"ENUM"} +{"dialect":"tableau","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"tableau","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"tableau","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"tableau","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"tableau","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"tableau","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"tableau","sql":"HUGEINT","expected":"INT128"} +{"dialect":"tableau","sql":"INET","expected":"INET"} +{"dialect":"tableau","sql":"INT","expected":"INT"} +{"dialect":"tableau","sql":"INT1","expected":"TINYINT"} +{"dialect":"tableau","sql":"INT128","expected":"INT128"} +{"dialect":"tableau","sql":"INT16","expected":"SMALLINT"} +{"dialect":"tableau","sql":"INT2","expected":"SMALLINT"} +{"dialect":"tableau","sql":"INT256","expected":"INT256"} +{"dialect":"tableau","sql":"INT32","expected":"INT"} +{"dialect":"tableau","sql":"INT4","expected":"INT"} +{"dialect":"tableau","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"tableau","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"tableau","sql":"INT64","expected":"BIGINT"} +{"dialect":"tableau","sql":"INT8","expected":"TINYINT"} +{"dialect":"tableau","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"tableau","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"tableau","sql":"INTEGER","expected":"INT"} +{"dialect":"tableau","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"tableau","sql":"JSON","expected":"JSON"} +{"dialect":"tableau","sql":"JSONB","expected":"JSONB"} +{"dialect":"tableau","sql":"LIST","expected":"LIST"} +{"dialect":"tableau","sql":"LONG","expected":"BIGINT"} +{"dialect":"tableau","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"tableau","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"tableau","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"tableau","sql":"MAP","expected":"MAP"} +{"dialect":"tableau","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"tableau","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"tableau","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"tableau","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"tableau","sql":"NULL","expected":"NULL"} +{"dialect":"tableau","sql":"NULLABLE","expected":"USERDEFINED"} +{"dialect":"tableau","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"tableau","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"tableau","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"tableau","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"tableau","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"tableau","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"tableau","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"tableau","sql":"RANGE","expected":"RANGE"} +{"dialect":"tableau","sql":"REAL","expected":"FLOAT"} +{"dialect":"tableau","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"tableau","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"tableau","sql":"STR","expected":"TEXT"} +{"dialect":"tableau","sql":"STRING","expected":"TEXT"} +{"dialect":"tableau","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"tableau","sql":"TEXT","expected":"TEXT"} +{"dialect":"tableau","sql":"TIME","expected":"TIME"} +{"dialect":"tableau","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"tableau","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"tableau","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"tableau","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"tableau","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"tableau","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"tableau","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"tableau","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"tableau","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"tableau","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"tableau","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"tableau","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"tableau","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"tableau","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"tableau","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"tableau","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"tableau","sql":"UINT","expected":"UINT"} +{"dialect":"tableau","sql":"UINT128","expected":"UINT128"} +{"dialect":"tableau","sql":"UINT256","expected":"UINT256"} +{"dialect":"tableau","sql":"UNION","expected":"UNION"} +{"dialect":"tableau","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"tableau","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"tableau","sql":"UUID","expected":"UUID"} +{"dialect":"tableau","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"tableau","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"tableau","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"tableau","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"tableau","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"teradata","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"teradata","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"teradata","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"teradata","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"teradata","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"teradata","sql":"BINARY","expected":"BINARY"} +{"dialect":"teradata","sql":"BIT","expected":"BIT"} +{"dialect":"teradata","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"teradata","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"teradata","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"teradata","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"teradata","sql":"BYTE","expected":"TINYINT"} +{"dialect":"teradata","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"teradata","sql":"BYTEINT","expected":"SMALLINT"} +{"dialect":"teradata","sql":"CHAR","expected":"CHAR"} +{"dialect":"teradata","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"teradata","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"teradata","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"teradata","sql":"CLOB","expected":"TEXT"} +{"dialect":"teradata","sql":"DATE","expected":"DATE"} +{"dialect":"teradata","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"teradata","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"teradata","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"teradata","sql":"DEC","expected":"DECIMAL"} +{"dialect":"teradata","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"teradata","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"teradata","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"teradata","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"teradata","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"teradata","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"teradata","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"teradata","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"teradata","sql":"ENUM","expected":"ENUM"} +{"dialect":"teradata","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"teradata","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"teradata","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"teradata","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"teradata","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"teradata","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"teradata","sql":"HUGEINT","expected":"INT128"} +{"dialect":"teradata","sql":"INET","expected":"INET"} +{"dialect":"teradata","sql":"INT","expected":"INT"} +{"dialect":"teradata","sql":"INT1","expected":"TINYINT"} +{"dialect":"teradata","sql":"INT128","expected":"INT128"} +{"dialect":"teradata","sql":"INT16","expected":"SMALLINT"} +{"dialect":"teradata","sql":"INT2","expected":"SMALLINT"} +{"dialect":"teradata","sql":"INT256","expected":"INT256"} +{"dialect":"teradata","sql":"INT32","expected":"INT"} +{"dialect":"teradata","sql":"INT4","expected":"INT"} +{"dialect":"teradata","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"teradata","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"teradata","sql":"INT64","expected":"BIGINT"} +{"dialect":"teradata","sql":"INT8","expected":"TINYINT"} +{"dialect":"teradata","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"teradata","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"teradata","sql":"INTEGER","expected":"INT"} +{"dialect":"teradata","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"teradata","sql":"JSON","expected":"JSON"} +{"dialect":"teradata","sql":"JSONB","expected":"JSONB"} +{"dialect":"teradata","sql":"LIST","expected":"LIST"} +{"dialect":"teradata","sql":"LONG","expected":"BIGINT"} +{"dialect":"teradata","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"teradata","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"teradata","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"teradata","sql":"MAP","expected":"MAP"} +{"dialect":"teradata","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"teradata","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"teradata","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"teradata","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"teradata","sql":"NULL","expected":"NULL"} +{"dialect":"teradata","sql":"NULLABLE","expected":"USERDEFINED"} +{"dialect":"teradata","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"teradata","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"teradata","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"teradata","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"teradata","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"teradata","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"teradata","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"teradata","sql":"RANGE","expected":"RANGE"} +{"dialect":"teradata","sql":"REAL","expected":"FLOAT"} +{"dialect":"teradata","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"teradata","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"teradata","sql":"STR","expected":"TEXT"} +{"dialect":"teradata","sql":"STRING","expected":"TEXT"} +{"dialect":"teradata","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"teradata","sql":"ST_GEOMETRY","expected":"GEOMETRY"} +{"dialect":"teradata","sql":"TEXT","expected":"TEXT"} +{"dialect":"teradata","sql":"TIME","expected":"TIME"} +{"dialect":"teradata","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"teradata","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"teradata","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"teradata","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"teradata","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"teradata","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"teradata","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"teradata","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"teradata","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"teradata","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"teradata","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"teradata","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"teradata","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"teradata","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"teradata","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"teradata","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"teradata","sql":"UINT","expected":"UINT"} +{"dialect":"teradata","sql":"UINT128","expected":"UINT128"} +{"dialect":"teradata","sql":"UINT256","expected":"UINT256"} +{"dialect":"teradata","sql":"UNION","expected":"UNION"} +{"dialect":"teradata","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"teradata","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"teradata","sql":"UUID","expected":"UUID"} +{"dialect":"teradata","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"teradata","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"teradata","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"teradata","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"teradata","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"trino","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"trino","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"trino","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"trino","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"trino","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"trino","sql":"BINARY","expected":"BINARY"} +{"dialect":"trino","sql":"BIT","expected":"BIT"} +{"dialect":"trino","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"trino","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"trino","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"trino","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"trino","sql":"BYTE","expected":"TINYINT"} +{"dialect":"trino","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"trino","sql":"CHAR","expected":"CHAR"} +{"dialect":"trino","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"trino","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"trino","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"trino","sql":"CLOB","expected":"TEXT"} +{"dialect":"trino","sql":"DATE","expected":"DATE"} +{"dialect":"trino","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"trino","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"trino","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"trino","sql":"DEC","expected":"DECIMAL"} +{"dialect":"trino","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"trino","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"trino","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"trino","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"trino","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"trino","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"trino","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"trino","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"trino","sql":"ENUM","expected":"ENUM"} +{"dialect":"trino","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"trino","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"trino","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"trino","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"trino","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"trino","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"trino","sql":"HUGEINT","expected":"INT128"} +{"dialect":"trino","sql":"HYPERLOGLOG","expected":"HLLSKETCH"} +{"dialect":"trino","sql":"INET","expected":"INET"} +{"dialect":"trino","sql":"INT","expected":"INT"} +{"dialect":"trino","sql":"INT1","expected":"TINYINT"} +{"dialect":"trino","sql":"INT128","expected":"INT128"} +{"dialect":"trino","sql":"INT16","expected":"SMALLINT"} +{"dialect":"trino","sql":"INT2","expected":"SMALLINT"} +{"dialect":"trino","sql":"INT256","expected":"INT256"} +{"dialect":"trino","sql":"INT32","expected":"INT"} +{"dialect":"trino","sql":"INT4","expected":"INT"} +{"dialect":"trino","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"trino","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"trino","sql":"INT64","expected":"BIGINT"} +{"dialect":"trino","sql":"INT8","expected":"TINYINT"} +{"dialect":"trino","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"trino","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"trino","sql":"INTEGER","expected":"INT"} +{"dialect":"trino","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"trino","sql":"IPADDRESS","expected":"IPADDRESS"} +{"dialect":"trino","sql":"IPPREFIX","expected":"IPPREFIX"} +{"dialect":"trino","sql":"JSON","expected":"JSON"} +{"dialect":"trino","sql":"JSONB","expected":"JSONB"} +{"dialect":"trino","sql":"LIST","expected":"LIST"} +{"dialect":"trino","sql":"LONG","expected":"BIGINT"} +{"dialect":"trino","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"trino","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"trino","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"trino","sql":"MAP","expected":"MAP"} +{"dialect":"trino","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"trino","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"trino","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"trino","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"trino","sql":"NULL","expected":"NULL"} +{"dialect":"trino","sql":"NULLABLE","expected":null} +{"dialect":"trino","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"trino","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"trino","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"trino","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"trino","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"trino","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"trino","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"trino","sql":"RANGE","expected":"RANGE"} +{"dialect":"trino","sql":"REAL","expected":"FLOAT"} +{"dialect":"trino","sql":"ROW","expected":"STRUCT"} +{"dialect":"trino","sql":"ROW(id BIGINT, payload MAP(VARCHAR, ARRAY(DECIMAL(38, 9))))","expected":"STRUCT"} +{"dialect":"trino","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"trino","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"trino","sql":"STR","expected":"TEXT"} +{"dialect":"trino","sql":"STRING","expected":"TEXT"} +{"dialect":"trino","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"trino","sql":"TDIGEST","expected":"TDIGEST"} +{"dialect":"trino","sql":"TEXT","expected":"TEXT"} +{"dialect":"trino","sql":"TIME","expected":"TIME"} +{"dialect":"trino","sql":"TIMESTAMP","expected":"TIMESTAMP"} +{"dialect":"trino","sql":"TIMESTAMP(6) WITH TIME ZONE","expected":"TIMESTAMPTZ"} +{"dialect":"trino","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"trino","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"trino","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"trino","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"trino","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"trino","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"trino","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"trino","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"trino","sql":"TINYINT","expected":"TINYINT"} +{"dialect":"trino","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"trino","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"trino","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"trino","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"trino","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"trino","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"trino","sql":"UINT","expected":"UINT"} +{"dialect":"trino","sql":"UINT128","expected":"UINT128"} +{"dialect":"trino","sql":"UINT256","expected":"UINT256"} +{"dialect":"trino","sql":"UNION","expected":"UNION"} +{"dialect":"trino","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"trino","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"trino","sql":"UUID","expected":"UUID"} +{"dialect":"trino","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"trino","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"trino","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"trino","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"trino","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"tsql","sql":"ARRAY","expected":"ARRAY"} +{"dialect":"tsql","sql":"BIGDECIMAL","expected":"BIGDECIMAL"} +{"dialect":"tsql","sql":"BIGINT","expected":"BIGINT"} +{"dialect":"tsql","sql":"BIGNUM","expected":"BIGNUM"} +{"dialect":"tsql","sql":"BIGNUMERIC","expected":"BIGDECIMAL"} +{"dialect":"tsql","sql":"BINARY","expected":"BINARY"} +{"dialect":"tsql","sql":"BIT","expected":"BIT"} +{"dialect":"tsql","sql":"BLOB","expected":"VARBINARY"} +{"dialect":"tsql","sql":"BOOL","expected":"BOOLEAN"} +{"dialect":"tsql","sql":"BOOLEAN","expected":"BOOLEAN"} +{"dialect":"tsql","sql":"BPCHAR","expected":"BPCHAR"} +{"dialect":"tsql","sql":"BYTE","expected":"TINYINT"} +{"dialect":"tsql","sql":"BYTEA","expected":"VARBINARY"} +{"dialect":"tsql","sql":"CHAR","expected":"CHAR"} +{"dialect":"tsql","sql":"CHAR VARYING","expected":"VARCHAR"} +{"dialect":"tsql","sql":"CHARACTER","expected":"CHAR"} +{"dialect":"tsql","sql":"CHARACTER VARYING","expected":"VARCHAR"} +{"dialect":"tsql","sql":"CLOB","expected":"TEXT"} +{"dialect":"tsql","sql":"DATE","expected":"DATE"} +{"dialect":"tsql","sql":"DATEMULTIRANGE","expected":"DATEMULTIRANGE"} +{"dialect":"tsql","sql":"DATERANGE","expected":"DATERANGE"} +{"dialect":"tsql","sql":"DATETIME","expected":"DATETIME"} +{"dialect":"tsql","sql":"DATETIME2","expected":"DATETIME2"} +{"dialect":"tsql","sql":"DATETIMEOFFSET","expected":"TIMESTAMPTZ"} +{"dialect":"tsql","sql":"DATETIMEOFFSET(7)","expected":"TIMESTAMPTZ"} +{"dialect":"tsql","sql":"DEC","expected":"DECIMAL"} +{"dialect":"tsql","sql":"DECFLOAT","expected":"DECFLOAT"} +{"dialect":"tsql","sql":"DECIMAL","expected":"DECIMAL"} +{"dialect":"tsql","sql":"DECIMAL(38, 9)","expected":"DECIMAL"} +{"dialect":"tsql","sql":"DECIMAL128","expected":"DECIMAL128"} +{"dialect":"tsql","sql":"DECIMAL256","expected":"DECIMAL256"} +{"dialect":"tsql","sql":"DECIMAL32","expected":"DECIMAL32"} +{"dialect":"tsql","sql":"DECIMAL64","expected":"DECIMAL64"} +{"dialect":"tsql","sql":"DOUBLE","expected":"DOUBLE"} +{"dialect":"tsql","sql":"DOUBLE PRECISION","expected":"DOUBLE"} +{"dialect":"tsql","sql":"ENUM","expected":"ENUM"} +{"dialect":"tsql","sql":"FIXED","expected":"DECIMAL"} +{"dialect":"tsql","sql":"FLOAT","expected":"FLOAT"} +{"dialect":"tsql","sql":"FLOAT4","expected":"FLOAT"} +{"dialect":"tsql","sql":"FLOAT8","expected":"DOUBLE"} +{"dialect":"tsql","sql":"GEOGRAPHY","expected":"GEOGRAPHY"} +{"dialect":"tsql","sql":"GEOMETRY","expected":"GEOMETRY"} +{"dialect":"tsql","sql":"HUGEINT","expected":"INT128"} +{"dialect":"tsql","sql":"IMAGE","expected":"IMAGE"} +{"dialect":"tsql","sql":"INET","expected":"INET"} +{"dialect":"tsql","sql":"INT","expected":"INT"} +{"dialect":"tsql","sql":"INT1","expected":"TINYINT"} +{"dialect":"tsql","sql":"INT128","expected":"INT128"} +{"dialect":"tsql","sql":"INT16","expected":"SMALLINT"} +{"dialect":"tsql","sql":"INT2","expected":"SMALLINT"} +{"dialect":"tsql","sql":"INT256","expected":"INT256"} +{"dialect":"tsql","sql":"INT32","expected":"INT"} +{"dialect":"tsql","sql":"INT4","expected":"INT"} +{"dialect":"tsql","sql":"INT4MULTIRANGE","expected":"INT4MULTIRANGE"} +{"dialect":"tsql","sql":"INT4RANGE","expected":"INT4RANGE"} +{"dialect":"tsql","sql":"INT64","expected":"BIGINT"} +{"dialect":"tsql","sql":"INT8","expected":"TINYINT"} +{"dialect":"tsql","sql":"INT8MULTIRANGE","expected":"INT8MULTIRANGE"} +{"dialect":"tsql","sql":"INT8RANGE","expected":"INT8RANGE"} +{"dialect":"tsql","sql":"INTEGER","expected":"INT"} +{"dialect":"tsql","sql":"INTERVAL","expected":"INTERVAL"} +{"dialect":"tsql","sql":"JSON","expected":"JSON"} +{"dialect":"tsql","sql":"JSONB","expected":"JSONB"} +{"dialect":"tsql","sql":"LIST","expected":"LIST"} +{"dialect":"tsql","sql":"LONG","expected":"BIGINT"} +{"dialect":"tsql","sql":"LONGBLOB","expected":"LONGBLOB"} +{"dialect":"tsql","sql":"LONGTEXT","expected":"LONGTEXT"} +{"dialect":"tsql","sql":"LONGVARCHAR","expected":"TEXT"} +{"dialect":"tsql","sql":"MAP","expected":"MAP"} +{"dialect":"tsql","sql":"MEDIUMBLOB","expected":"MEDIUMBLOB"} +{"dialect":"tsql","sql":"MEDIUMINT","expected":"MEDIUMINT"} +{"dialect":"tsql","sql":"MEDIUMTEXT","expected":"MEDIUMTEXT"} +{"dialect":"tsql","sql":"MONEY","expected":"MONEY"} +{"dialect":"tsql","sql":"NCHAR","expected":"NCHAR"} +{"dialect":"tsql","sql":"NTEXT","expected":"TEXT"} +{"dialect":"tsql","sql":"NULL","expected":"NULL"} +{"dialect":"tsql","sql":"NULLABLE","expected":"USERDEFINED"} +{"dialect":"tsql","sql":"NUMBER","expected":"DECIMAL"} +{"dialect":"tsql","sql":"NUMERIC","expected":"DECIMAL"} +{"dialect":"tsql","sql":"NUMMULTIRANGE","expected":"NUMMULTIRANGE"} +{"dialect":"tsql","sql":"NUMRANGE","expected":"NUMRANGE"} +{"dialect":"tsql","sql":"NVARCHAR","expected":"NVARCHAR"} +{"dialect":"tsql","sql":"NVARCHAR(MAX)","expected":"NVARCHAR"} +{"dialect":"tsql","sql":"NVARCHAR2","expected":"NVARCHAR"} +{"dialect":"tsql","sql":"OBJECT","expected":"OBJECT"} +{"dialect":"tsql","sql":"RANGE","expected":"RANGE"} +{"dialect":"tsql","sql":"REAL","expected":"FLOAT"} +{"dialect":"tsql","sql":"ROWVERSION","expected":"ROWVERSION"} +{"dialect":"tsql","sql":"SHORT","expected":"SMALLINT"} +{"dialect":"tsql","sql":"SMALLDATETIME","expected":"SMALLDATETIME"} +{"dialect":"tsql","sql":"SMALLINT","expected":"SMALLINT"} +{"dialect":"tsql","sql":"SMALLMONEY","expected":"SMALLMONEY"} +{"dialect":"tsql","sql":"SQL_VARIANT","expected":"VARIANT"} +{"dialect":"tsql","sql":"STR","expected":"TEXT"} +{"dialect":"tsql","sql":"STRING","expected":"TEXT"} +{"dialect":"tsql","sql":"STRUCT","expected":"STRUCT"} +{"dialect":"tsql","sql":"TEXT","expected":"TEXT"} +{"dialect":"tsql","sql":"TIME","expected":"TIME"} +{"dialect":"tsql","sql":"TIMESTAMP","expected":"ROWVERSION"} +{"dialect":"tsql","sql":"TIMESTAMPLTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"tsql","sql":"TIMESTAMPNTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"tsql","sql":"TIMESTAMPTZ","expected":"TIMESTAMPTZ"} +{"dialect":"tsql","sql":"TIMESTAMP_LTZ","expected":"TIMESTAMPLTZ"} +{"dialect":"tsql","sql":"TIMESTAMP_NTZ","expected":"TIMESTAMPNTZ"} +{"dialect":"tsql","sql":"TIMETZ","expected":"TIMETZ"} +{"dialect":"tsql","sql":"TIME_NS","expected":"TIME_NS"} +{"dialect":"tsql","sql":"TINYBLOB","expected":"TINYBLOB"} +{"dialect":"tsql","sql":"TINYINT","expected":"UTINYINT"} +{"dialect":"tsql","sql":"TINYTEXT","expected":"TINYTEXT"} +{"dialect":"tsql","sql":"TSMULTIRANGE","expected":"TSMULTIRANGE"} +{"dialect":"tsql","sql":"TSRANGE","expected":"TSRANGE"} +{"dialect":"tsql","sql":"TSTZMULTIRANGE","expected":"TSTZMULTIRANGE"} +{"dialect":"tsql","sql":"TSTZRANGE","expected":"TSTZRANGE"} +{"dialect":"tsql","sql":"UHUGEINT","expected":"UINT128"} +{"dialect":"tsql","sql":"UINT","expected":"UINT"} +{"dialect":"tsql","sql":"UINT128","expected":"UINT128"} +{"dialect":"tsql","sql":"UINT256","expected":"UINT256"} +{"dialect":"tsql","sql":"UNION","expected":"UNION"} +{"dialect":"tsql","sql":"UNIQUEIDENTIFIER","expected":"UUID"} +{"dialect":"tsql","sql":"UNKNOWN","expected":"UNKNOWN"} +{"dialect":"tsql","sql":"USER-DEFINED","expected":"USERDEFINED"} +{"dialect":"tsql","sql":"UUID","expected":"UUID"} +{"dialect":"tsql","sql":"VARBINARY","expected":"VARBINARY"} +{"dialect":"tsql","sql":"VARCHAR","expected":"VARCHAR"} +{"dialect":"tsql","sql":"VARCHAR2","expected":"VARCHAR"} +{"dialect":"tsql","sql":"VARIANT","expected":"VARIANT"} +{"dialect":"tsql","sql":"VECTOR","expected":"VECTOR"} +{"dialect":"tsql","sql":"XML","expected":"XML"} +{"dialect":"tsql","sql":"[custom type]","expected":"USERDEFINED"} diff --git a/tests/test_data_type_parity.rs b/tests/test_data_type_parity.rs new file mode 100644 index 0000000..a4f4f70 --- /dev/null +++ b/tests/test_data_type_parity.rs @@ -0,0 +1,101 @@ +use serde::Deserialize; +use sqlglot_rust::ast::DataTypeKind; +use sqlglot_rust::{Dialect, parse_data_type, parse_data_type_with_udt}; + +#[derive(Deserialize)] +struct FixtureHeader { + source: String, + commit: String, + cases: usize, +} + +#[derive(Deserialize)] +struct Case { + dialect: String, + sql: String, + expected: Option, +} + +fn kind_name(kind: DataTypeKind) -> String { + serde_json::to_value(kind) + .unwrap() + .as_str() + .unwrap() + .to_string() +} + +#[test] +fn matches_python_type_parsing_fixture() { + let mut lines = include_str!("fixtures/python_type_parity.jsonl").lines(); + let header: FixtureHeader = serde_json::from_str(lines.next().unwrap()).unwrap(); + assert_eq!(header.source, "tobymao/sqlglot"); + assert_eq!(header.commit.len(), 40); + assert_eq!(header.cases, 3_681); + let cases: Vec = lines + .map(|line| serde_json::from_str(line).unwrap()) + .collect(); + assert_eq!(cases.len(), header.cases); + + let mut failures = Vec::new(); + for case in cases { + let dialect = Dialect::from_str(&case.dialect).unwrap(); + let actual = if dialect.supports_user_defined_types() { + parse_data_type_with_udt(&case.sql, dialect) + } else { + parse_data_type(&case.sql, dialect) + }; + match (actual, case.expected) { + (Ok(data_type), Some(expected)) => { + let actual = kind_name(data_type.kind()); + if actual != expected { + failures.push(format!( + "{}: {:?} parsed as {actual}, expected {expected}", + case.dialect, case.sql + )); + } + } + (Err(_), None) => {} + (Ok(data_type), None) => failures.push(format!( + "{}: {:?} parsed as {}, expected an error", + case.dialect, + case.sql, + kind_name(data_type.kind()) + )), + (Err(error), Some(expected)) => failures.push(format!( + "{}: {:?} failed with {error}, expected {expected}", + case.dialect, case.sql + )), + } + } + + assert!(failures.is_empty(), "{}", failures.join("\n")); +} + +#[test] +fn matches_python_user_defined_type_policy() { + let supported = [ + Dialect::Ansi, + Dialect::Athena, + Dialect::Druid, + Dialect::DuckDb, + Dialect::Fabric, + Dialect::Materialize, + Dialect::Oracle, + Dialect::Postgres, + Dialect::Presto, + Dialect::Prql, + Dialect::RisingWave, + Dialect::Sqlite, + Dialect::Tableau, + Dialect::Teradata, + Dialect::Tsql, + ]; + + for dialect in Dialect::all() { + assert_eq!( + dialect.supports_user_defined_types(), + supported.contains(dialect), + "unexpected user-defined type policy for {dialect:?}" + ); + } +} diff --git a/tests/test_ffi.rs b/tests/test_ffi.rs index e3a4555..995ff63 100644 --- a/tests/test_ffi.rs +++ b/tests/test_ffi.rs @@ -96,6 +96,36 @@ fn semantic_analysis_is_available_through_the_ffi() { unsafe { sqlglot_free(ast) }; } +#[test] +fn semantic_schema_parsing_supports_dialect_types_and_udts() { + let sql = CString::new("SELECT id, state, measurements FROM events").unwrap(); + let postgres = CString::new("postgres").unwrap(); + let schema = CString::new( + r#"{ + "tables": [ + { + "path": ["events"], + "columns": [ + {"name": "id", "data_type": "BIGINT"}, + {"name": "state", "data_type": "app.custom_type"}, + {"name": "measurements", "data_type": "NUMERIC(38, 9)[]"} + ] + } + ] + }"#, + ) + .unwrap(); + + let ast = unsafe { sqlglot_parse(sql.as_ptr(), postgres.as_ptr()) }; + let qualified = unsafe { sqlglot_qualify_columns(ast, schema.as_ptr(), postgres.as_ptr()) }; + assert!(!qualified.is_null()); + + unsafe { + sqlglot_free(qualified); + sqlglot_free(ast); + } +} + #[test] fn schema_paths_do_not_split_dots_inside_identifiers() { let sql = CString::new(r#"SELECT id FROM "events.v2""#).unwrap();