(statement: &DFStatement, visitor: &mut RelationVisitor)
| 167 | } |
| 168 | |
| 169 | fn visit_statement(statement: &DFStatement, visitor: &mut RelationVisitor) -> Result<()> { |
| 170 | match statement { |
| 171 | DFStatement::Statement(s) => { |
| 172 | control_flow_to_result(s.as_ref().visit(visitor))?; |
| 173 | } |
| 174 | DFStatement::CreateExternalTable(table) => { |
| 175 | control_flow_to_result(visitor.insert_relation(&table.name))?; |
| 176 | } |
| 177 | DFStatement::CopyTo(CopyToStatement { source, .. }) => match source { |
| 178 | CopyToSource::Relation(table_name) => { |
| 179 | control_flow_to_result(visitor.insert_relation(table_name))?; |
| 180 | } |
| 181 | CopyToSource::Query(query) => { |
| 182 | control_flow_to_result(query.visit(visitor))?; |
| 183 | } |
| 184 | }, |
| 185 | DFStatement::Explain(explain) => { |
| 186 | visit_statement(&explain.statement, visitor)?; |
| 187 | } |
| 188 | DFStatement::Reset(_) => {} |
| 189 | } |
| 190 | Ok(()) |
| 191 | } |
| 192 | |
| 193 | /// Collects all tables and views referenced in the SQL statement. CTEs are collected separately. |
| 194 | /// This can be used to determine which tables need to be in the catalog for a query to be planned. |
no test coverage detected
searching dependent graphs…