private void addCustomUDFs(HiveConf hiveConf) {
    if (hiveConf == null) {
      return;
    }

    if (HiveVectorAdaptorUsageMode.CHOSEN !=
        HiveVectorAdaptorUsageMode.getHiveConfValue(hiveConf)) {
      return;
    }

    String[] udfs =
        HiveConf.getTrimmedStringsVar(hiveConf,
            HiveConf.ConfVars.HIVE_VECTOR_ADAPTOR_CUSTOM_UDF_WHITELIST);
    if (udfs == null) {
      return;
    }

    ClassLoader loader = Utilities.getSessionSpecifiedClassLoader();

    for (String udf : udfs) {
      try {
        Class<?> cls = Class.forName(udf, true, loader);
        if (GenericUDF.class.isAssignableFrom(cls)) {
          supportedGenericUDFs.add(cls);
          LOG.info("Registered custom UDF: {}", udf);
        } else {
          LOG.warn("{} must inherit from the GenericUDF", udf);
        }
      } catch (ClassNotFoundException e) {
        LOG.warn("Failed to register custom UDF: {}", udf, e);
      }
    }
  }
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