diff options
author | Atsushi Eno <atsushieno@gmail.com> | 2005-02-10 21:56:19 +0300 |
---|---|---|
committer | Atsushi Eno <atsushieno@gmail.com> | 2005-02-10 21:56:19 +0300 |
commit | 7b8d0e6bccb770847cae5dbe2df26db75ef5a385 (patch) | |
tree | d2da182d5d9ba67dbdc41a81f221b4ef2cf58832 /mcs/class/System.Data/Mono.Data.SqlExpressions | |
parent | 2ad0cfcf7c4fa405fef4c1d5f7f8f01f612ea587 (diff) |
2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
* Comparison.cs : allow comparison between guid and string.
* ColumnReference.cs : return guid value too. Fixed bug #72426.
svn path=/trunk/mcs/; revision=40417
Diffstat (limited to 'mcs/class/System.Data/Mono.Data.SqlExpressions')
3 files changed, 13 insertions, 4 deletions
diff --git a/mcs/class/System.Data/Mono.Data.SqlExpressions/ChangeLog b/mcs/class/System.Data/Mono.Data.SqlExpressions/ChangeLog index def0b999010..4cc6aba3137 100644 --- a/mcs/class/System.Data/Mono.Data.SqlExpressions/ChangeLog +++ b/mcs/class/System.Data/Mono.Data.SqlExpressions/ChangeLog @@ -1,3 +1,8 @@ +2005-02-10 Atsushi Enomoto <atsushi@ximian.com> + + * Comparison.cs : allow comparison between guid and string. + * ColumnReference.cs : return guid value too. Fixed bug #72426. + 2005-01-28 Atsushi Enomoto <atsushi@ximian.com> * Comparison.cs : Eval() could be direct invocation to EvalBoolean(). diff --git a/mcs/class/System.Data/Mono.Data.SqlExpressions/ColumnReference.cs b/mcs/class/System.Data/Mono.Data.SqlExpressions/ColumnReference.cs index 5a8d8edf7a5..ff365875773 100644 --- a/mcs/class/System.Data/Mono.Data.SqlExpressions/ColumnReference.cs +++ b/mcs/class/System.Data/Mono.Data.SqlExpressions/ColumnReference.cs @@ -128,7 +128,7 @@ namespace Mono.Data.SqlExpressions { if (val == null || val == DBNull.Value) return null; - if (val is bool || val is string || val is DateTime) + if (val is bool || val is string || val is DateTime || val is Guid) return val; if (val is Enum) diff --git a/mcs/class/System.Data/Mono.Data.SqlExpressions/Comparison.cs b/mcs/class/System.Data/Mono.Data.SqlExpressions/Comparison.cs index 5e5284764ab..7c3b69547dc 100644 --- a/mcs/class/System.Data/Mono.Data.SqlExpressions/Comparison.cs +++ b/mcs/class/System.Data/Mono.Data.SqlExpressions/Comparison.cs @@ -71,9 +71,13 @@ namespace Mono.Data.SqlExpressions { try { if (o1 is string && Numeric.IsNumeric (o2)) - o1 = (IComparable)Convert.ChangeType (o1, o2.GetType ()); - if (o2 is string && Numeric.IsNumeric (o1)) - o2 = (IComparable)Convert.ChangeType (o2, o1.GetType ()); + o1 = (IComparable) Convert.ChangeType (o1, o2.GetType ()); + else if (o2 is string && Numeric.IsNumeric (o1)) + o2 = (IComparable) Convert.ChangeType (o2, o1.GetType ()); + else if (o1 is string && o2 is Guid) + o2 = o2.ToString (); + else if (o2 is string && o1 is Guid) + o1 = o1.ToString (); } catch (FormatException) { throw new EvaluateException (String.Format ("Cannot perform compare operation on {0} and {1}.", o1.GetType(), o2.GetType())); } |