phoenix5-hive/src/main/java/org/apache/phoenix/hive/ql/pushdown/PhoenixSearchCondition.java [35:158]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public class PhoenixSearchCondition {
    private ExprNodeColumnDesc columnDesc;
    private String comparisonOp;
    private ExprNodeConstantDesc constantDesc;
    protected ExprNodeGenericFuncDesc comparisonExpr;

    private String[] fields;

    // Support (Not) Between/(Not) In Operator
    private ExprNodeConstantDesc[] multiConstants;
    protected boolean isNot;

    public PhoenixSearchCondition(ExprNodeColumnDesc columnDesc, String comparisonOp,
                                ExprNodeConstantDesc[] multiConstants, ExprNodeGenericFuncDesc
                                        comparisonExpr, boolean isNot) {
        this(columnDesc, comparisonOp, multiConstants, comparisonExpr, null, isNot);
    }

    public PhoenixSearchCondition(ExprNodeColumnDesc columnDesc, String comparisonOp,
                                ExprNodeConstantDesc[] multiConstants, ExprNodeGenericFuncDesc
                                        comparisonExpr, String[] fields, boolean isNot) {
        this.columnDesc = columnDesc;
        this.comparisonOp = comparisonOp;
        this.multiConstants = multiConstants;
        this.comparisonExpr = comparisonExpr;
        this.fields = fields;
        this.isNot = isNot;
    }

    public ExprNodeConstantDesc[] getConstantDescs() {
        return multiConstants;
    }

    public ExprNodeConstantDesc getConstantDesc(int index) {
        return multiConstants[index];
    }

    public boolean isNot() {
        return isNot;
    }
    //////////////////////////////////////////////////////////////////////////////

    public PhoenixSearchCondition(ExprNodeColumnDesc columnDesc, String comparisonOp,
                                ExprNodeConstantDesc constantDesc, ExprNodeGenericFuncDesc
                                        comparisonExpr) {
        this(columnDesc, comparisonOp, constantDesc, comparisonExpr, null);
    }

    /**
     * Constructs a search condition, which takes the form
     * <p>
     * <pre>
     * column-ref comparison-op constant-value
     * </pre>
     * <p>
     * .
     *
     * @param columnDesc     column being compared
     * @param comparisonOp   comparison operator, e.g. "=" (taken from
     *                       GenericUDFBridge.getUdfName())
     * @param constantDesc   constant value to search for
     * @param comparisonExpr the original comparison expression
     */
    public PhoenixSearchCondition(ExprNodeColumnDesc columnDesc, String comparisonOp,
                                ExprNodeConstantDesc constantDesc, ExprNodeGenericFuncDesc
                                        comparisonExpr, String[] fields) {

        this.columnDesc = columnDesc;
        this.comparisonOp = comparisonOp;
        this.constantDesc = constantDesc;
        this.comparisonExpr = comparisonExpr;
        this.fields = fields;
    }

    public void setColumnDesc(ExprNodeColumnDesc columnDesc) {
        this.columnDesc = columnDesc;
    }

    public ExprNodeColumnDesc getColumnDesc() {
        return columnDesc;
    }

    public void setComparisonOp(String comparisonOp) {
        this.comparisonOp = comparisonOp;
    }

    public String getComparisonOp() {
        return comparisonOp;
    }

    public void setConstantDesc(ExprNodeConstantDesc constantDesc) {
        this.constantDesc = constantDesc;
    }

    public ExprNodeConstantDesc getConstantDesc() {
        return constantDesc;
    }

    public void setComparisonExpr(ExprNodeGenericFuncDesc comparisonExpr) {
        this.comparisonExpr = comparisonExpr;
    }

    public String[] getFields() {
        return fields;
    }

    @Override
    public String toString() {
        return comparisonExpr.getExprString();
    }

    public ExprNodeGenericFuncDesc getComparisonExpr() {
        ExprNodeGenericFuncDesc ret = comparisonExpr;
        try {
            if (GenericUDFIn.class == comparisonExpr.getGenericUDF().getClass() && isNot) {
                ret =
                        new ExprNodeGenericFuncDesc(TypeInfoFactory.booleanTypeInfo,
                                FunctionRegistry.getFunctionInfo("not").getGenericUDF(),
                                Collections.singletonList(comparisonExpr));
            }
        } catch (SemanticException e) {
            throw new RuntimeException("hive operator -- never be thrown", e);
        }
        return ret;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



phoenix5-hive4/src/main/java/org/apache/phoenix/hive/ql/pushdown/PhoenixSearchCondition.java [35:158]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public class PhoenixSearchCondition {
    private ExprNodeColumnDesc columnDesc;
    private String comparisonOp;
    private ExprNodeConstantDesc constantDesc;
    protected ExprNodeGenericFuncDesc comparisonExpr;

    private String[] fields;

    // Support (Not) Between/(Not) In Operator
    private ExprNodeConstantDesc[] multiConstants;
    protected boolean isNot;

    public PhoenixSearchCondition(ExprNodeColumnDesc columnDesc, String comparisonOp,
                                ExprNodeConstantDesc[] multiConstants, ExprNodeGenericFuncDesc
                                        comparisonExpr, boolean isNot) {
        this(columnDesc, comparisonOp, multiConstants, comparisonExpr, null, isNot);
    }

    public PhoenixSearchCondition(ExprNodeColumnDesc columnDesc, String comparisonOp,
                                ExprNodeConstantDesc[] multiConstants, ExprNodeGenericFuncDesc
                                        comparisonExpr, String[] fields, boolean isNot) {
        this.columnDesc = columnDesc;
        this.comparisonOp = comparisonOp;
        this.multiConstants = multiConstants;
        this.comparisonExpr = comparisonExpr;
        this.fields = fields;
        this.isNot = isNot;
    }

    public ExprNodeConstantDesc[] getConstantDescs() {
        return multiConstants;
    }

    public ExprNodeConstantDesc getConstantDesc(int index) {
        return multiConstants[index];
    }

    public boolean isNot() {
        return isNot;
    }
    //////////////////////////////////////////////////////////////////////////////

    public PhoenixSearchCondition(ExprNodeColumnDesc columnDesc, String comparisonOp,
                                ExprNodeConstantDesc constantDesc, ExprNodeGenericFuncDesc
                                        comparisonExpr) {
        this(columnDesc, comparisonOp, constantDesc, comparisonExpr, null);
    }

    /**
     * Constructs a search condition, which takes the form
     * <p>
     * <pre>
     * column-ref comparison-op constant-value
     * </pre>
     * <p>
     * .
     *
     * @param columnDesc     column being compared
     * @param comparisonOp   comparison operator, e.g. "=" (taken from
     *                       GenericUDFBridge.getUdfName())
     * @param constantDesc   constant value to search for
     * @param comparisonExpr the original comparison expression
     */
    public PhoenixSearchCondition(ExprNodeColumnDesc columnDesc, String comparisonOp,
                                ExprNodeConstantDesc constantDesc, ExprNodeGenericFuncDesc
                                        comparisonExpr, String[] fields) {

        this.columnDesc = columnDesc;
        this.comparisonOp = comparisonOp;
        this.constantDesc = constantDesc;
        this.comparisonExpr = comparisonExpr;
        this.fields = fields;
    }

    public void setColumnDesc(ExprNodeColumnDesc columnDesc) {
        this.columnDesc = columnDesc;
    }

    public ExprNodeColumnDesc getColumnDesc() {
        return columnDesc;
    }

    public void setComparisonOp(String comparisonOp) {
        this.comparisonOp = comparisonOp;
    }

    public String getComparisonOp() {
        return comparisonOp;
    }

    public void setConstantDesc(ExprNodeConstantDesc constantDesc) {
        this.constantDesc = constantDesc;
    }

    public ExprNodeConstantDesc getConstantDesc() {
        return constantDesc;
    }

    public void setComparisonExpr(ExprNodeGenericFuncDesc comparisonExpr) {
        this.comparisonExpr = comparisonExpr;
    }

    public String[] getFields() {
        return fields;
    }

    @Override
    public String toString() {
        return comparisonExpr.getExprString();
    }

    public ExprNodeGenericFuncDesc getComparisonExpr() {
        ExprNodeGenericFuncDesc ret = comparisonExpr;
        try {
            if (GenericUDFIn.class == comparisonExpr.getGenericUDF().getClass() && isNot) {
                ret =
                        new ExprNodeGenericFuncDesc(TypeInfoFactory.booleanTypeInfo,
                                FunctionRegistry.getFunctionInfo("not").getGenericUDF(),
                                Collections.singletonList(comparisonExpr));
            }
        } catch (SemanticException e) {
            throw new RuntimeException("hive operator -- never be thrown", e);
        }
        return ret;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



