private void fixupNewVectorChild(
      Operator<? extends OperatorDesc> parent,
      Operator<? extends OperatorDesc> vectorParent,
      Operator<? extends OperatorDesc> child,
      Operator<? extends OperatorDesc> vectorChild) {

    // 1) Add new vector child to the vector parent's children list.
    vectorParent.getChildOperators().add(vectorChild);

    // 2) Copy and fixup the parent list of the original child instead of just assuming a 1:1
    //    relationship.
    List<Operator<? extends OperatorDesc>> childMultipleParents = newOperatorList();
    childMultipleParents.addAll(child.getParentOperators());
    final int childMultipleParentCount = childMultipleParents.size();
    for (int i = 0; i < childMultipleParentCount; i++) {
      Operator<? extends OperatorDesc> childMultipleParent = childMultipleParents.get(i);
      if (childMultipleParent == parent) {
        childMultipleParents.set(i, vectorParent);
      } else {
        queueDelayedFixup(childMultipleParent, child, vectorChild);
      }
    }
    vectorChild.setParentOperators(childMultipleParents);
  }
Decimal types can be specified with different precision and scales e.g. decimal(10,5),
as opposed to other data types which can be represented by constant strings.
The regex matches only the {@link serdeConstants#DECIMAL_TYPE_NAME} prefix of the type.
ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java