@@ -477,6 +477,9 @@ impl fmt::Display for IdentWithAlias {
477477#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
478478#[ cfg_attr( feature = "visitor" , derive( Visit , VisitMut ) ) ]
479479pub struct WildcardAdditionalOptions {
480+ /// `[ILIKE...]`.
481+ /// Snowflake syntax: <https://docs.snowflake.com/en/sql-reference/sql/select>
482+ pub opt_ilike : Option < IlikeSelectItem > ,
480483 /// `[EXCLUDE...]`.
481484 pub opt_exclude : Option < ExcludeSelectItem > ,
482485 /// `[EXCEPT...]`.
@@ -492,6 +495,9 @@ pub struct WildcardAdditionalOptions {
492495
493496impl fmt:: Display for WildcardAdditionalOptions {
494497 fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
498+ if let Some ( ilike) = & self . opt_ilike {
499+ write ! ( f, " {ilike}" ) ?;
500+ }
495501 if let Some ( exclude) = & self . opt_exclude {
496502 write ! ( f, " {exclude}" ) ?;
497503 }
@@ -508,6 +514,25 @@ impl fmt::Display for WildcardAdditionalOptions {
508514 }
509515}
510516
517+ /// Snowflake `ILIKE` information.
518+ ///
519+ /// # Syntax
520+ /// ```plaintext
521+ /// ILIKE <value>
522+ /// ```
523+ #[ derive( Debug , Clone , PartialEq , PartialOrd , Eq , Ord , Hash ) ]
524+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
525+ #[ cfg_attr( feature = "visitor" , derive( Visit , VisitMut ) ) ]
526+ pub struct IlikeSelectItem {
527+ pub pattern : Expr ,
528+ }
529+
530+ impl fmt:: Display for IlikeSelectItem {
531+ fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
532+ write ! ( f, "ILIKE {}" , self . pattern) ?;
533+ Ok ( ( ) )
534+ }
535+ }
511536/// Snowflake `EXCLUDE` information.
512537///
513538/// # Syntax
0 commit comments