Skip to content

Commit 152a473

Browse files
committed
fix: Correct LIKE naming
Signed-off-by: Alex Qyoun-ae <4062971+MazterQyou@users.noreply.github.com>
1 parent bc52a4f commit 152a473

1 file changed

Lines changed: 27 additions & 40 deletions

File tree

datafusion/expr/src/expr.rs

Lines changed: 27 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -847,60 +847,47 @@ fn create_name(e: &Expr, input_schema: &DFSchema) -> Result<String> {
847847
pattern,
848848
escape_char,
849849
}) => {
850-
let s = format!(
851-
"{} {} {} {}",
852-
expr,
853-
if *negated { "NOT LIKE" } else { "LIKE" },
854-
pattern,
855-
if let Some(char) = escape_char {
856-
format!("CHAR '{}'", char)
857-
} else {
858-
"".to_string()
859-
}
860-
);
861-
Ok(s)
850+
let left = create_name(expr, input_schema)?;
851+
let not = if *negated { "NOT " } else { "" };
852+
let right = create_name(pattern, input_schema)?;
853+
let char = if let Some(char) = escape_char {
854+
format!(" CHAR '{}'", char)
855+
} else {
856+
"".to_string()
857+
};
858+
Ok(format!("{} {}LIKE {}{}", left, not, right, char))
862859
}
863860
Expr::ILike(Like {
864861
negated,
865862
expr,
866863
pattern,
867864
escape_char,
868865
}) => {
869-
let s = format!(
870-
"{} {} {} {}",
871-
expr,
872-
if *negated { "NOT ILIKE" } else { "ILIKE" },
873-
pattern,
874-
if let Some(char) = escape_char {
875-
format!("CHAR '{}'", char)
876-
} else {
877-
"".to_string()
878-
}
879-
);
880-
Ok(s)
866+
let left = create_name(expr, input_schema)?;
867+
let not = if *negated { "NOT " } else { "" };
868+
let right = create_name(pattern, input_schema)?;
869+
let char = if let Some(char) = escape_char {
870+
format!(" CHAR '{}'", char)
871+
} else {
872+
"".to_string()
873+
};
874+
Ok(format!("{} {}ILIKE {}{}", left, not, right, char))
881875
}
882876
Expr::SimilarTo(Like {
883877
negated,
884878
expr,
885879
pattern,
886880
escape_char,
887881
}) => {
888-
let s = format!(
889-
"{} {} {} {}",
890-
expr,
891-
if *negated {
892-
"NOT SIMILAR TO"
893-
} else {
894-
"SIMILAR TO"
895-
},
896-
pattern,
897-
if let Some(char) = escape_char {
898-
format!("CHAR '{}'", char)
899-
} else {
900-
"".to_string()
901-
}
902-
);
903-
Ok(s)
882+
let left = create_name(expr, input_schema)?;
883+
let not = if *negated { "NOT " } else { "" };
884+
let right = create_name(pattern, input_schema)?;
885+
let char = if let Some(char) = escape_char {
886+
format!(" CHAR '{}'", char)
887+
} else {
888+
"".to_string()
889+
};
890+
Ok(format!("{} {}SIMILAR TO {}{}", left, not, right, char))
904891
}
905892
Expr::Case {
906893
expr,

0 commit comments

Comments
 (0)