コード例 #1
0
        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)));
        }
コード例 #2
0
ファイル: StringType.cs プロジェクト: meikeric/deveeldb
        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, '\\'));
        }