public static ArgumentType fromHiveTypeName(String hiveTypeName) {
      String lower = hiveTypeName.toLowerCase();
      if (lower.equals(serdeConstants.TINYINT_TYPE_NAME) ||
          lower.equals(serdeConstants.SMALLINT_TYPE_NAME) ||
          lower.equals(serdeConstants.INT_TYPE_NAME) ||
          lower.equals(serdeConstants.BIGINT_TYPE_NAME) ||
          lower.equals(serdeConstants.BOOLEAN_TYPE_NAME) ||
          lower.equals("long")) {
        return INT_FAMILY;
      } else if (lower.equals(serdeConstants.DOUBLE_TYPE_NAME) || lower.equals(serdeConstants.FLOAT_TYPE_NAME)) {
        return FLOAT_FAMILY;
      } else if (lower.equals(serdeConstants.STRING_TYPE_NAME)) {
        return STRING;
      } else if (VectorizationContext.charTypePattern.matcher(lower).matches()) {
        return CHAR;
      } else if (VectorizationContext.varcharTypePattern.matcher(lower).matches()) {
        return VARCHAR;
      } else if (lower.equals(serdeConstants.BINARY_TYPE_NAME)) {
        return BINARY;
      } else if (VectorizationContext.decimalTypePattern.matcher(lower).matches()) {
        return DECIMAL;
      } else if (lower.equals(serdeConstants.TIMESTAMP_TYPE_NAME)) {
        return TIMESTAMP;
      } else if (lower.equals(serdeConstants.DATE_TYPE_NAME)) {
        return DATE;
      } else if (lower.equals(serdeConstants.INTERVAL_YEAR_MONTH_TYPE_NAME)) {
        return INTERVAL_YEAR_MONTH;
      } else if (lower.equals(serdeConstants.INTERVAL_DAY_TIME_TYPE_NAME)) {
        return INTERVAL_DAY_TIME;
      } else if (VectorizationContext.structTypePattern.matcher(lower).matches()) {
        return STRUCT;
      } else if (VectorizationContext.listTypePattern.matcher(lower).matches()) {
        return LIST;
      } else if (VectorizationContext.mapTypePattern.matcher(lower).matches()) {
        return MAP;
      } else if (lower.equals(serdeConstants.VOID_TYPE_NAME)) {
        return VOID;
      } else {
        return NONE;
      }
    }
Describes a vector expression and encapsulates the {@link Mode}, number of arguments,
argument types {@link ArgumentType} and expression types {@link InputExpressionType}.
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExpressionDescriptor.java