private bool IsCompareCondition(PredicateSegment predicate) { if (predicate.GetPredicateRightValue() is PredicateCompareRightValue predicateCompareRightValue) { var @operator = predicateCompareRightValue.GetOperator(); return("<".Equals(@operator) || "<=".Equals(@operator) || ">".Equals(@operator) || ">=".Equals(@operator)); } return(false); }
private IPaginationValueSegment CreateOffsetWithRowNumber(PredicateSegment predicateSegment) { IExpressionSegment expression = ((PredicateCompareRightValue)predicateSegment.GetPredicateRightValue()).GetExpression(); switch (((PredicateCompareRightValue)predicateSegment.GetPredicateRightValue()).GetOperator()) { case ">": return(CreateRowNumberValueSegment(expression, false)); case ">=": return(CreateRowNumberValueSegment(expression, true)); default: return(null); } }
public override IASTNode VisitJoinSpecification(MySqlCommandParser.JoinSpecificationContext ctx) { JoinSpecificationSegment result = new JoinSpecificationSegment(); if (null != ctx.expr()) { IASTNode expr = Visit(ctx.expr()); if (expr is PredicateSegment) { PredicateSegment predicate = (PredicateSegment)expr; result.SetPredicateSegment(predicate); } } if (null != ctx.USING()) { ICollection <ColumnSegment> columnSegmentList = new List <ColumnSegment>(); foreach (var cname in ctx.columnNames().columnName()) { columnSegmentList.Add((ColumnSegment)Visit(cname)); } result.SetUsingColumns(columnSegmentList); } return(result); }
private bool IsRowNumberColumn(PredicateSegment predicate, string rowNumberAlias) { return(ROW_NUMBER_IDENTIFIERS.Contains(predicate.GetColumn().GetIdentifier().GetValue()) || predicate.GetColumn().GetIdentifier().GetValue().EqualsIgnoreCase(rowNumberAlias)); }
public PredicateExtractor(ICollection <SimpleTableSegment> tables, PredicateSegment predicate) { _tables = tables; _predicate = predicate; }
private bool IsRowNumberColumn(PredicateSegment predicate, string rowNumberAlias) { return(predicate.GetColumn().GetIdentifier().GetValue().EqualsIgnoreCase(rowNumberAlias)); }
public void SetPredicateSegment(PredicateSegment predicate) { this._predicateSegment = predicate; }