Beispiel #1
0
 internal JoinedTables(TableJoinType joinType, FromSource left, FromSource right, SqlBooleanExpression joinCondition)
 {
     JoinType      = joinType;
     Left          = left;
     Right         = right;
     JoinCondition = joinCondition;
 }
Beispiel #2
0
        private bool EvaluateSide(List <RawTableRow> rawDataRows, SqlBooleanExpression expression)
        {
            var database  = ((MemoryDbConnection )_RawData.Command.Connection).GetMemoryDatabase( );
            var evaluator = new EvaluateBooleanExpression(_RawData, database, null);

            return(evaluator.Evaluate(rawDataRows, expression));
        }
Beispiel #3
0
        protected virtual void ParseBooleanExpression(SqlBooleanExpression expression)
        {
            switch (expression)
            {
            case SqlLikeExpression like:
                ParseLikeExpression(like);
                return;

            case SqlComparisonExpression comparision:
                ParseComparisionExpression(comparision);
                return;

            case SqlLogicalExpression logical:
                ParseLogicalExpression(logical);
                return;
            }
        }
Beispiel #4
0
        public static IRowFilter GetRowFilter(SqlBooleanExpression booleanExpression, RawData rawData, bool invertResult = false)
        {
            switch (booleanExpression)
            {
            case SqlNotBooleanExpression notExpression: return(GetRowFilter(notExpression.Expression, rawData, true));

            case SqlComparisonBooleanExpression compareExpression: return(new RowFilterComparison(rawData, compareExpression, invertResult));

            case SqlBinaryBooleanExpression binaryExpression: return(new RowFilterBinary(rawData, binaryExpression, invertResult));

            case SqlInBooleanExpression inExpression: return(new RowFilterIn(rawData, inExpression));

            case SqlLikeBooleanExpression likeExpression: return(new RowFilterLike(rawData, likeExpression, invertResult));

            default:
                throw new NotImplementedException($"unsupported row filter {booleanExpression}");
            }
        }
Beispiel #5
0
        public JoinedTables On(SqlBooleanExpression condition)
        {
            switch (joinType)
            {
            case TableJoinType.InnerJoin:
                return(JoinedTables.InnerJoin(left, right, condition));

            case TableJoinType.LeftOuterJoin:
                return(JoinedTables.LeftOuterJoin(left, right, condition));

            case TableJoinType.RightOuterJoin:
                return(JoinedTables.RightOuterJoin(left, right, condition));

            case TableJoinType.FullOuterJoin:
                return(JoinedTables.FullOuterJoin(left, right, condition));

            default:
                throw new InvalidOperationException();
            }
        }
Beispiel #6
0
        public bool Evaluate(List <RawTableRow> rawDataRows, SqlBooleanExpression expression, bool invertResult = false)
        {
            switch (expression)
            {
            case SqlNotBooleanExpression notExpression: return(Evaluate(rawDataRows, notExpression.Expression, true));

            case SqlComparisonBooleanExpression booleanExpression: return(EvaluateExpression(rawDataRows, booleanExpression) ^ invertResult);

            case SqlBinaryBooleanExpression binaryExpression: return(EvaluateExpression(rawDataRows, binaryExpression) ^ invertResult);

            case SqlExistsBooleanExpression existsExpression: return(EvaluateExpression(rawDataRows, existsExpression) ^ invertResult);

            case SqlIsNullBooleanExpression isNullExpression: return(EvaluateExpression(rawDataRows, isNullExpression) ^ invertResult);

            case SqlInBooleanExpression inBooleanExpression: return(EvaluateExpression(rawDataRows, inBooleanExpression) ^ invertResult);

            case SqlLikeBooleanExpression likeBooleanExpression: return(EvaluateExpression(rawDataRows, likeBooleanExpression, invertResult));

            default:
                throw new NotImplementedException();
            }
        }
Beispiel #7
0
 protected virtual void ParseOnClause(SqlBooleanExpression expression)
 {
     builder.Append(" ON ");
     ParseExpression(expression, true);
 }
Beispiel #8
0
 public override void Visit(SqlBooleanExpression codeObject)
 {
 }
Beispiel #9
0
 protected virtual string VisitBoolean(SqlBooleanExpression expr) => (expr.Value ? "1" : "0").Braces(!expr.IsTop);
Beispiel #10
0
 internal WhereClause(SqlBooleanExpression condition)
 {
     Condition = condition;
 }
Beispiel #11
0
 public JoinedTables Join(TableSource right, SqlBooleanExpression condition)
 => InnerJoin(right, condition);
Beispiel #12
0
 public JoinedTables FullOuterJoin(TableSource right, SqlBooleanExpression condition)
 => JoinedTables.FullOuterJoin(this, right, condition);
Beispiel #13
0
        public SelectQueryBuilder Where(SqlBooleanExpression expression)
        {
            filter &= expression;

            return(this);
        }
Beispiel #14
0
 public DeleteQueryBuilder Where(SqlBooleanExpression condition)
 {
     Condition = condition;
     return(this);
 }
Beispiel #15
0
 public static JoinedTables FullOuterJoin(TableSource left, TableSource right, SqlBooleanExpression condition)
 {
     return(new JoinedTables(TableJoinType.FullOuterJoin, left, right, condition));
 }