/**
   * This function initializes the data structures for an operator. This over-rides the
   * corresponding function in the base class.
   *
   * @return True if the operator is to continue and false otherwise
   */
  protected void opInitialize() {
    // Get the grouping attributes
    skolem grouping = logicalGroupOperator.getSkolemAttributes();

    Vector groupVars = grouping.getVarList();
    hasher = new Hasher(groupVars);

    groupAttrs = new int[groupVars.size()];
    for (int i = 0; i < groupAttrs.length; i++) {
      groupAttrs[i] = inputTupleSchemas[0].getPosition(((Attribute) groupVars.get(i)).getName());
    }

    hasher.resolveVariables(inputTupleSchemas[0]);

    // Initialize the hash tables
    hash2final = new HashMap();
    hash2partial = new HashMap();
    hash2tuple = new HashMap();
  }