| 283 | } |
| 284 | |
| 285 | pub fn plan_prepare( |
| 286 | scx: &StatementContext, |
| 287 | PrepareStatement { name, stmt, sql }: PrepareStatement<Aug>, |
| 288 | ) -> Result<Plan, PlanError> { |
| 289 | // TODO: PREPARE supports specifying param types. |
| 290 | let param_types = []; |
| 291 | let (stmt_resolved, _) = names::resolve(scx.catalog, *stmt.clone())?; |
| 292 | let desc = describe(scx.pcx()?, scx.catalog, stmt_resolved, ¶m_types)?; |
| 293 | Ok(Plan::Prepare(PreparePlan { |
| 294 | name: name.to_string(), |
| 295 | stmt: *stmt, |
| 296 | desc, |
| 297 | sql, |
| 298 | })) |
| 299 | } |
| 300 | |
| 301 | pub fn describe_execute( |
| 302 | scx: &StatementContext, |