sea_query/backend/
table_ref_builder.rs

1use crate::*;
2
3pub trait TableRefBuilder: QuotedBuilder {
4    /// Translate [`TableRef`] that without values into SQL statement.
5    fn prepare_table_ref_iden(&self, table_ref: &TableRef, sql: &mut dyn SqlWriter) {
6        match table_ref {
7            TableRef::Table(iden) => {
8                iden.prepare(sql.as_writer(), self.quote());
9            }
10            TableRef::SchemaTable(schema, table) => {
11                schema.prepare(sql.as_writer(), self.quote());
12                write!(sql, ".").unwrap();
13                table.prepare(sql.as_writer(), self.quote());
14            }
15            TableRef::DatabaseSchemaTable(database, schema, table) => {
16                database.prepare(sql.as_writer(), self.quote());
17                write!(sql, ".").unwrap();
18                schema.prepare(sql.as_writer(), self.quote());
19                write!(sql, ".").unwrap();
20                table.prepare(sql.as_writer(), self.quote());
21            }
22            TableRef::TableAlias(iden, alias) => {
23                iden.prepare(sql.as_writer(), self.quote());
24                write!(sql, " AS ").unwrap();
25                alias.prepare(sql.as_writer(), self.quote());
26            }
27            TableRef::SchemaTableAlias(schema, table, alias) => {
28                schema.prepare(sql.as_writer(), self.quote());
29                write!(sql, ".").unwrap();
30                table.prepare(sql.as_writer(), self.quote());
31                write!(sql, " AS ").unwrap();
32                alias.prepare(sql.as_writer(), self.quote());
33            }
34            TableRef::DatabaseSchemaTableAlias(database, schema, table, alias) => {
35                database.prepare(sql.as_writer(), self.quote());
36                write!(sql, ".").unwrap();
37                schema.prepare(sql.as_writer(), self.quote());
38                write!(sql, ".").unwrap();
39                table.prepare(sql.as_writer(), self.quote());
40                write!(sql, " AS ").unwrap();
41                alias.prepare(sql.as_writer(), self.quote());
42            }
43            TableRef::SubQuery(_, _)
44            | TableRef::ValuesList(_, _)
45            | TableRef::FunctionCall(_, _) => {
46                panic!("TableRef with values is not support")
47            }
48        }
49    }
50}