mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-26 20:44:23 +01:00
sanitize string for ast::Literal
This commit is contained in:
@@ -369,6 +369,12 @@ impl Display for ast::LikeOperator {
|
||||
}
|
||||
}
|
||||
|
||||
/// Sanitaizes a string literal by removing single quote at front and back
|
||||
/// and escaping double single quotes
|
||||
pub fn sanitize_string(input: &str) -> String {
|
||||
input[1..input.len() - 1].replace("''", "'").to_string()
|
||||
}
|
||||
|
||||
impl Display for ast::Literal {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
write!(
|
||||
@@ -382,7 +388,7 @@ impl Display for ast::Literal {
|
||||
Self::Keyword(keyword) => keyword.clone(),
|
||||
Self::Null => "NULL".to_string(),
|
||||
Self::Numeric(num) => num.clone(),
|
||||
Self::String(s) => s.clone(),
|
||||
Self::String(s) => format!("'{}'", sanitize_string(s)),
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
@@ -77,6 +77,7 @@ impl ToSqlString for ast::OneSelect {
|
||||
|
||||
impl ToSqlString for ast::SelectInner {
|
||||
fn to_sql_string<C: ToSqlContext>(&self, context: &C) -> String {
|
||||
dbg!(&self);
|
||||
let mut ret = Vec::with_capacity(2 + self.columns.len());
|
||||
ret.push("SELECT".to_string());
|
||||
if let Some(distinct) = self.distinctness {
|
||||
|
||||
Reference in New Issue
Block a user