File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -12555,7 +12555,16 @@ impl<'a> Parser<'a> {
1255512555 self.expect_token(&Token::RParen)?;
1255612556 Ok(DataType::FixedString(character_length))
1255712557 }
12558- Keyword::TEXT => Ok(DataType::Text),
12558+ Keyword::TEXT => {
12559+ if let Some(modifiers) = self.parse_optional_type_modifiers()? {
12560+ Ok(DataType::Custom(
12561+ ObjectName::from(vec![Ident::new("TEXT")]),
12562+ modifiers,
12563+ ))
12564+ } else {
12565+ Ok(DataType::Text)
12566+ }
12567+ }
1255912568 Keyword::TINYTEXT => Ok(DataType::TinyText),
1256012569 Keyword::MEDIUMTEXT => Ok(DataType::MediumText),
1256112570 Keyword::LONGTEXT => Ok(DataType::LongText),
Original file line number Diff line number Diff line change @@ -6586,6 +6586,24 @@ fn interval_disallow_interval_expr_double_colon() {
65866586 )
65876587}
65886588
6589+ #[test]
6590+ fn parse_text_type_modifier_double_colon_cast() {
6591+ let expr = verified_expr("ID::TEXT(16777216)");
6592+ assert_eq!(
6593+ expr,
6594+ Expr::Cast {
6595+ kind: CastKind::DoubleColon,
6596+ expr: Box::new(Expr::Identifier(Ident::new("ID"))),
6597+ data_type: DataType::Custom(
6598+ ObjectName::from(vec![Ident::new("TEXT")]),
6599+ vec!["16777216".to_string()]
6600+ ),
6601+ array: false,
6602+ format: None,
6603+ }
6604+ );
6605+ }
6606+
65896607#[test]
65906608fn parse_interval_and_or_xor() {
65916609 let sql = "SELECT col FROM test \
You can’t perform that action at this time.
0 commit comments