Description
Methods of `ExecutionContext` that return values dynamic parameters, such as get and getParameter, return null when dynamic parameter does not exist.
Add validation to these methods so they won't return null for not existing dynamic parameters.
Reproducer:
@Test public void div() { TestCluster testCluster= TestBuilders.cluster().nodes("N1").build(); testCluster.start(); TestNode node = testCluster.node("N1"); QueryPlan plan = node.prepare("SELECT ?/0", 1); List<InternalSqlRow> allFromCursor = CursorUtils.getAllFromCursor(node.executePlan(plan)); // Returns null but should throw Division by zero // because TestNode::executePlan does not pass dynamic parameters. for (var row : allFromCursor) { System.err.println(row.get(0)); } }
P.S.
Update TestNode::executePlan to support passing dynamic parameters.