public override void ExplicitVisit(LikePredicate node)
        {
            var secondExpression = node.SecondExpression.FirstNoneParenthesisExpression();
            var firstExpression = node.FirstExpression.FirstNoneParenthesisExpression();
            checkHasUnparametrizedWhereClauses(secondExpression, firstExpression);

            base.ExplicitVisit(node);
        }
        public override void ExplicitVisit(LikePredicate node)
        {
            var secondExpression = node.SecondExpression.FirstNoneParenthesisExpression();
            var firstExpression  = node.FirstExpression.FirstNoneParenthesisExpression();

            checkHasUnparametrizedWhereClauses(secondExpression, firstExpression);

            base.ExplicitVisit(node);
        }
Example #3
0
 public override void ExplicitVisit(LikePredicate node)
 {
     node.FirstExpression.Accept(this);
     if (node.NotDefined)
     {
         _buffer.Append(" not like ");
     }
     node.SecondExpression.Accept(this);
 }
Example #4
0
        internal gsWhereTermBase GetWhereTerm(LikePredicate likePredicate)
        {
            gsWhereTermCompare whereTerm = new gsWhereTermCompare();

            whereTerm.Operator         = gsCompareOperator.Like;
            whereTerm.FirstExpression  = gsScalarExpressionParserFactory.CreateParser(likePredicate.FirstExpression, null).Parse();
            whereTerm.SecondExpression = gsScalarExpressionParserFactory.CreateParser(likePredicate.SecondExpression, null).Parse();

            return(whereTerm);
        }
 public override void EnterLikePredicate(MySqlParser.LikePredicateContext context)
 {
     if (_isOtherListener == 1)
     {
         LikePredicate likePredicate =
             new LikePredicate(context.SourceInterval, context, context.GetText());
         Rules.Remove(Rules[Rules.Count - 1]);
         Rules.Add(likePredicate);
     }
     _isOtherListener++;
 }
        /// <summary>Renders LIKE predicate as SQL element.</summary>
        /// <param name="like">Like predicate.</param>
        /// <param name="dbms">Target DBMS.</param>
        /// <param name="output">StringBuilder to which SQL is appended.</param>
        /// <param name="parameters">SQL parameter collection to which the object's and its children's
        /// parameters are added. After the rendering is done the collection contains all parameters with unique names.</param>
        public void Render(LikePredicate like, DbmsType dbms, StringBuilder output, DbParameterCollection parameters)
        {
            output.Append("(");
            like.PredicateItems[0].Render(dbms, output, parameters);

            if (like.Negate)
                output.Append(" NOT LIKE ");
            else
                output.Append(" LIKE ");

            like.PredicateItems[1].Render(dbms, output, parameters);
            output.Append(")");    
        }
        public override void ExitLikePredicate(MiniSqlParserParser.LikePredicateContext context)
        {
            var comments = this.GetComments(context);

            Expr escape = null;

            if (context.K_ESCAPE() != null)
            {
                escape = (Expr)_stack.Pop();
            }
            Expr pattern = (Expr)_stack.Pop();

            var          opType = context.op.Type;
            LikeOperator op     = LikeOperator.Like;

            if (opType == MiniSqlParserLexer.K_LIKE)
            {
                op = LikeOperator.Like;
            }
            else if (opType == MiniSqlParserLexer.K_ILIKE)
            {
                op = LikeOperator.Ilike;
            }
            else if (opType == MiniSqlParserLexer.K_GLOB)
            {
                op = LikeOperator.Glog;
            }
            else if (opType == MiniSqlParserLexer.K_MATCH)
            {
                op = LikeOperator.Match;
            }
            else if (opType == MiniSqlParserLexer.K_REGEXP)
            {
                op = LikeOperator.Regexp;
            }
            else
            {
                throw new CannotBuildASTException("Undifined LikeOperator is used");
            }

            var not     = context.K_NOT() != null;
            var operand = (Expr)_stack.Pop();

            var node = new LikePredicate(operand, not, op, pattern, escape, comments);

            _stack.Push(node);
        }
        public QsiExpressionNode VisitLikePredicate(LikePredicate likePredicate)
        {
            var invokeNode = TreeHelper.Create <QsiInvokeExpressionNode>(n =>
            {
                n.Member.SetValue(TreeHelper.CreateFunction(SqlServerKnownFunction.Like));

                n.Parameters.Add(VisitScalarExpression(likePredicate.FirstExpression));
                n.Parameters.Add(VisitScalarExpression(likePredicate.SecondExpression));

                if (likePredicate.EscapeExpression != null)
                {
                    n.Parameters.Add(VisitScalarExpression(likePredicate.EscapeExpression));
                }
            });

            if (!likePredicate.NotDefined)
            {
                return(invokeNode);
            }

            return(TreeHelper.CreateUnary(SqlServerKnownOperator.Not, invokeNode));
        }
 void IVisitor.VisitOnEscape(LikePredicate predicate, int offset)
 {
     this.ParentExists(predicate);
 }
 void IVisitor.VisitBefore(LikePredicate predicate)
 {
     this.ParentExists(predicate);
 }
 void IVisitor.VisitAfter(LikePredicate predicate)
 {
     this.ParentExists(predicate);
 }
Example #12
0
 public override void ExplicitVisit(LikePredicate node)
 {
     base.ExplicitVisit(node);
     ReplaceExpression(node, n => n.FirstExpression);
     ReplaceExpression(node, n => n.SecondExpression);
 }
Example #13
0
 public override void Visit(LikePredicate node) { this.action(node); }
 public override void ExplicitVisit(LikePredicate node)
 {
     CommandStatistics.LikesCount++;
     base.ExplicitVisit(node);
 }
 public override void ExplicitVisit(LikePredicate fragment)
 {
     _fragments.Add(fragment);
 }
Example #16
0
		public void Visit(LikePredicate predicate)
		{
			predicate.MatchValue.Accept(this);
			_Query.AppendFormat("LIKE '{0}' ", predicate.Pattern);

			if (!Char.IsWhiteSpace(predicate.CharacterEscape))
				_Query.AppendFormat("ESCAPE '{0}' ", predicate.CharacterEscape);
		}
Example #17
0
 public override void ExplicitVisit(LikePredicate node)
 {
     CommandStatistics.LikesCount++;
     base.ExplicitVisit(node);
 }