http://bugzilla.novell.com/show_bug.cgi?id=589482
http://bugzilla.novell.com/show_bug.cgi?id=589482#c0 Summary: DataTable.Clone loses the AutoIncrement of Columns of type Decimal Classification: Mono Product: Mono: Class Libraries Version: 2.6.x Platform: Macintosh OS/Version: Mac OS X 10.6 Status: NEW Severity: Critical Priority: P5 - None Component: Sys.Data AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.22.7 (KHTML, like Gecko) Version/4.0.5 Safari/531.22.7 When cloning a DataTable that has decimal columns set to auto increment, the cloned decimal columns will lose their auto increment property Reproducible: Always Steps to Reproduce: 1. DataTable t1 = new DataTable(); 2. DataColumn dc = t1.Columns.Add("c1", typeof(Decimal)); 3. dc.AutoIncrement = true ; 4. DataTable t2 = t1.Clone() ; 5. if (! t2.Columns[0].AutoIncrement) throw new Exception("AutoIncrement not copied"); Actual Results: The exception "AutoIncrement not Copied" will be thrown Expected Results: The AutoIncrement property of the column should be copied and no exception should be thrown The bug is in the property DataType of the class DataColumn. Here is the section that's causing the problem //Check AutoIncrement status, make compatible datatype if(AutoIncrement == true) { // we want to check that the datatype is supported? // TODO: Is this the same as CanAutoIncrement or was the omission of Decimal intended? TypeCode typeCode = Type.GetTypeCode(value); if (typeCode != TypeCode.Int16 && typeCode != TypeCode.Int32 && typeCode != TypeCode.Int64) { AutoIncrement = false; } } Note that someone added a TODO comment instead of actually fixing the defect. I think the correct code should be //Check AutoIncrement status, make compatible datatype if(AutoIncrement == true) { // we want to check that the datatype is supported? if (! CanAutoIncrement(value)) { AutoIncrement = false; } } -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
