protected override DataObject EvaluateBinary(DataObject ob1, DataObject ob2, IEvaluateContext context) { if (ob1.IsNull) { return(ob1); } if (ob2.IsNull) { return(ob2); } char cEscape = '\\'; if (Escape is ConstantExpression) { // TODO: some more checks... var escapeValue = ((ConstantExpression)Escape).Value; cEscape = escapeValue.ToString()[0]; } string val = ob1.CastTo(PrimitiveTypes.String()).ToStringValue(); string pattern = ob2.CastTo(PrimitiveTypes.String()).ToStringValue(); return(DataObject.Boolean(PatternSearch.FullPatternMatch(pattern, val, cEscape))); }
public SqlBoolean IsLike(ISqlString value, ISqlString pattern) { if (value == null && IsNull) { return(true); } if (!IsNull && value == null) { return(false); } if (value == null) { return(false); } var s1 = value.ToString(); var s2 = pattern.ToString(); return(PatternSearch.FullPatternMatch(s1, s2, '\\')); }