merging the Mainsoft branch to the trunk
[mono.git] / mcs / class / System.Data / System.Data / ChangeLog
index 3d2aa225b25e1c7326102fbee9b535cce96ac182..10178e5bd2c7ec02b9b51505b213a3e087998128 100644 (file)
@@ -1,3 +1,626 @@
+2005-05-11  Sureshkumar T  <tsureshkumar@novell.com>
+
+       fix for "import row does not import deleted records"
+
+       * UniqueConstraint.cs: Make a way to access value even from a
+       deleted record. deleted records are added to the collection by
+       ImportRow method.
+
+       * DataRow.cs:
+       - Added restriction-less methods GetValue to fetch a
+       value even if it is in deleted state.
+       - If a row is detached, don't try to delete it from indexes.
+       - sanity check for record_index in CopyValuesToRow method
+
+2005-05-05  Sureshkumar T  <tsureshkumar@novell.com>
+
+       * DataTableReader.cs: Implemented Delete handler and move the
+       current pointer accordingly.
+
+2005-05-04  Sureshkumar T  <tsureshkumar@novell.com>
+
+       * DataTableReader.cs: Added event handlers to make reader stable
+       when the datasource is modified. Thanks to Umadevi for giving the
+       review comments for this implementation.
+
+       * DataTable.cs: Clear (): Raise TableCleared event.
+
+       * DataTableClearEventArgs.cs: Args for DataTableClearEventHandler.
+
+       * DataTableClearEventHandler.cs: Handler for DataTable.TableClear
+       event.
+
+       * DataRow.cs: AcceptChanges: raise row changing & row changed
+       events.
+
+       * DataRowCollection.cs: Clear : remove rows from indexes
+
+2005-05-02  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlSchemaDataImporter.cs : XmlSchemaParicle might be XmlSchemaAny.
+         This fixes bug #74784.
+
+2005-04-29  Sureshkumar T  <tsureshkumar@novell.com>
+
+       * DataTableReader.cs: removed use of _first. throw if given index
+       is out of range of columns. Copy DataTable [] to local array so
+       that not to be disturbed.
+
+2005-04-27  Sureshkumar T  <tsureshkumar@novell.com>
+
+       * DataTableReader.cs: Implemented most of the TODO.
+
+2005-04-22  Sureshkumar T  <tsureshkumar@novell.com>
+
+       * LoadOption.cs: Changed the enums. Keeping old values for
+       migration.
+
+       * DataTable.cs: Implemented methods Load and its overloads. Also
+       implemented LoadDataRow.
+
+       * DataRowCollection.cs: Added a variation of the Find method to
+       return a row even if it is of state Deleted. This is required for
+       DataTable.LoadDataRow method.
+
+       * DataRow.cs: Implemented internal helper method Load for loading
+       values from an object array and given an LoadOption (2.0 feature).
+
+       * DataRowAction.cs: Added few more enums for .net 2.0. Sorted
+       alphabetically.
+
+2005-05-16 Konstantin Triger <kostat@mainsoft.com>
+
+       * UniqueConstraint.cs : IsNull check is relevant for rows having default row version.
+       * DataTable.cs : The row should be validated when imported
+       * DataRowCollection.cs : if the row does not contain Proposed neither Current version, it's irrelevant for validation
+
+2005-04-26 Boris Kirzner <borisk@mainsoft.com>
+
+       * UniqueConstraint.cs :
+               - Add indication whenever the constraint belongs to collection. 
+               - Calculation of IsPrimaryKey simplified.
+               - If constraint is based on single column, the column becomes unique.
+               - Use boolean IsConstraintViolated() instead of AssertConstraint().
+               - Use Index.Duplicates to proper exception message formatting.
+               - AssertConstraint(DataRow) changed to suite new indexes interface.
+               - Added CanRemoveFromCollection method.
+               - Contains() method renamed to IsColumnContained().
+       * RelatedDataView.cs : added new class.
+       * MergeManager.cs :
+               - Reset indexes after merge.
+               - Add new tables when row array is merged into dataset.
+               - Clean proposed record in MergeRow.
+               - Inherit nesting on creating new relations in target data set.
+               - Avoid double loop on constraints collection.
+       * Locale.cs : added new class.
+       * ISafeDataRecord.cs : added new interface.
+       * Index.cs : commented out. Index implementation moved to System.Data.Common.
+       * ForeignKeyConstraint.cs : 
+               - No more use of childColumnsExtended since new indexes allow duplicate records.
+               - Constraints can not be created on expression columns.
+               - Removed unnecessary delegation.
+               - Use boolean IsConstraintViolated() instead of AssertConstraint(). 
+               - Use proper exception message formatting.
+               - Contains() method renamed to IsColumnContained().
+       * DataViewRowState.cs : use enum members to simplify notation.
+       * MergeManager.cs : implemented RelationCollectionChanged().
+       * DataView.cs :  new implementation.
+       * DataTableCollection.cs : 
+               - Added boundary check in indexer.
+               - More accurate handling in AddRange().
+               - Raise event in Remove().
+       * DataTable.cs :
+               - Hold primary key as constraint.
+               - Added accurate handling of DefaultView.
+               - Hold DataRowBuilder per table.
+               - Proper exception messages if enforce Constraints is violated.
+               - If there is no rows, Compute() returns DBNull.
+               - Use DataRow properties instead of private members.
+               - CopyProperties() fixed.
+               - Raise proper events in EndInit().
+               - Proper order of violation checks in EndLoadData().
+               - Create array of rows using NewRowArray().
+               - ImportRow handles rows according to their versions.
+               - LoadDataRow make use of records (instead of raw object array).
+               - Added and implemented LoadDataRow() that gets IDataRecord as a parameter (used in Fill)
+               - Select() uses indexes filtering and sorting ability (instead of "loop-throw-sort" approach).
+               - Removed redundant RowSorter and Sortable column classes.
+               - ParseSortString() fixed to threat bracketed column names.
+               - Table holds collection of property descriptors.
+       * DataSet.cs :
+               - Reset table case sensitive indexes on CaseSensitive change.
+               - EnforceConstraints update logic moved to internal method (used by DataTable).
+               - InAddChangedRow first add row and than copy values for proper handling of default values.
+       * DataRowView.cs :
+               - Changed private member names to suite name convention.
+               - CancelEdit() fixed.
+               - CreateChildView() delegates to DataView.
+               - IsNew fixed.
+               - Proper exception messages in indexers.
+               - RowVersion uses DataView.
+               - GetProperties() delegates to corresponding table if needed.
+       * DataRowCollection.cs :
+               - Common Add() logic moved to AddInternal() (used also by DataTable).
+               - Removed redundant check from Contains().
+               - Dalegate Find() calls when possible.
+               - Remove() fixed.
+               - RomoveAt() delegates to Remove().
+               - Optimized constraints check in row validation.
+       * DataRelationPropertyDescriptor.cs : added new class.
+       * DataRelationCollection.cs :
+               - Indexers fixed.
+               - Fixed order of actions in AddCore().
+               - RemoveCore() also delegates to base.
+               - Add relation to dataset also in AddCore().
+               - Remove relation from dataset also in RemoveCore().
+               - InTransition hold a data relation so we can properly identify the "in transition" state.
+               - Added threat of parent and child table s property descriptors in Add().
+               - Common Add() logic moved to AddCore().
+               - Clear() fixed.
+               - Remove() threats "in transition" state properly.
+               - Remove methods delegate to single implementation.
+       * DataColumnPropertyDescriptior.cs :
+               - Added new constructor.
+               - Commented out redundant method.
+       * DataColumnCollection.cs :
+               - Boundary check in indexer.
+               - RegisterName and UnregisterName become internal (used also by DataColumn).
+               - Fixed AddRange().
+               - Fixed CanRemove().
+               - Rethrow correct exception in Clear();
+               - Change in collection resets parent table property descriptors.
+               - Added PostEndEdit() helper method (used by DataTable).
+       * DataColumn.cs :
+               - Private member names changed to suite name convention.
+               - Created method for CanAutoIncrement() logic.
+               - Proper handling of column name update.
+               - Proper exception messages on expression update.
+               - Proper namespace handling (delegates to table when needed).
+               - Removed redundant check in Unique update.
+               - Implemented internal Clone().
+               - GetParentRalation() and GetChildRelation() become private.
+       * Constraint.cs :
+               - Added abstract methods (implemented in UniqueConstraint and ForeignKeyConstraint).
+               - Simplified index update.
+       * ConstraintCollection.cs :
+               - Use Locale instead of CaseSensitive in column names comparison.
+               - Removed #ifdef
+               - Rethrow correct exception type in Add().
+               - Proper update of table primary key in Add().
+               - Delegate CanRemove() to constraint.
+               - Remove table primary key in Clear();
+               - Delegate "can remove" check to constraint in Remove().
+               - Removed unnecessary methods and properties.
+       * DataRow.cs :
+               - RowSate becomes calculated property.
+               - Use properties instead of private members where possible.
+               - Fixed indexer.
+               - Fixed order of actions in ItemArray update.
+               - Fixed DetachRow().
+               - Added ImportRecord() method.
+               - Removed redundant SetValuesFromDataRecord().
+               - Fixed IndexFromVersion().
+               - Added VersionFromIndex() method. Returns row version the passed record index corresponds to.
+               - Fixed AcceptChanges().
+               - Fixed creating proposed version in BeginEdit();
+               - Added record disposal in Delete().
+               - Fixed CheckChildRows().
+               - EndEdit() fixed. Checks for readonly. Uses straight flow instead of "try and fix if fail" approach.
+               - GetChildRows() and GetPrarentRows() rewrited. Use records and indexes for rows lookup.
+               - GetColumnError() delegates to another implementation.
+               - HasVersion() fixed.
+               - RejectCahnges checks on child rows before passing through.
+               - SetParentRow() fixed. Create relation collection if needed. Use typed data container value copy.
+               - CopyErrors() logic moved to separate method (used also by DataTable).
+       * ExpressionElement.cs : added new class.
+       * Res.cs : added new class.
+
+2005-04-20  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * DataViewManager.cs: implements TypedList.GetListName used in SWF
+
+2005-04-19  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataRowView.cs : indexer should access to DataRow with proper
+         DataRowVersion. Fixed bug #74650.
+
+2005-04-18  Sureshkumar T  <tsureshkumar@novell.com>
+
+        * DataRow.cs: if there are no mapping fields, fill with default
+         value.
+
+2005-04-17  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataView.cs : Delete() should not try to remove row twice.
+         Fixed bug #74631.
+
+2005-04-13  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataTable.cs : Use GetRowType() for the base of the returning array 
+         type of Select(). Fix by Gerhard Rittweger.
+       * CustomDataClassGenerator.cs : Fixed slightly harmless wrong code.
+
+2005-04-13  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * CustomDataClassGenerator.cs : custom relation was not added to
+         Relations property. The second entry of bug #69276 was fixed.
+         Patch by Daniel Rodriguez.
+
+2005-04-07  Lluis Sanchez Gual <lluis@novell.com>
+
+       * DataRowCollection.cs: Fix the signature of the Add method
+       for NET_2_0.
+
+2005-03-16  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataRow.cs : on importing row, it was copying data from incorrect
+         DataRow. This fixes bug #73288.
+
+2005-03-07  Jackson Harper  <jackson@ximian.com>
+
+       * DataViewManagerListItemTypeDescriptor.cs: Implement missing
+       features. These are needed for System.Windows.Forms databinding.
+
+2005-02-25  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataColumn.cs : setting negative value on MaxLength of SimpleContent
+         column is still valid.
+
+2005-02-15  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlSchemaWriter.cs : new file for outputting XmlSchema.
+       * DataSet.cs : removed rewritten code in XmlSchemaWriter.
+       * XmlConstants.cs : added UseCurrentCulture constant.
+       * DataTable.cs :
+         Use new Xml Schema writer.
+         Use XmlSchemaDataImporter as we use in DataSet.
+
+2005-02-10  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataView.cs, DataRowView.cs : Fixed bug #72421. CreateChildView()
+         should target only child rows.
+
+2005-02-03  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataViewManager.cs: misuse of ReadStartElement(string).
+       * DataRowView.cs : removed some MonoTODO.
+
+2005-02-02  Sureshkumar T  <tsureshkumar@novell.com>
+           Ankit Jain     <radical@corewars.org>
+
+       * DataColumn.cs: throw exception if the column is part of a
+       relationship, when chaning the data type. Added methods
+       "GetParentRelation ()" and "GetChildRelation ()" get the relation
+       which contains the current column
+       * DataRelation.cs: Added method "Contains (DataColumn)" to check
+       whether the relation contains the given column.
+
+       fixes nunit failure: DataRelationTest.InvalidConstraintException2.
+
+2005-02-02  Sureshkumar T  <tsureshkumar@novell.com>
+
+       * DataColumnCollection.cs: implemented todo item "check for
+       constraints" when removing columns from table.
+       * DataRowCollection.cs: Clear (): don't have to throw child key
+       constraint exception when the child table does not have any
+       rows. safe to remove parent rows.
+       * UniqueConstraint.cs: added method "Contains (DataColumn)" to
+       check whether a column is part of UniqueConstraint.
+       * ForeignKeyConstraint.cs: added method "Contains (DataColumn,
+       lookInParent)" to check whether a column is part of foreignkey.
+
+       fixes nunit failure: DataTableTest.ClearTest ()
+
+2005-02-02  Sureshkumar T  <tsureshkumar@novell.com>
+
+       * ForeignKeyConstraint.cs: validating columns: move checking
+       "tables are of same dataset" before "checking column types".
+
+       fixes nunit failure: ForeignKeyConstraint.CtorExceptions.
+       
+2005-02-02  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataViewManager.cs : let's just use StringWriter instead of 
+         XmlTextWriter (to avoid empty tag string mismatch annoyance.)
+       * DataView.cs : implemented BeginInit() and EndInit(). Don't update
+         rows during init phase until EndInit() is invoked. During init phase,
+         just hold properties such as Sort that affects on rows.
+
+2005-02-02  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataTableCollection.cs : (RemoveAt) just use IndexOutOfRangeException.
+
+2005-02-02  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataView.cs : DataRowView.EndEdit() raises ItemMoved event.
+         set_Table clears Sort and RowFilter.
+
+2005-02-02  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataView.cs :
+         - Clear() should clear AddNew cache.
+         - Open() invokes Reset().
+         - ConstraintCollectionChanged() itself does not invoke OnListChanged().
+         - Reset() does not Open, Close and Update Index.
+         - UpdateIndex() can be invoked even if it has no table.
+         - Reset event is invoked always after actual query to table.
+         - set_Table should raise PropertyDescriptorChanged event.
+
+2005-02-02  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataView.cs : ColumnCollectionChanged() is the event invoker (i.e.
+         when overriden, no column change events are fired).
+
+2005-02-02  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataView.cs : CancelEditRowView() and DeleteRowView() was incorrectly
+         checking target tables. They also should raise events if required.
+
+2005-02-02  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataView.cs : simplify code with UnsortedList.
+
+2005-02-01  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataView.cs : Mostly reimplemented.
+         - UpdateIndex() is invoked only when it is required (results in 
+           significant performance improvement).
+         - Use SortedList and wrapper OptionalSortedList which switches
+           between SortedList (with Sort) and UnsortedList (without Sort).
+         - DataView itself now contains two collections for rowviews:
+           Table rows based pool and AddNew() based cache. Consider those
+           two collections in every members.
+         - Reset() does not clear rows. Just invokes UpdateIndex().
+         - Hook RowDeleting, ColumnChanging and ColumnChanged events in table
+           which is required to handle state changes.
+         - Reimplemented Find() and FindRows() because of internal changes.
+
+2005-02-01  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataTable.cs : Fixed row comparer. Even if every of the sort target
+         columns are identical for two rows, they should not be regarded as
+         the same unless they are Object.ReferenceEquals.
+
+2005-02-01  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataRowCollection.cs : on adding a row, should raise
+         ChangingDataRow() as well as ChangedDataRow().
+
+2005-01-31  Sureshkumar T  <tsureshkumar@novell.com>
+
+       * DataRow.cs: SetParentRow (): use relation.ParentColumns &
+       relation.ChildColumns instead of relation.ChildKeyConstraint.*
+       because createConstrains flag may be false when creating data
+       relations. Hack along with Ankit Jain.
+       
+2005-01-31  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataView.cs :some interface implementations.
+
+2005-01-28  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataView.cs : Add to table only when the row is not in the table.
+
+2005-01-28  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataView.cs : implemented FindRows() (btw we should not use
+         DataTable since there are detached rows by AddNew().)
+
+2005-01-28  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataView.cs :
+         Code cleanup: privatify some members, remove unused methods.
+         Some event-based invocation methods should not raise NotImplemented.
+
+2005-01-28  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataSet.cs : ReadXml() became closer to MS behavior, being hacky.
+
+2005-01-28  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlSchemaDataImporter.cs : empty element is not regarded as a column.
+
+2005-01-28  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * UniqueConstraint.cs : mostly reverted the previous patch + check
+         IsPrimaryKey before validation.
+
+2005-01-28  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataView.cs : Fixed duplicate insertion to Hashtable.
+       * UniqueConstraint.cs : Unique constrained pair of columns could be
+         nullable.
+
+2005-01-27  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataView.cs :
+         Don't do anything for Sort/ApplyDefaultSort/RowFilter/RowStateFilter
+         when the same value is being set.
+         Examined UpdateIndex() and marked FIXME where MS does not invoke it.
+         Removed unused OnColumnChanged().
+         Now store rowViewPool and reuse DataRowView objects.
+         Optimized UpdateIndex() - avoid ArrayList. Avoid Haashtable.Rehash().
+
+2005-01-27  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataViewSettings.cs : no MonoTODO anymore.
+       * DataViewManager.cs : pass itself to new DataView() (new ctor).
+       * DataRowView.cs : GetHashCode() returns its Row's hash.
+       * DataTablePropertyDescriptor.cs : use new ctor().
+       * DataView.cs : added new ctor()s that accept DataViewManager.
+
+2005-01-27  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataView.cs, DataRowView.cs : AddNew() should not add the row to table
+         (it is still detached). So handle those rows differntly.
+         CancelEdit(), EndEdit() and Delete() propagates those events to
+         DataView (and handle row collection).
+         Eliminate "throw new Exception()".
+         Don't catch all the exception thrown in ListChanged event.
+       * DataTable.cs : made RowSorter as internal and use it in DataView.
+         no need to pass DataRow[] to .ctor().
+
+2005-01-27  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataTable.cs : don't create DefaultView unless it is required. It
+         significantly improves performance. (i.e. DataView perf. is sick ;-)
+
+2005-01-27  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataViewSetting.cs,
+         DataViewSettingCollection.cs,
+         DataViewManager.cs : implemented basic members.
+
+2005-01-26  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Node.cs, DataColumnPropertyDescriptor.cs, DataTable.cs :
+         Eliminate "throw new Exception".
+
+2005-01-25  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataRow.cs : (set_Item) RowNotInTableExeption check should be done
+         regardless of index existence.
+
+2005-01-25  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataTable.cs : use new IExpression.EvalBoolean() to avoid extraneous
+         boxing.
+
+2005-01-25  Sureshkumar T  <tsureshkumar@novell.com>
+
+       * DataTable.cs: ImportRow :Do not add to rows collection if the
+       import row is in detached state.
+
+2005-01-25  Sureshkumar T  <tsureshkumar@novell.com>
+
+       * DataRow.cs: CopyValuesToRow : set the column value with the
+       default version of the given row.
+       * DataTable.cs: ImportRow: Copy values before adding row.
+       * DataSet.cs: AddChangedRow: Add the row to the table after
+       copying values.
+       
+       Fixes bug #67317. Patch by Ankit Jain.
+
+2005-01-25  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataRowView.cs : Fixed IsEdit to reflect correct status of DataRow.
+       * DataRow.cs : Expose editing status internally.
+
+2005-01-25  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataView.cs : missing attributes.
+
+2005-01-24  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataRowView.cs : implemented CreateChildView().
+
+2005-01-24  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataTable.cs, DataView.cs :
+         Optimized DataView to compile only once RowFilter and Sort when 
+         those properties are set. To make it possible, extracted 
+         SortableColumn out of DataTable and added internal DataTable.Select()
+         that accepts precompiled IExpression and SortableColumns[].
+
+2005-01-24  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataColumn.cs : set_MaxLength is not allowed when it is mapped to
+         SimpleContent. (However, it is weird but it never fails when we set
+         ColumnMapping = MappingType.SimpleContent when we fhave MaxLength.)
+
+2005-01-21  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataRow.cs : more Current -> Default fixes. Check if it should throw
+         VersionNotFoundException. Patch by Ankit Jain.
+
+2005-01-21  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataRow.cs : Default selects the right version for the current
+         state of the row. Current is not always available. Also change
+         that for GetParentRow(). Patch by Ankit Jain.
+
+2005-01-21  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataTable.cs : CopyColumn() should copy AutoIncrement after
+         DefaultValue, or it will raise an error in some cases.
+
+2005-01-20  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ConstraintCollection.cs : Add() should throw ArgumentException when
+         the argument constraint fails validation.
+         DataTable.cs : set_PrimaryKey should throw ArgumentException when
+         the argument contains constraints which fail validation.
+
+2005-01-19  Sureshkumar T  <tsureshkumar@novell.com>
+
+       * DataRelationCollection.cs: 
+
+       Method Remove : Donot throw exception if DataRelation argument is
+       null in DataRelationCollection.Remove method.
+
+       Method RemoveAt : Exception should be IndexOutOfRangeException if
+       row index is not in list range.
+
+       Fixes nunit failures DataRelationCollection.Remove and
+       DataRelationCollection.RemoveAt.
+
+2005-01-19  Sureshkumar T  <tsureshkumar@novell.com>   
+
+       * ConstraintCollection.cs: Donot throw exception if constraints
+       are null in AddRange method. Check for null before using the
+       argument.
+
+       fixes bug #69381.
+
+2004-01-19  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlDataInferenceLoader.cs,
+         XmlDataReader.cs : Check if the XmlReader (node) represents DataSet
+         or a table, reusing code block in XmlDataInferenceLoader.
+         This fixes bug #60118.
+
+2004-01-19  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlDiffLoader.cs : Ankit Jain <radical@imt.ac.in> has a conflicting
+         patches and some good catches. Some attributes should be skipped,
+         and loaded value must be typed.
+
+2004-01-19  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlConstants.cs,
+         XmlDataInferenceLoader.cs, 
+         XmlDataReader.cs : use common const for http://www.w3.org/2000/xmlns/.
+       * XmlDiffLoader.cs : It was not handling attributes. Fixed bug #70961.
+
+2005-01-18  Sureshkumar T  <tsureshkumar@novell.com>
+
+       Fix for bug #66838. This patch is submitted by "Ankit Jain"
+       <radical@corewars.org> and refactored.
+
+       * DataRow.cs: Allows to set a parent row even if the row is in
+       detached state.
+
+       * DataRelation.cs: method "UpdateConstraints" is added to check
+       and create missing keys when adding a relation. This is refactored
+       approach from DataRelationCollection.Add method.
+
+       * DataRelationCollection.cs: AddCore methods of all relation types
+       are synchronized. A Check for existing constraints is
+       done. Relation is added to the list only if all checks are passed.
+
+2004-01-18  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataColumnCollection.cs : Clear() throws ArgumentException that
+         wraps thrown innerException.
+       * XmlSchemaDataImporter.cs : removed FIXMEs.
+
+2004-01-12  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataSet.cs : When serializing DataTable, BuildSchema() is passed
+         null relation collections.
+         Quick fix for XmlSerializer deserialization. It does not require
+         XML Schema included.
+
 2004-01-11  Atsushi Enomoto  <atsushi@ximian.com>
 
        * DataSet.cs,
        * DataSet.cs (Copy, Clone): The Relations of the DataSet were not copy.
        (HasChanges, Reset): Imlementation.
        
-       * DataTable.cs (HasErrors): There is no flag for errors, instead the table ask her row if they have any errors.\r
+       * DataTable.cs (HasErrors): There is no flag for errors, instead the table ask her row if they have any errors.
        This is because the we do not no when to turn off the flag.
        (Locale): Changing implementation to behave like ADO.NET.
        (AcceptChanges): Fix bug.
        (HasVersion): Added special treatment for special RowState.
        (CollectionChanged): More checks to avoid NullReferenceException.
        
-       * DataRowCollection.cs (Remove): Fix a bug.\r
+       * DataRowCollection.cs (Remove): Fix a bug.
 
 
 2003-10-01  Duncan Mak  <duncan@ximian.com>