internal static WBooleanExpression ConcatBooleanExpressionList(List <WBooleanExpression> booleanExprList, BooleanBinaryExpressionType type) { if (booleanExprList.Count == 1) { return(booleanExprList.First()); } WBooleanExpression concatExpr = null; foreach (var booleanExpr in booleanExprList) { if (booleanExpr == null) { continue; } WBooleanExpression newExpr = type == BooleanBinaryExpressionType.Or ? GetBooleanParenthesisExpr(booleanExpr) : booleanExpr; concatExpr = concatExpr == null ? booleanExpr : GetBooleanBinaryExpr(concatExpr, newExpr, type); } if (concatExpr == null) { return(null); } if (type == BooleanBinaryExpressionType.Or) { return(GetBooleanParenthesisExpr(concatExpr)); } return(concatExpr); }
private static cs.CodeBinaryOperatorType ConvertToBinaryOperatorType(BooleanBinaryExpressionType binaryExpressionType) { if (binaryExpressionType == BooleanBinaryExpressionType.Or) { return(cs.CodeBinaryOperatorType.BooleanOr); } if (binaryExpressionType == BooleanBinaryExpressionType.And) { return(cs.CodeBinaryOperatorType.BooleanAnd); } throw new NotImplementedException("" + binaryExpressionType); }
public static string BooleanExpressionType(BooleanBinaryExpressionType btype) { switch (btype) { case Microsoft.SqlServer.TransactSql.ScriptDom.BooleanBinaryExpressionType.And: return("AND"); case Microsoft.SqlServer.TransactSql.ScriptDom.BooleanBinaryExpressionType.Or: return("OR"); default: throw new GraphViewException("Invalid boolean expression type"); } }
public static string BooleanExpressionType(BooleanBinaryExpressionType btype) { switch (btype) { case BooleanBinaryExpressionType.And: return("AND"); case BooleanBinaryExpressionType.Or: return("OR"); default: throw new GraphViewException("Invalid boolean expression type"); } }
public void WhereConjunction(WBooleanExpression condition, BooleanBinaryExpressionType conjunction) { Debug.Assert(condition != null); if (this.RawWhereClause == null) { this.RawWhereClause = condition; return; } this.RawWhereClause = new WBooleanBinaryExpression { FirstExpr = new WBooleanParenthesisExpression { Expression = this.RawWhereClause }, SecondExpr = new WBooleanParenthesisExpression { Expression = condition }, BooleanExpressionType = conjunction }; }
internal static WBooleanBinaryExpression GetBooleanBinaryExpr(WBooleanExpression firstExpr, WBooleanExpression secondExpr, BooleanBinaryExpressionType type) { return(new WBooleanBinaryExpression() { BooleanExpressionType = type, FirstExpr = firstExpr, SecondExpr = secondExpr }); }
// TODO: emulate sql server short-circuit behavior (may be version specific) public static bool Evaluate(BooleanBinaryExpressionType op, bool left, bool right) => op switch {
public static string BooleanExpressionType(BooleanBinaryExpressionType btype) { switch (btype) { case Microsoft.SqlServer.TransactSql.ScriptDom.BooleanBinaryExpressionType.And: return "AND"; case Microsoft.SqlServer.TransactSql.ScriptDom.BooleanBinaryExpressionType.Or: return "OR"; default: throw new GraphViewException("Invalid boolean expression type"); } }