+2008-01-23 Konstantin Triger <kostat@mainsoft.com>
+
+ * Like.cs: when rh expresssion is null or DBNull always return false.
+
2007-12-24 Konstantin Triger <kostat@mainsoft.com>
* Parser.jay, StringFunctions.cs, Like.cs: add support for string concat.
override public object Eval (DataRow row)
{
object o = expr.Eval (row);
- if (o == DBNull.Value)
- return o;
+ if (o == null || o == DBNull.Value)
+ return false;
string str = (string)o;
bool openStart, openEnd;
string pattern = (string) _pattern.Eval (row);
table.Rows.Add (row);
Assert.AreEqual (0, (int)table.Rows[0][2], "#1");
}
+
+ [Test]
+ public void TestDataColumnLikeExpr ()
+ {
+ DataTable dt = new DataTable ();
+ dt.Columns.Add ("c1");
+ dt.Rows.Add (new string [] { null });
+ dt.Rows.Add (new string [] { "xax" });
+ dt.Columns.Add ("c2", typeof (bool), "c1 LIKE '%a%'");
+ Assert.IsFalse ((bool) dt.Rows [0] [1]);
+ Assert.IsTrue ((bool) dt.Rows [1] [1]);
+ }
+
[Test]
public void TestDataColumnExpr0Literal ()
{