public void ProcessTopFilter(TopRowFilter TopFilter) { IntegerLiteral TopLiteral = null; if (FragmentTypeParser.GetFragmentType(TopFilter.Expression) != "ParenthesisExpression") { _smells.SendFeedBack(34, TopFilter); if (FragmentTypeParser.GetFragmentType(TopFilter.Expression) == "IntegerLiteral") { TopLiteral = (IntegerLiteral)TopFilter.Expression; } } else { var ParenthesisExpression = (ParenthesisExpression)TopFilter.Expression; if (FragmentTypeParser.GetFragmentType(ParenthesisExpression.Expression) == "IntegerLiteral") { TopLiteral = (IntegerLiteral)ParenthesisExpression.Expression; } } if (TopFilter.Percent && TopLiteral != null && TopLiteral.Value == "100") { _smells.SendFeedBack(35, TopLiteral); } }
internal override string ToString(string indent) { StringBuilder sb = new StringBuilder(128); sb.AppendFormat("{0}DELETE NODE", indent); if (TopRowFilter != null) { if (TopRowFilter.OneLine()) { sb.Append(TopRowFilter.ToString("")); } else { sb.Append("\r\n"); sb.Append(TopRowFilter.ToString(indent + " ")); } } sb.AppendFormat(" FROM {0}", Target.ToString()); if (FromClause != null) { sb.Append("\r\n"); sb.Append(FromClause.ToString(indent)); } if (WhereClause != null && WhereClause.SearchCondition != null) { sb.Append("\r\n"); sb.Append(WhereClause.ToString(indent)); } return(sb.ToString()); }
public override void AcceptChildren(WSqlFragmentVisitor visitor) { if (FromClause != null) { FromClause.Accept(visitor); } if (WhereClause != null) { WhereClause.Accept(visitor); } if (TopRowFilter != null) { TopRowFilter.Accept(visitor); } if (GroupByClause != null) { GroupByClause.Accept(visitor); } if (HavingClause != null) { HavingClause.Accept(visitor); } if (SelectElements != null) { var index = 0; for (var count = SelectElements.Count; index < count; ++index) { SelectElements[index].Accept(visitor); } } base.AcceptChildren(visitor); }
protected override object InternalVisit(TopRowFilter node) { return(new Func <Environment, object>(env => { return new TopResult( amount: EvaluateExpression <int>(node.Expression, env), percent: node.Percent, ties: node.WithTies); })); }
public override void ExplicitVisit(TopRowFilter node) { WasVisited = true; SqlFragment = node; for (int i = node.FirstTokenIndex; i <= node.LastTokenIndex; i++) { TSqlParserToken token = node.ScriptTokenStream[i]; if (token.TokenType == TSqlTokenType.LeftParenthesis) _leftParethesisCount++; if (token.TokenType == TSqlTokenType.RightParenthesis) _rightParethesisCount++; } }
public void TopRowFilterTest() { var empties = _board.Values.Where(v => v.Content == ContentType.Empty).ToArray(); var rule = new TopRowFilter(); Assert.AreEqual("is in TOP ROW ", rule.ToString()); var matches = rule.GetMatches(_board, empties); CollectionAssert.AreEquivalent(new[] { 8, 3, 4 }, matches.ToArray()); }
public override void ExplicitVisit(TopRowFilter node) { WasVisited = true; SqlFragment = node; for (int i = node.FirstTokenIndex; i <= node.LastTokenIndex; i++) { TSqlParserToken token = node.ScriptTokenStream[i]; if (token.TokenType == TSqlTokenType.LeftParenthesis) { _leftParethesisCount++; } if (token.TokenType == TSqlTokenType.RightParenthesis) { _rightParethesisCount++; } } }
internal override string ToString(string indent) { var sb = new StringBuilder(); sb.AppendFormat("{0}UPDATE", indent); if (TopRowFilter != null) { sb.Append(TopRowFilter.ToString(indent)); } sb.AppendFormat(" {0} SET \r\n", Target.ToString(indent)); var first = true; if (SetClauses != null) { foreach (var setclause in SetClauses) { if (first) { first = false; sb.AppendFormat("{0}{1}", indent, setclause.ToString(indent)); } else { sb.AppendFormat(", {0}", setclause.ToString(indent)); } } } if (FromClause != null) { sb.AppendFormat("\r\n{0}{1}", indent, FromClause.ToString(indent)); } if (WhereClause != null && WhereClause.SearchCondition != null) { sb.AppendFormat("\r\n{0}{1}", indent, WhereClause.ToString(indent)); } sb.Append("\r\n"); return(sb.ToString()); }
public QsiLimitExpressionNode VisitLimitOffset(TopRowFilter topRowFilter, OffsetClause offsetClause) { return(TreeHelper.Create <QsiLimitExpressionNode>(n => { if (topRowFilter != null) { var topRowFilterNode = ExpressionVisitor.VisitScalarExpression(topRowFilter.Expression); SqlServerTree.PutFragmentSpan(topRowFilterNode, topRowFilter); n.Limit.SetValue(topRowFilterNode); } if (offsetClause != null) { var offsetClauseNode = ExpressionVisitor.VisitScalarExpression(offsetClause.OffsetExpression); SqlServerTree.PutFragmentSpan(offsetClauseNode, offsetClause); n.Offset.SetValue(offsetClauseNode); } })); }
public void ProcessTopFilter(TopRowFilter TopFilter) { IntegerLiteral TopLiteral = null; if (FragmentTypeParser.GetFragmentType(TopFilter.Expression) != "ParenthesisExpression") { _smells.SendFeedBack(34, TopFilter); if (FragmentTypeParser.GetFragmentType(TopFilter.Expression) == "IntegerLiteral") { TopLiteral = (IntegerLiteral) TopFilter.Expression; } } else { var ParenthesisExpression = (ParenthesisExpression) TopFilter.Expression; if (FragmentTypeParser.GetFragmentType(ParenthesisExpression.Expression) == "IntegerLiteral") { TopLiteral = (IntegerLiteral) ParenthesisExpression.Expression; } } if (TopFilter.Percent && TopLiteral != null && TopLiteral.Value == "100") { _smells.SendFeedBack(35, TopLiteral); } }
internal override string ToString(string indent) { var sb = new StringBuilder(); sb.AppendFormat("{0}DELETE ", indent); if (TopRowFilter != null) { sb.Append(TopRowFilter.ToString(indent)); } sb.AppendFormat(" FROM {0} ", Target.ToString(indent)); if (FromClause != null) { sb.Append(FromClause.ToString(indent)); } if (WhereClause != null && WhereClause.SearchCondition != null) { sb.Append(WhereClause.ToString(indent)); } return(sb.ToString()); }
internal override string ToString(string indent) { var sb = new StringBuilder(1024); if (WithPathClause2 != null) { sb.Append(WithPathClause2.ToString(indent)); } sb.AppendFormat("{0}SELECT ", indent); if (TopRowFilter != null) { if (TopRowFilter.OneLine()) { sb.AppendFormat("{0} ", TopRowFilter.ToString("")); } else { sb.Append("\r\n"); sb.AppendFormat("{0} ", TopRowFilter.ToString(indent)); } } switch (UniqueRowFilter) { case UniqueRowFilter.All: sb.Append("ALL "); break; case UniqueRowFilter.Distinct: sb.Append("DISTINCT "); break; } for (var i = 0; i < SelectElements.Count; i++) { if (i > 0) { sb.Append(", "); } if (SelectElements[i].OneLine()) { sb.Append(SelectElements[i].ToString("")); } else { sb.Append("\r\n"); sb.Append(SelectElements[i].ToString(indent + " ")); } } if (Into != null) { sb.AppendFormat(" INTO {0} ", Into); } if (FromClause != null) { sb.Append("\r\n"); sb.Append(FromClause.ToString(indent)); } if (MatchClause != null) { sb.Append("\r\n"); sb.Append(MatchClause.ToString(indent)); } if (WhereClause != null && (WhereClause.SearchCondition != null || !string.IsNullOrEmpty(WhereClause.GhostString))) { sb.Append("\r\n"); sb.Append(WhereClause.ToString(indent)); } if (GroupByClause != null) { sb.Append("\r\n"); sb.Append(GroupByClause.ToString(indent)); } if (HavingClause != null) { sb.Append("\r\n"); sb.Append(HavingClause.ToString(indent)); } if (OrderByClause != null) { sb.Append("\r\n"); sb.Append(OrderByClause.ToString(indent)); } return(sb.ToString()); }
public override void Visit(TopRowFilter node) { this.action(node); }
public override void ExplicitVisit(TopRowFilter fragment) { _fragments.Add(fragment); }
public override void ExplicitVisit(TopRowFilter node) { IsSuspected = false; base.ExplicitVisit(node); }
public override void ExplicitVisit(TopRowFilter node) { _hasTopRowFilter = true; base.ExplicitVisit(node); }