示例#1
0
        private bool EvaluateExpression(List <RawTableRow> rawDataRows, SqlInBooleanExpression expression)
        {
            var type   = Helper.DetermineType(expression.InExpression, expression.InExpression, _RawData);
            var source = Helper.GetValue(expression.InExpression, type, _RawData, rawDataRows);

            foreach (var child in expression.ComparisonValue.Children)
            {
                if (child is SqlScalarExpression scalarExpression)
                {
                    var inValue = Helper.GetValue(scalarExpression, type, _RawData, rawDataRows);
                    var compare = HelperConditional.IsPredicateCorrect(source, inValue, SqlComparisonBooleanExpressionType.Equals);
                    if (compare)
                    {
                        return(true);
                    }
                }
                else
                {
                    throw new NotImplementedException("We expect each compare value to be a scalar expression");
                }
            }

            return(false);
        }
示例#2
0
 public RowFilterIn(RawData rawData, SqlInBooleanExpression expression)
 {
     _Expression   = expression;
     _RawData      = rawData;
     _InvertResult = _Expression.HasNot;
 }
示例#3
0
 public override void Visit(SqlInBooleanExpression codeObject)
 {
 }