internal JoinedTables(TableJoinType joinType, FromSource left, FromSource right, SqlBooleanExpression joinCondition) { JoinType = joinType; Left = left; Right = right; JoinCondition = joinCondition; }
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)); }
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; } }
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}"); } }
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(); } }
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(); } }
protected virtual void ParseOnClause(SqlBooleanExpression expression) { builder.Append(" ON "); ParseExpression(expression, true); }
public override void Visit(SqlBooleanExpression codeObject) { }
protected virtual string VisitBoolean(SqlBooleanExpression expr) => (expr.Value ? "1" : "0").Braces(!expr.IsTop);
internal WhereClause(SqlBooleanExpression condition) { Condition = condition; }
public JoinedTables Join(TableSource right, SqlBooleanExpression condition) => InnerJoin(right, condition);
public JoinedTables FullOuterJoin(TableSource right, SqlBooleanExpression condition) => JoinedTables.FullOuterJoin(this, right, condition);
public SelectQueryBuilder Where(SqlBooleanExpression expression) { filter &= expression; return(this); }
public DeleteQueryBuilder Where(SqlBooleanExpression condition) { Condition = condition; return(this); }
public static JoinedTables FullOuterJoin(TableSource left, TableSource right, SqlBooleanExpression condition) { return(new JoinedTables(TableJoinType.FullOuterJoin, left, right, condition)); }