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

Function plan_subscript_array

src/sql/src/plan/query.rs:4388–4410  ·  view source on GitHub ↗
(
    ecx: &ExprContext,
    expr: HirScalarExpr,
    positions: &[SubscriptPosition<Aug>],
    offset: i64,
)

Source from the content-addressed store, hash-verified

4386}
4387
4388fn plan_subscript_array(
4389 ecx: &ExprContext,
4390 expr: HirScalarExpr,
4391 positions: &[SubscriptPosition<Aug>],
4392 offset: i64,
4393) -> Result<CoercibleScalarExpr, PlanError> {
4394 let mut exprs = Vec::with_capacity(positions.len() + 1);
4395 exprs.push(expr);
4396
4397 // Subscripting arrays doesn't yet support slicing, so we always want to
4398 // extract scalars or error.
4399 let indexes = extract_scalar_subscript_from_positions(positions, "array")?;
4400
4401 for i in indexes {
4402 exprs.push(plan_expr(ecx, i)?.cast_to(
4403 ecx,
4404 CastContext::Explicit,
4405 &SqlScalarType::Int64,
4406 )?);
4407 }
4408
4409 Ok(HirScalarExpr::call_variadic(ArrayIndex { offset }, exprs).into())
4410}
4411
4412fn plan_subscript_list(
4413 ecx: &ExprContext,

Callers 1

plan_subscriptFunction · 0.85

Calls 5

plan_exprFunction · 0.85
cast_toMethod · 0.80
lenMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected