MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / doc_join

Method doc_join

src/sql-pretty/src/doc.rs:1076–1104  ·  view source on GitHub ↗
(&'a self, v: &'a Join<T>)

Source from the content-addressed store, hash-verified

1074 }
1075
1076 fn doc_join<'a, T: AstInfo>(&'a self, v: &'a Join<T>) -> RcDoc<'a> {
1077 let (constraint, name) = match &v.join_operator {
1078 JoinOperator::Inner(constraint) => (constraint, "JOIN"),
1079 JoinOperator::FullOuter(constraint) => (constraint, "FULL JOIN"),
1080 JoinOperator::LeftOuter(constraint) => (constraint, "LEFT JOIN"),
1081 JoinOperator::RightOuter(constraint) => (constraint, "RIGHT JOIN"),
1082 JoinOperator::CrossJoin => return self.doc_display(v, "join operator"),
1083 };
1084 let constraint = match constraint {
1085 JoinConstraint::On(expr) => nest_title("ON", self.doc_expr(expr)),
1086 JoinConstraint::Using { columns, alias } => {
1087 let mut doc = bracket(
1088 "USING(",
1089 comma_separate(|c| self.doc_display_pass(c), columns),
1090 ")",
1091 );
1092 if let Some(alias) = alias {
1093 doc = nest(doc, nest_title("AS", self.doc_display_pass(alias)));
1094 }
1095 doc
1096 }
1097 JoinConstraint::Natural => return self.doc_display(v, "join constraint"),
1098 };
1099 intersperse_line_nest([
1100 RcDoc::text(name),
1101 self.doc_table_factor(&v.relation),
1102 constraint,
1103 ])
1104 }
1105
1106 fn doc_table_factor<'a, T: AstInfo>(&'a self, v: &'a TableFactor<T>) -> RcDoc<'a> {
1107 match v {

Callers 1

doc_table_with_joinsMethod · 0.80

Calls 9

nest_titleFunction · 0.85
bracketFunction · 0.85
comma_separateFunction · 0.85
nestFunction · 0.85
intersperse_line_nestFunction · 0.85
doc_displayMethod · 0.80
doc_exprMethod · 0.80
doc_display_passMethod · 0.80
doc_table_factorMethod · 0.80

Tested by

no test coverage detected