public static PartitionExpressionProxy createExpressionProxy(Configuration conf) {
    String className = MetastoreConf.getVar(conf, ConfVars.EXPRESSION_PROXY_CLASS);
    try {
      @SuppressWarnings("unchecked")
      Class<? extends PartitionExpressionProxy> clazz =
          JavaUtils.getClass(className, PartitionExpressionProxy.class);
      return JavaUtils.newInstance(
          clazz, new Class<?>[0], new Object[0]);
    } catch (MetaException e) {
      if (e.getMessage().matches(".* class not found")) {
        // TODO MS-SPLIT For now if we cannot load the default PartitionExpressionForMetastore
        // class (since it's from ql) load the DefaultPartitionExpressionProxy, which just throws
        // UnsupportedOperationExceptions.  This allows existing Hive instances to work but also
        // allows us to instantiate the metastore stand alone for testing.  Not sure if this is
        // the best long term solution.
        return new DefaultPartitionExpressionProxy();
      }
      LOG.error("Error loading PartitionExpressionProxy", e);
      throw new RuntimeException("Error loading PartitionExpressionProxy: " + e.getMessage());
    }
  }
Creates the proxy used to evaluate expressions. This is here to prevent circular
dependency - ql -&gt; metastore client &lt;-&gt; metastore server -&gt; ql. If server and
client are split, this can be removed.
@param conf Configuration.
@return The partition expression proxy.
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/PartFilterExprUtil.java