public static void debugDisplayJoinOperatorTree(Operator<? extends OperatorDesc> joinOperator,
      String prefix) {
    List<Operator<? extends OperatorDesc>> currentParentList = newOperatorList();
    currentParentList.add(joinOperator);

    int depth = 0;
    do {
      List<Operator<? extends OperatorDesc>> nextParentList = newOperatorList();

      final int count = currentParentList.size();
      for (int i = 0; i < count; i++) {
        Operator<? extends OperatorDesc> parent = currentParentList.get(i);
        System.out.println(prefix + " parent depth " + depth + " " +
            parent.getClass().getSimpleName() + " " + parent.toString());

        List<Operator<? extends OperatorDesc>> parentList = parent.getParentOperators();
        if (parentList == null || parentList.size() == 0) {
          continue;
        }

        nextParentList.addAll(parentList);
      }

      currentParentList = nextParentList;
      depth--;
    } while (currentParentList.size() > 0);

    List<Operator<? extends OperatorDesc>> currentChildList = newOperatorList();
    currentChildList.addAll(joinOperator.getChildOperators());

    depth = 1;
    do {
      List<Operator<? extends OperatorDesc>> nextChildList = newOperatorList();

      final int count = currentChildList.size();
      for (int i = 0; i < count; i++) {
        Operator<? extends OperatorDesc> child = currentChildList.get(i);
        System.out.println(prefix + " child depth " + depth + " " +
            child.getClass().getSimpleName() + " " + child.toString());

        List<Operator<? extends OperatorDesc>> childList = child.getChildOperators();
        if (childList == null || childList.size() == 0) {
          continue;
        }

        nextChildList.addAll(childList);
      }

      currentChildList = nextChildList;
      depth--;
    } while (currentChildList.size() > 0);
  }
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