code: protected void parseParameters(VoltXMLElement root) {
          VoltXMLElement paramsNode = null;
          for (VoltXMLElement node : root.children) {
              if (node.name.equalsIgnoreCase("parameters")) {
                  paramsNode = node;
                  break;
              }
          }
          if (paramsNode == null) {
              return;
          }
  
          for (VoltXMLElement node : paramsNode.children) {
              if (node.name.equalsIgnoreCase("parameter")) {
                  long id = Long.parseLong(node.attributes.get("id"));
                  String typeName = node.attributes.get("valuetype");
                  String isVectorParam = node.attributes.get("isvector");
  
                  // Get the index for this parameter in the EE's parameter vector
                  String indexAttr = node.attributes.get("index");
                  assert(indexAttr != null);
                  int index = Integer.parseInt(indexAttr);
  
                  VoltType type = VoltType.typeFromString(typeName);
                  ParameterValueExpression pve = new ParameterValueExpression();
                  pve.setParameterIndex(index);
                  pve.setValueType(type);
                  if (isVectorParam != null && isVectorParam.equalsIgnoreCase("true")) {
                      pve.setParamIsVector();
                  }
                  m_paramsById.put(id, pve);
                  getParamsByIndex().put(index, pve);
              }
          }
      }
docs: Populate the statement's paramList from the "parameters" element. Each
  parameter has an id and an index, both of which are numeric. It also has
  a type and an indication of whether it's a vector parameter. For each
  parameter, we create a ParameterValueExpression, named pve, which holds
  the type and vector parameter indication. We add the pve to two maps,
  m_paramsById and m_paramsByIndex.
  
  A parameter's index attribute is its offset in the parameters array which
  is used to determine the parameter's value in the EE at runtime.
  
  Some parameters are generated after we generate VoltXML but before we plan (constants may
  become parameters in ad hoc queries so their plans may be cached).  In this case
  the index of the parameter is already set.  Otherwise, the parameter's index will have been
  set in HSQL.
  
  @param paramsNode