Exemple #1
0
        public override bool Visit(SqlLikeScalarExpression first, SqlObject secondAsObject)
        {
            if (!(secondAsObject is SqlLikeScalarExpression second))
            {
                return(false);
            }

            if (!Equals(first.Expression, second.Expression))
            {
                return(false);
            }

            if (!Equals(first.Pattern, second.Pattern))
            {
                return(false);
            }

            if (!Equals(first.Not, second.Not))
            {
                return(false);
            }

            if (!Equals(first.EscapeSequence, second.EscapeSequence))
            {
                return(false);
            }

            return(true);
        }
 public override SqlObject Visit(SqlLikeScalarExpression sqlLikeScalarExpression)
 {
     return(SqlLikeScalarExpression.Create(
                sqlLikeScalarExpression.Expression.Accept(this) as SqlScalarExpression,
                sqlLikeScalarExpression.Pattern.Accept(this) as SqlScalarExpression,
                sqlLikeScalarExpression.Not,
                sqlLikeScalarExpression.EscapeSequence?.Accept(this) as SqlStringLiteral));
 }
        public override SqlObject VisitLike_scalar_expression([NotNull] sqlParser.Like_scalar_expressionContext context)
        {
            Contract.Requires(context != null);

            SqlScalarExpression expression  = (SqlScalarExpression)this.Visit(context.binary_scalar_expression()[0]);
            SqlScalarExpression pattern     = (SqlScalarExpression)this.Visit(context.binary_scalar_expression()[1]);
            bool             not            = context.K_NOT() != null;
            SqlStringLiteral escapeSequence = (context.escape_expression() != null)
                                                ? (SqlStringLiteral)this.Visit(context.escape_expression())
                                                : null;

            return(SqlLikeScalarExpression.Create(expression, pattern, not, escapeSequence));
        }
Exemple #4
0
        public override int Visit(SqlLikeScalarExpression sqlLikeScalarExpression)
        {
            int hashCode = SqlLikeScalarExpressionHashCode;

            hashCode = CombineHashes(hashCode, sqlLikeScalarExpression.Expression.Accept(this));
            hashCode = CombineHashes(hashCode, sqlLikeScalarExpression.Not ? 1 : 0);
            hashCode = CombineHashes(hashCode, sqlLikeScalarExpression.Pattern.Accept(this));
            if (sqlLikeScalarExpression.EscapeSequence != null)
            {
                hashCode = CombineHashes(hashCode, sqlLikeScalarExpression.EscapeSequence.Accept(this));
            }

            return(hashCode);
        }
        public override void Visit(SqlLikeScalarExpression sqlObject)
        {
            this.writer.Write("(");

            sqlObject.Expression.Accept(this);

            if (sqlObject.Not)
            {
                this.writer.Write(" NOT ");
            }

            this.writer.Write(" LIKE ");

            sqlObject.Pattern.Accept(this);

            if (sqlObject.EscapeSequence != null)
            {
                this.writer.Write(" ESCAPE ");

                sqlObject.EscapeSequence.Accept(this);
            }

            this.writer.Write(")");
        }
 public abstract void Visit(SqlLikeScalarExpression scalarExpression);
 public abstract void Visit(SqlLikeScalarExpression sqlObject);
 public abstract TResult Visit(SqlLikeScalarExpression sqlObject);
Exemple #9
0
 public override bool Visit(SqlLikeScalarExpression scalarExpression)
 {
     return(false);
 }
 public abstract TOutput Visit(SqlLikeScalarExpression sqlObject, TArg input);
Exemple #11
0
 public abstract TResult Visit(SqlLikeScalarExpression scalarExpression);
 public override CosmosElement Visit(SqlLikeScalarExpression scalarExpression, CosmosElement document)
 {
     // Consider the necessity of having v3 offline engine. Should we remove this altogether?
     throw new NotImplementedException();
 }