You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datafusion.apache.org by gi...@apache.org on 2026/04/21 15:58:08 UTC
(datafusion-sqlparser-rs) branch main updated: Snowflake: Add support for text data type modifiers (#2297)
This is an automated email from the ASF dual-hosted git repository.
github-merge-queue[bot] pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion-sqlparser-rs.git
The following commit(s) were added to refs/heads/main by this push:
new fa1dae1d Snowflake: Add support for text data type modifiers (#2297)
fa1dae1d is described below
commit fa1dae1dc813383d2253bf666fa52fc03e6dffba
Author: Yoav Cohen <59...@users.noreply.github.com>
AuthorDate: Tue Apr 21 17:53:26 2026 +0200
Snowflake: Add support for text data type modifiers (#2297)
---
src/parser/mod.rs | 11 ++++++++++-
tests/sqlparser_common.rs | 18 ++++++++++++++++++
2 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/src/parser/mod.rs b/src/parser/mod.rs
index 7be826b2..3d96a1d7 100644
--- a/src/parser/mod.rs
+++ b/src/parser/mod.rs
@@ -12555,7 +12555,16 @@ impl<'a> Parser<'a> {
self.expect_token(&Token::RParen)?;
Ok(DataType::FixedString(character_length))
}
- Keyword::TEXT => Ok(DataType::Text),
+ Keyword::TEXT => {
+ if let Some(modifiers) = self.parse_optional_type_modifiers()? {
+ Ok(DataType::Custom(
+ ObjectName::from(vec![Ident::new("TEXT")]),
+ modifiers,
+ ))
+ } else {
+ Ok(DataType::Text)
+ }
+ }
Keyword::TINYTEXT => Ok(DataType::TinyText),
Keyword::MEDIUMTEXT => Ok(DataType::MediumText),
Keyword::LONGTEXT => Ok(DataType::LongText),
diff --git a/tests/sqlparser_common.rs b/tests/sqlparser_common.rs
index 5a15285c..00937636 100644
--- a/tests/sqlparser_common.rs
+++ b/tests/sqlparser_common.rs
@@ -6586,6 +6586,24 @@ fn interval_disallow_interval_expr_double_colon() {
)
}
+#[test]
+fn parse_text_type_modifier_double_colon_cast() {
+ let expr = verified_expr("ID::TEXT(16777216)");
+ assert_eq!(
+ expr,
+ Expr::Cast {
+ kind: CastKind::DoubleColon,
+ expr: Box::new(Expr::Identifier(Ident::new("ID"))),
+ data_type: DataType::Custom(
+ ObjectName::from(vec![Ident::new("TEXT")]),
+ vec!["16777216".to_string()]
+ ),
+ array: false,
+ format: None,
+ }
+ );
+}
+
#[test]
fn parse_interval_and_or_xor() {
let sql = "SELECT col FROM test \
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org