sea_query/backend/
table_ref_builder.rs1use crate::*;
2
3pub trait TableRefBuilder: QuotedBuilder {
4 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}