asterix-graphix/src/main/java/org/apache/asterix/graphix/runtime/evaluator/IsDistinctEdgeDescriptor.java [42:72]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    private static final long serialVersionUID = 1L;

    @Override
    public IScalarEvaluatorFactory createEvaluatorFactory(IScalarEvaluatorFactory[] args) {
        return new IScalarEvaluatorFactory() {
            private static final long serialVersionUID = 1L;

            @Override
            public IScalarEvaluator createScalarEvaluator(IEvaluatorContext ctx) throws HyracksDataException {
                return new AbstractElementCompareEvaluator() {
                    private final IScalarEvaluator arg0Eval = args[0].createScalarEvaluator(ctx);
                    private final IScalarEvaluator arg1Eval = args[1].createScalarEvaluator(ctx);
                    private final IPointable arg0Ptr = new VoidPointable();
                    private final IPointable arg1Ptr = new VoidPointable();

                    @Override
                    protected boolean readTuple(IFrameTupleReference tuple, IPointable result)
                            throws HyracksDataException {
                        arg0Eval.evaluate(tuple, arg0Ptr);
                        arg1Eval.evaluate(tuple, arg1Ptr);

                        // If our edge or path is NULL or MISSING, then our result is NULL / MISSING.
                        if (PointableHelper.checkAndSetMissingOrNull(result, arg0Ptr, arg1Ptr)) {
                            return false;
                        }

                        // Ensure that we have a path (i.e. bit-array) as our second argument.
                        byte typeTagByte = arg1Ptr.getByteArray()[arg1Ptr.getStartOffset()];
                        if (typeTagByte != InternalPathPointable.PATH_SERIALIZED_TYPE_TAG) {
                            throw new TypeMismatchException(sourceLoc, getIdentifier(), 1, typeTagByte,
                                    InternalPathPointable.PATH_SERIALIZED_TYPE_TAG);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



asterix-graphix/src/main/java/org/apache/asterix/graphix/runtime/evaluator/IsDistinctVertexDescriptor.java [42:72]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    private static final long serialVersionUID = 1L;

    @Override
    public IScalarEvaluatorFactory createEvaluatorFactory(IScalarEvaluatorFactory[] args) {
        return new IScalarEvaluatorFactory() {
            private static final long serialVersionUID = 1L;

            @Override
            public IScalarEvaluator createScalarEvaluator(IEvaluatorContext ctx) throws HyracksDataException {
                return new AbstractElementCompareEvaluator() {
                    private final IScalarEvaluator arg0Eval = args[0].createScalarEvaluator(ctx);
                    private final IScalarEvaluator arg1Eval = args[1].createScalarEvaluator(ctx);
                    private final IPointable arg0Ptr = new VoidPointable();
                    private final IPointable arg1Ptr = new VoidPointable();

                    @Override
                    protected boolean readTuple(IFrameTupleReference tuple, IPointable result)
                            throws HyracksDataException {
                        arg0Eval.evaluate(tuple, arg0Ptr);
                        arg1Eval.evaluate(tuple, arg1Ptr);

                        // If our vertex or path is NULL or MISSING, then our result is NULL / MISSING.
                        if (PointableHelper.checkAndSetMissingOrNull(result, arg0Ptr, arg1Ptr)) {
                            return false;
                        }

                        // Ensure that we have a path (i.e. bit-array) as our second argument.
                        byte typeTagByte = arg1Ptr.getByteArray()[arg1Ptr.getStartOffset()];
                        if (typeTagByte != InternalPathPointable.PATH_SERIALIZED_TYPE_TAG) {
                            throw new TypeMismatchException(sourceLoc, getIdentifier(), 1, typeTagByte,
                                    InternalPathPointable.PATH_SERIALIZED_TYPE_TAG);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



