private static ExprNodeDesc convertBetweenToLTOrEqualAndGTOrEqual(ExprNodeDesc predicate) {
    if (predicate instanceof ExprNodeGenericFuncDesc && ((ExprNodeGenericFuncDesc) predicate).getGenericUDF() instanceof GenericUDFBetween && "false".equalsIgnoreCase(
        predicate.getChildren().get(0).getExprString())) {
      try {
        List<ExprNodeDesc> betweenInputs = predicate.getChildren();
        List<ExprNodeDesc> gtOrEqualInputs = Arrays.asList(betweenInputs.get(1), betweenInputs.get(2));
        List<ExprNodeDesc> ltOrEqualInputs = Arrays.asList(betweenInputs.get(1), betweenInputs.get(3));

        ExprNodeGenericFuncDesc gtOrEqual =
            ExprNodeGenericFuncDesc.newInstance(FunctionRegistry.getFunctionInfo(">=").getGenericUDF(), ">=",
                gtOrEqualInputs);
        ExprNodeGenericFuncDesc ltOrEqual =
            ExprNodeGenericFuncDesc.newInstance(FunctionRegistry.getFunctionInfo("<=").getGenericUDF(), "<=",
                ltOrEqualInputs);
        List<ExprNodeDesc> andInputs = Arrays.asList(ltOrEqual, gtOrEqual);

        predicate = ExprNodeGenericFuncDesc.newInstance(FunctionRegistry.getFunctionInfo("and").getGenericUDF(), "and",
            andInputs);
      } catch (Exception se) {
        LOG.warn("Unable to convert 'BETWEEN' predicate to '>= AND <=' predicate.", se);
      }
    }
    return predicate;
  }
Utility method to add hbase-default.xml and hbase-site.xml properties to a new map
if they are not already present in the jobConf.
@param jobConf Job configuration
@param newJobProperties  Map to which new properties should be added
hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseStorageHandler.java