[Mono-dev] [Mono-patches] r107145 - trunk/mcs/class/System.Data/System.Data

Veerapuram Varadhan vvaradhan at novell.com
Wed Jul 9 05:36:28 EDT 2008


On Wed, 2008-07-09 at 09:39 +0200, Gert Driesen wrote:
> 
> --------------------------------------------------
> From: "Veerapuram Varadhan" <vvaradhan at novell.com>
> Sent: Wednesday, July 09, 2008 8:42 AM
> To: "Gert Driesen" <gert.driesen at telenet.be>
> Cc: "'mono-devel-list'" <mono-devel-list at ximian.com>
> Subject: Re: [Mono-dev][Mono-patches]	r107145	-trunk/mcs/class/System.Data/System.Data> Hi Gert,
> >
> > On Fri, 2008-07-04 at 21:35 +0200, Gert Driesen wrote:
> >> Hey Veerapuram,
> >>
> >> I've attached a patch for the changes I mentioned. However, I found out 
> >> that
> >> on the 1.0 profile we should still allow the value to be set to null if 
> >> the
> >> datatype of the column is string. This matches the behavior before 
> >> r107145.
> >>
> >> Let me know if it's ok to commit.
> >>
> > In case of 2.0 profile, in case of reference types, we have to set value
> > to DBNull instead of NULL - which the patch is missing. Except that,
> > patch looks good - please commit along with the mentioned changes.
> 
> Are you sure that we need to set it to DBNull? Do you have a test that shows 
> this to be necessary?
> 
> At least one of the unit tests I shows that 
> DataColumnChangeEventArgs.ProposedValue of the ColumnChanged/ColumnChanging 
> events has value NULL (and not DBNull) on MS.NET 2.0.
> 
> My patch passed all unit tests, and I created a few connected tests to be 
> sure I did not break anthing.
> 
> It's of course more important not to break existing application than to get 
> some unit test to pass.
> 
> However, if not setting the value to DBNull indead breaks applications, then 
> I'd like to have a test for this (to ensure we won't be breaking this in the 
> future).
> 
Yes, I agree with you.  Please add the relevant tests as well. 

TIA,

V. Varadhan

> Gert
> 
> >> -----Original Message-----
> >> From: mono-devel-list-bounces at lists.ximian.com
> >> [mailto:mono-devel-list-bounces at lists.ximian.com] On Behalf Of Veerapuram
> >> Varadhan
> >> Sent: vrijdag 4 juli 2008 12:18
> >> To: Gert Driesen
> >> Cc: 'mono-devel-list'
> >> Subject: Re: [Mono-dev] [Mono-patches] r107145 -
> >> trunk/mcs/class/System.Data/System.Data
> >>
> >> Hi Gert,
> >>
> >> On Thu, 2008-07-03 at 18:19 +0200, Gert Driesen wrote:
> >> > Hey Veerapuram,
> >> >
> >> > I don't think this change is correct. I've done some more tests, and 
> >> > this
> >> is
> >> > the behavior I'm seeing:
> >> >
> >> > * on 1.0 profile, you are never allowed to set value to NULL.
> >> > * on 2.0 profile, you are only allowed to set value to NULL if the 
> >> > column
> >> is
> >> > backed by a reference type.
> >> >
> >> > I'll add unit tests for this to DataRowTest2.cs in a few minutes, and 
> >> > mark
> >> > them NotWorking.
> >> >
> >> > Let me know if you want me to submit a patch that changes our
> >> implementation
> >> > accordingly.
> >> >
> >> That would be great.  Feel free to submit tests and the patch.
> >>
> >> Thanks,
> >>
> >> V. Varadhan
> >>
> >> > Gert
> >> >
> >> > -----Original Message-----
> >> > From: mono-patches-bounces at lists.ximian.com
> >> > [mailto:mono-patches-bounces at lists.ximian.com] On Behalf Of Veerapuram
> >> > Varadhan (vvaradhan at novell.com)
> >> > Sent: donderdag 3 juli 2008 15:38
> >> > To: mono-patches at lists.ximian.com; ximian.monolist at gmail.com;
> >> > mono-svn-patches-garchive-20758 at googlegroups.com
> >> > Subject: [Mono-patches] r107145 - 
> >> > trunk/mcs/class/System.Data/System.Data
> >> >
> >> > Author: varadhan
> >> > Date: 2008-07-03 09:38:09 -0400 (Thu, 03 Jul 2008)
> >> > New Revision: 107145
> >> >
> >> > Modified:
> >> >    trunk/mcs/class/System.Data/System.Data/ChangeLog
> >> >    trunk/mcs/class/System.Data/System.Data/DataRow.cs
> >> > Log:
> >> > Use DBNull value instead of throwing an exception
> >> >
> >> >
> >> > Modified: trunk/mcs/class/System.Data/System.Data/ChangeLog
> >> > ===================================================================
> >> > --- trunk/mcs/class/System.Data/System.Data/ChangeLog 2008-07-03 
> >> > 13:37:14
> >> > UTC (rev 107144)
> >> > +++ trunk/mcs/class/System.Data/System.Data/ChangeLog 2008-07-03 
> >> > 13:38:09
> >> > UTC (rev 107145)
> >> > @@ -1,3 +1,7 @@
> >> > +2008-07-03  Marek Habersack  <mhabersack at novell.com>
> >> > +
> >> > + * DataRow.cs (this []): Use DBNull instead of throwing an exception
> >> > +
> >> >  2008-07-01  Rodrigo Kumpera  <rkumpera at novell.com>
> >> >
> >> >  * DataTable.cs: Kill some foreach loops.
> >> >
> >> > Modified: trunk/mcs/class/System.Data/System.Data/DataRow.cs
> >> > ===================================================================
> >> > --- trunk/mcs/class/System.Data/System.Data/DataRow.cs 2008-07-03
> >> 13:37:14
> >> > UTC (rev 107144)
> >> > +++ trunk/mcs/class/System.Data/System.Data/DataRow.cs 2008-07-03
> >> 13:38:09
> >> > UTC (rev 107145)
> >> > @@ -178,9 +178,8 @@
> >> >  DataColumn column =
> >> > _table.Columns[columnIndex];
> >> >  _table.ChangingDataColumn (this, column,
> >> > value);
> >> >
> >> > - if (value == null && column.DataType !=
> >> > typeof(string)) {
> >> > - throw new ArgumentException("Cannot
> >> > set column " + column.ColumnName + " to be null, Please use DBNull
> >> > instead");
> >> > - }
> >> > + if (value == null && column.DataType !=
> >> > typeof(string))
> >> > + value = DBNull.Value;
> >> >  _rowChanged = true;
> >> >
> >> >  CheckValue (value, column);
> >> >
> >> > _______________________________________________
> >> > Mono-patches maillist  -  Mono-patches at lists.ximian.com
> >> > http://lists.ximian.com/mailman/listinfo/mono-patches
> >> >
> >>
> >> _______________________________________________
> >> Mono-devel-list mailing list
> >> Mono-devel-list at lists.ximian.com
> >> http://lists.ximian.com/mailman/listinfo/mono-devel-list
> >
> > _______________________________________________
> > Mono-devel-list mailing list
> > Mono-devel-list at lists.ximian.com
> > http://lists.ximian.com/mailman/listinfo/mono-devel-list
> > 
> 



More information about the Mono-devel-list mailing list