示例#1
0
 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);
 }
示例#2
0
        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);
            }
        }
示例#3
0
        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);
        }
示例#4
0
 private bool IsRowNumberColumn(PredicateSegment predicate, string rowNumberAlias)
 {
     return(ROW_NUMBER_IDENTIFIERS.Contains(predicate.GetColumn().GetIdentifier().GetValue()) || predicate.GetColumn().GetIdentifier().GetValue().EqualsIgnoreCase(rowNumberAlias));
 }
示例#5
0
 public PredicateExtractor(ICollection <SimpleTableSegment> tables, PredicateSegment predicate)
 {
     _tables    = tables;
     _predicate = predicate;
 }
示例#6
0
 private bool IsRowNumberColumn(PredicateSegment predicate, string rowNumberAlias)
 {
     return(predicate.GetColumn().GetIdentifier().GetValue().EqualsIgnoreCase(rowNumberAlias));
 }
示例#7
0
 public void SetPredicateSegment(PredicateSegment predicate)
 {
     this._predicateSegment = predicate;
 }