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) { node.FirstExpression.Accept(this); if (node.NotDefined) { _buffer.Append(" not like "); } node.SecondExpression.Accept(this); }
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); }
public override void ExplicitVisit(LikePredicate node) { base.ExplicitVisit(node); ReplaceExpression(node, n => n.FirstExpression); ReplaceExpression(node, n => n.SecondExpression); }
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); }
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); }