Walk the logical plan, find any `Placeholder` tokens, and return a set of their names.
(&self)
| 1588 | |
| 1589 | /// Walk the logical plan, find any `Placeholder` tokens, and return a set of their names. |
| 1590 | pub fn get_parameter_names(&self) -> Result<HashSet<String>> { |
| 1591 | let mut param_names = HashSet::new(); |
| 1592 | self.apply_with_subqueries(|plan| { |
| 1593 | plan.apply_expressions(|expr| { |
| 1594 | expr.apply(|expr| { |
| 1595 | if let Expr::Placeholder(Placeholder { id, .. }) = expr { |
| 1596 | param_names.insert(id.clone()); |
| 1597 | } |
| 1598 | Ok(TreeNodeRecursion::Continue) |
| 1599 | }) |
| 1600 | }) |
| 1601 | }) |
| 1602 | .map(|_| param_names) |
| 1603 | } |
| 1604 | |
| 1605 | /// Walk the logical plan, find any `Placeholder` tokens, and return a map of their IDs and DataTypes |
| 1606 | /// |
no test coverage detected