sea_query/backend/sqlite/
mod.rs

1pub(crate) mod foreign_key;
2pub(crate) mod index;
3pub(crate) mod query;
4pub(crate) mod table;
5
6use super::*;
7
8/// Sqlite query builder.
9#[derive(Default, Debug)]
10pub struct SqliteQueryBuilder;
11
12const QUOTE: Quote = Quote(b'"', b'"');
13
14impl GenericBuilder for SqliteQueryBuilder {}
15
16impl SchemaBuilder for SqliteQueryBuilder {}
17
18impl QuotedBuilder for SqliteQueryBuilder {
19    fn quote(&self) -> Quote {
20        QUOTE
21    }
22}
23
24impl EscapeBuilder for SqliteQueryBuilder {
25    fn escape_string(&self, string: &str) -> String {
26        string.replace('\'', "''")
27    }
28
29    fn unescape_string(&self, string: &str) -> String {
30        string.replace("''", "'")
31    }
32}
33
34impl TableRefBuilder for SqliteQueryBuilder {}
35
36impl PrecedenceDecider for SqliteQueryBuilder {
37    fn inner_expr_well_known_greater_precedence(
38        &self,
39        inner: &SimpleExpr,
40        outer_oper: &Oper,
41    ) -> bool {
42        common_inner_expr_well_known_greater_precedence(inner, outer_oper)
43    }
44}
45
46impl OperLeftAssocDecider for SqliteQueryBuilder {
47    fn well_known_left_associative(&self, op: &BinOper) -> bool {
48        common_well_known_left_associative(op)
49    }
50}