File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -12695,7 +12695,16 @@ impl<'a> Parser<'a> {
1269512695 self.expect_token(&Token::RParen)?;
1269612696 Ok(DataType::FixedString(character_length))
1269712697 }
12698- Keyword::TEXT => Ok(DataType::Text),
12698+ Keyword::TEXT => {
12699+ if let Some(modifiers) = self.parse_optional_type_modifiers()? {
12700+ Ok(DataType::Custom(
12701+ ObjectName::from(vec![Ident::new("TEXT")]),
12702+ modifiers,
12703+ ))
12704+ } else {
12705+ Ok(DataType::Text)
12706+ }
12707+ }
1269912708 Keyword::TINYTEXT => Ok(DataType::TinyText),
1270012709 Keyword::MEDIUMTEXT => Ok(DataType::MediumText),
1270112710 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