1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
use super::*; impl QueryBuilder for PostgresQueryBuilder { fn placeholder(&self) -> (&str, bool) { ("$", true) } fn prepare_returning( &self, returning: &Vec<SelectExpr>, sql: &mut SqlWriter, collector: &mut dyn FnMut(Value), ) { if !returning.is_empty() { write!(sql, " RETURNING ").unwrap(); returning.iter().fold(true, |first, expr| { if !first { write!(sql, ", ").unwrap() } self.prepare_select_expr(expr, sql, collector); false }); } } fn if_null_function(&self) -> &str { "COALESCE" } fn write_string_quoted(&self, string: &str, buffer: &mut String) { let escaped = escape_string(string); let string = if escaped.find('\\').is_some() { "E'".to_owned() + &escaped + "'" } else { "'".to_owned() + &escaped + "'" }; write!(buffer, "{}", string).unwrap() } }