/// Extract a sorted de-duped vector of all the bound parameter indexes in a plan. Or null if // none. public int[] boundParamIndexes() { if (parameters.length == 0) { return null; } BitSet ints = new BitSet(); ArrayList<AbstractPlanNode> ixscans = rootPlanGraph.findAllNodesOfType(PlanNodeType.INDEXSCAN); if (subPlanGraph != null) { ixscans.addAll(subPlanGraph.findAllNodesOfType(PlanNodeType.INDEXSCAN)); } for (AbstractPlanNode apn : ixscans) { assert (apn instanceof IndexScanPlanNode); IndexScanPlanNode ixs = (IndexScanPlanNode) apn; setParamIndexes(ints, ixs.getBindings()); } ArrayList<AbstractPlanNode> ixcounts = rootPlanGraph.findAllNodesOfType(PlanNodeType.INDEXCOUNT); if (subPlanGraph != null) { ixcounts.addAll(subPlanGraph.findAllNodesOfType(PlanNodeType.INDEXCOUNT)); } for (AbstractPlanNode apn : ixcounts) { assert (apn instanceof IndexCountPlanNode); IndexCountPlanNode ixc = (IndexCountPlanNode) apn; setParamIndexes(ints, ixc.getBindings()); } return bitSetToIntVector(ints); }