2006-06-15 Senganal T <tsenganal@novell.com>
[mono.git] / mcs / class / System.Data / System.Data / ChangeLog
index 1932cc96c6f6d7dafad2526421c299f9c6c61124..53705bd863a2a11e9395c505f648e1601e9cff58 100644 (file)
@@ -1,3 +1,502 @@
+2006-06-15  Senganal T  <tsenganal@novell.com>
+
+       * DataTable.cs :
+               - Select : If Sort String is not provided, sort the result
+               DataRows in Ascending Order of the Columns used in the filter
+
+2006-06-15  Senganal T  <tsenganal@novell.com>
+
+       * DataSet.cs :
+               - InternalEnforceConstraints : Check if any null constraints 
+               are violated. Throw ConstraintException only after all the errors
+               are filled.
+       * DataTable.cs :
+               - EnforceConstraints : Move away the logic to check for 
+               NullConstraintViolation.
+               - AssertNotNullConstraint : Checks for Null Constraint
+               Violation.
+               - EndLoadData : Do not throw any exceptions here. All the
+               errors have to be found and RowErrors set before throwing the
+               exception.
+       * DataRow.cs :
+               - ImportRecrod : Check the values of the row for any null
+               values.
+               - SetColumnError : If the error for column is already set,
+               do not add a new error but edit the existing error. 
+               - CheckValue : Set the NullConstraintViolation flag if either
+               table is being loaded or if EnforceConstraints is set to
+               false.
+       * Constraint.cs : Do not throw exception when EnforceConstraints is
+       set to false or table is being loaded.
+       * UniqueConstraint.cs : Correct the error message. Set ColumnErrors
+       along with the RowError.
+
+2006-05-31  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * DataTable.cs: Renamed initInProgress to fInitInProgress. BeginInit
+       and EndInit must only be virtual in 2.0 profile. Set eol-style to CRLF.
+
+2006-05-31  Senganal T  <tsenganal@novell.com>
+
+       * XmlDataInferenceLoader.cs :
+               - InferTableElement : Repeated element should result in a single
+               inferred table.
+       Patch from Deepak Kr Velachha 
+
+2006-04-21  Senganal T  <tsenganal@novell.com>
+
+       * DataRowCollection.cs :
+               - Find : If search on the table using PrimaryKey fails and if
+               index is not being maintained (during table load), search the 
+               entire table.
+               - Find (int) : Removed. Deadcode. 
+               - Clear :
+                       - Not necessary to delete each row from the Index.
+                       Just reset the Indexes after cleaning up the row
+                       collection.
+                       - Simplify dependency check for child tables
+       * DataTable.cs :
+               - LoadDataRow : 
+                       - Do not use DataRowCollection.Find to search for
+                       existing records as this wud check even newly loaded rows.
+                       Use Index.Find.
+                       - Do not add new records to Index. Update Index only
+                       if an existing record is modified. New records will be
+                       taken care by EndLoadData.
+
+2006-04-19  Senganal T  <tsenganal@novell.com>
+
+       * XmlHelper.cs : A helper class for encoding/decoding schema names.
+       Caches the Schema names to minimize encoding/decoding operations and
+       duplicate strings created.
+       * XmlSchemaWriter : 
+               - Use XmlHelper for encoding/decoding schema names.
+               - Encode ConstraintNames when writing as xml.
+       * DataSet.cs
+       * XmlDataReader.cs
+       * XmlDataInferenceLoader.cs
+       * XmlSchemaDataImporter.cs
+               - Use XmlHelper for encoding/decoding schema names.
+       * DataTableCollections : Minor code refactor.
+       * DataRow.cs : Create XmlElement only if required.
+
+2006-04-07  Senganal T  <tsenganal@novell.com>
+
+       * DataSet.cs :
+               - InternalEnforceConstraints() : Reset Indexes of all tables
+               before validating constraints. Fixes #78010
+
+2006-03-04     Boris Kirzner <borisk@mainsoft.com>
+       * TypeDataSetGeneratorException.cs: fix .Net Soap serialization compatibility.
+
+2006-03-25  Senganal T  <tsenganal@novell.com>
+
+       * DataRow.cs : 
+               - RejectChanges : When row is in Deleted state, add the row back to
+               Indexes and Validate the row.
+
+
+2006-03-23  Senganal T  <tsenganal@novell.com>
+
+       * DataTable.cs : 
+               - LoadDataRow : Add the row to the indexes, when loading a new row.
+
+2006-03-22  Senganal T  <tsenganal@novell.com>
+
+       * DataTable.cs :
+               - PrimaryKey : Set the IsPrimaryKey attribute before Removing from collection.
+               - RemoveUniqueConstraints : Removed. dead code.
+       * DataColumn.cs :
+               - Unique : 
+                       - If adding/removing constraint fails, retain Unique value
+                       - Remove redundant code
+       * UniqueConstraint.cs :
+               - SetIsPrimaryKey : Added. Sets the value of IsPrimaryKey.
+               - RemoveFromConstraintCollectionCleanup : If constraint is on a single column, then
+               set Unique for that column to false.
+               - CanRemoveFromCollection : Do not remove constraint, if its a PrimaryKey
+
+2006-03-20  Senganal T  <tsenganal@novell.com>
+
+       * DataSet.cs :
+               - CopyRelations () : When copying the relation, do not add constraints
+               automatically for the relation.
+               - OnMergeFailed () : If merge fails and no handler is set for the MergeFailedEvent,
+               then throw DataException 
+       * ConstraintCollection.cs :
+               - Add () : Check if a constraint already exists on the Columns that are being 
+               constrained.
+               - IndexOf () : Do not check for equivalent constraints, check for the exact instance.
+       * MergeManager.cs (): 
+               -  AdjustSchema () : 
+                       - Handle the MissingSchemaAction.Error case, 
+                       - Do not create constraints when mergin the DataRelation
+                       - Follow the semantics for schema merge/validation  when constraints are already present
+                       in the target DataSet.
+               - AdjustPrimaryKeys () :
+                       - Code cleanup
+                       - Verify Order of Columns in the PrimaryKey when merging.
+               - ResolveColumns : Changed the arument to DataSet. Simplifies code elsewhere.
+               - CompareColumnArrays, CompareColumnArrays : Helper funtions.
+               
+2006-03-09  Senganal T  <tsenganal@novell.com>
+
+       * DataRow.cs :
+               - RejectChanges () :  Add the row to index, if it was in deleted state and
+               Update the index if in Modified State.
+               - AcceptChanges () : Do not update the Indexes.
+               - EndEdit () : Update the indexes even if BeginLoadData has been called
+               on the table. Ideally, indexes should not be maintained during DataLoad,
+               but this needs to handled in multiple places correctly. For now, just maintain
+               the index to ensure correct operation.
+       
+2006-03-05  Senganal T  <tsenganal@novell.com>
+
+       * DataSet.cs :
+               - BeginInit (), EndInit () : Implemented methods
+               - InitInProgress : Added.
+       * DataTable.cs
+               - EndInit () : Move the adding of columns and constraints
+               to FinishInit.
+               - FinishInit () : Added. Adds the Constraints and Columns
+               to the collection.
+               - InitInProgress : Added.
+       * Constraint.cs
+               - FinishInit () : Added. Virtual method
+               - InitInProgress : Added. Virtual property
+       * UniqueConstraint.cs
+       * ForeignKeyConstraint.cs
+               - FinishInit () : Added.
+               - InitInProgress : Added.
+               - DataColsNotValidated : Removed.
+       * ConstraintCollection.cs
+               - PostAddRange : Removed event
+               - PostEndEdit () : Renamed to PostAddRange
+               - Add () : Simplified the testing if constraint is initialized
+               - AddRange () : Simplified initializing the constraints
+       * DataTableCollection.cs
+               - PostAddRange () : Added. Adds the tables to the collection
+       * DataColumnColletion.cs
+               - PostEndInit () : Renamed to PostAddRange.Also, add column to
+               the collection only if not null.
+       Added/Implemented methods for design time support. Renamed some methods for consistency
+       in naming across classes for methods serving the same purpose. 
+
+2006-02-24  Senganal T  <tsenganal@novell.com>
+
+       * UniqueConstraint.cs :
+               - ChildConstraint : Added. Simplifies verifying if constraints are
+               related.
+               - CanRemoveFromCollection : Fixed the check to verify if constraints is
+               linked to a ForeignKeyConstraint. Fixes #77630
+       * ForeignKeyConstraint.cs :
+               - _validateRemoveParentConstraint : Removed. Not used anymore
+               - ParentConstraint : Added. Simplifies verifying if constraints are
+
+2006-02-22  Senganal T  <tsenganal@novell.com>
+
+       * DataRow.cs 
+               - RejectChanges : Do not remove Row from Indexes when state is Deleted.
+               - CheckChildRows : When checking for the ChildRows, use the current value
+               and not the original value.
+
+2006-02-18  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * CustomDataClassGenerator.cs : Patch by Marek Habersack. xsd now
+         outputs AutoIncrement, AutoIncrementSeed, AutoIncrementStep and
+         ReadOnly properties. This fixes bug #77576.
+
+2006-02-17  Chris Toshok  <toshok@ximian.com>
+
+       * System.Data/DataSet.cs, System.Data/DataView.cs,
+       System.Data/ForeignKeyConstraint.cs,
+       System.Data/DataViewManager.cs, System.Data/DataRow.cs,
+       System.Data/DataSysDescriptionAttribute.cs,
+       System.Data/UniqueConstraint.cs, System.Data/DataTable.cs,
+       System.Data/DataRelation.cs: lots of attribute work, removing
+       DataSysDescription atributes (and marking the class obsolete) for
+       2.0.
+
+2006-02-17  Chris Toshok  <toshok@ximian.com>
+
+       * DataAdapterException.cs: remove this file.
+       
+2006-02-17  Chris Toshok  <toshok@ximian.com>
+
+       * DataTableReader.cs: Switch to the (bool) form of Dispose to
+       override, as the no-arg form isn't virtual.
+
+       * Constraint.cs: #ifdef out more DataSysDescriptions.
+
+       * ConstraintException.cs: add ..ctor (string, Exception) for 2.0.
+
+2006-02-17  Chris Toshok  <toshok@ximian.com>
+
+       * DataColumn.cs: #ifdef all the DataSysDescriptions !NET_2_0.
+
+       * AdapterMappingException.cs: nuke this file.
+
+       * IDbAsyncConnection.cs, IDbAsyncCommand.cs, IGetTypedData.cs,
+       ISetTypedData.cs, IDataReader2.cs, IDataSources.cs,
+       IDbExecutionContext.cs, IDataRecord2.cs, IDataUpdatableRecord.cs:
+       remove these 2.0 files.
+
+2006-02-17  Chris Toshok  <toshok@ximian.com>
+
+       * ConstraintCollection.cs: in 2.0, class is not serializable and
+       is sealed.  make all the "virtuals" #if !NET_2_0 as well.
+
+       * Constraint.cs: not serializable in 2.0.
+
+       * DataColumnCollection.cs: in 2.0, class is not serializable and
+       is sealed.  make all the "virtuals" #if !NET_2_0 as well.
+
+       * DataRelationCollection.cs: not serializable in 2.0.
+
+       * DataRelation.cs: not serializable in 2.0.
+
+       * DataRowBuilder.cs: class is sealed in 2.0.
+
+       * DataRowCollection.cs: in 2.0, class is not serialized and is
+       sealed.  Also, Add isn't virtual in 2.0 (as the class is sealed).
+
+       * DataRow.cs: not serializable in 2.0.
+
+       * DataSet.cs: remove some DataSysDescriptions from the 2.0 build,
+       and s/GetDataReader/CreateDataReader.
+
+       * DataTableCollection.cs: in 2.0, class is not serializable and is
+       sealed.  make all the "virtuals" #if !NET_2_0 as well.
+
+       * DataTableReader.cs: remove VisibleFieldCount property.
+
+       * DataViewSettingCollection.cs: not serializable in 2.0.
+
+       * DataViewSetting.cs: not serializable in 2.0.
+
+       * ForeignKeyConstraint.cs: serializable in 2.0.
+
+       * OperationAbortedException.cs: class is sealed and serializable.
+
+       * PropertyCollection.cs: serializable in 2.0.
+
+       * StatementCompletedEventArgs.cs: class is sealed.
+
+       * UniqueConstraint.cs: not serializable in 2.0.
+
+2006-02-16  Senganal T  <tsenganal@novell.com>
+
+       * XmlSchemaWriter :
+               WriteDataSetElement : Add an annotation element if exists.
+               WriteDataRelationAnnotation : New. Write a DataRelation as an annotation.
+               WriteConstraints : Write ForeignKeyConstraint even when not associated with
+                       a DataRelation and add a "ConstraintOnly=true" attribute for such constraints.
+       * XmlConstants.cs : Add a new constant - ConstraintOnly
+       * XmlSchemaImporter.cs :
+               - ConstraintStructure : Add field ,IsConstraintOnly, to distinguish if a foreignkeyconstraint
+                       is related to relation or not.
+               - GenerateRelation : Handle the case when parentkey and childkey contain multiple columnnames.
+
+2006-02-11  Senganal T  <tsenganal@novell.com>
+       
+       * UniqueConstraint.cs :
+               - PostAddRange : Check PrimaryKey is not already set for the table
+       * DataTable.cs :
+               - PrimaryKey : follow ms.net behavior when BeginInit , EndInit is used.
+                       - Add new priamry key only when EndInit is called.
+                       - Incase of an error, retain old primarykey 
+               - EndInit :
+                       - Add Constraints after columns are added.
+                       - If both PrimaryKey Property and PrimaryKey Constraint are set,
+                       then the Constraint takes precedence.
+               fixes bug #77404
+
+2006-02-03  Senganal T  <tsenganal@novell.com>
+
+       * DataTableCollection.cs : 
+               - Remove () : Check for invalid TableName
+               - Add () : Verify the table doesn't belong to another dataset
+       * DataView.cs :
+               - CompleteLastAdded () : Do not raise ItemAdded Event as it is
+                       already raised in AddNew().
+       * DataColumn.cs :
+               - Expression : Verify that the Column names in the expression are valid 
+               - ResetCollectionInfo : Renamed to ResetColumnInfo
+       * DataRow.cs :
+               - RejectChanges () : Reorganized the code to do the Right thing.
+               - Item  : Dont check for detached and deleted rows as these are
+                       done elsewhere.
+       * DataRowCollection.cs :
+               - Add () : Check for null value
+       * DataTable.cs :
+               - PrimaryKey : Set AllowDBNull=false for all the key columns
+               - ImportRow : Import the row only if it is not in Detached state. if in Deleted
+                       state, perform the validation when AcceptChanges/RejectChanges is called.
+       * DataColumnCollection.cs :
+               - Add : Validate the column expression before adding it to the collection.
+               - GetColumnDependency () : New. Get the dependencies on the column 
+               - CanRemove : Move checks to GetColumnDependency
+               - Clear () : Simplified code. Remove unncessary checks.Also, dont check Expression col.
+               - IndexOf - Check argument.
+               Overall , appropriate error msg's are thrown if Remove/Clear fails. Removed a few
+               redundant checks performed and moved the common code to GetColumnDependency.
+
+2006-01-31  Senganal T  <tsenganal@novell.com>
+
+       * DataSet.cs : Modified CopyRelations ()
+               - Added code to copy ForeignKeyConstraints. Fixes #77411.
+       
+2006-01-18 Boris Kirzner <borisk@mainsoft.com>
+       * DataColumn.cs: added PropertyCchangedEvent handling.
+
+2006-01-17  Senganal T  <tsenganal@novell.com>
+       
+       * DataRow.cs:
+               ItemArray : Modified to raise RowInTableException only if
+               the concerned row has been removed from the table.Fixes 
+               bug #77267
+
+2006-01-16 Boris Kirzner <borisk@mainsoft.com>
+       * DataTable.cs: Drop dependend indexes on column removal.
+
+2006-01-16  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * CustomDataClassGenerator.cs :
+         When a DataRelation connects the same table as parent and child,
+         generate parent row property as BlahRowParent. Fixed bug #77248.
+
+2006-01-10  Senganal T <tsenganal@novell.com>
+       * DataRowCollection.cs
+               - Added ListChangedEvent to notify reset of the collection.
+       * DataView.cs
+               - Subscribes to the ListChangedEvent of DataRowCollection
+               Fixes bug #77188
+
+2006-01-09  Senganal T <tsenganal@novell.com>
+       * RelatedDataView.cs
+       * DataColumn.cs
+               - Resolving a name clash in IExpression
+
+2006-01-06  Senganal T <tsenganal@novell.com>
+       
+       * DataColumn.cs
+       * DataColumnCollection.cs
+               - Reset the Parameters of DataColumn to Default Values when 
+               column is removed from the Table's Collection
+
+2006-01-03  Senganal T <tsenganal@novell.com>
+
+       * DataTable.cs :
+               - ParseSortString() : Changed the way the sort string is parsed.
+               Using a regex to parse the string.Fixes bug #77104
+
+2005-12-12  Konstantin Triger <kostat@mainsoft.com>
+
+       * DataRow.cs: Added index Updates.
+               EndEdit() fixed to first update indices and then AssertConstraints
+               based on those indices.
+               Added Validate() and AssertConstraints() functions.
+       * DataRowCollection.cs: Removed ValidateDataRowInternal().
+       * DataTable: Fixed Clear().
+
+2005-12-06  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * CustomDataClassGenerator.cs : (InitializeFields) handle AllowDBNull
+         and DefaultValue as well. Patch by Marek Habersack (bug #76709).
+
+2005-12-01  Miguel de Icaza  <miguel@novell.com>
+
+       * DataSet.cs: Apply patch from Robert Jordan, to fix #76817
+
+2005-11-26  Konstantin Triger <kostat@mainsoft.com>
+
+       * ConflictOption.cs: TARGET_JVM include.
+
+2005-11-11  Senganal T <tsenganal@novell.com>
+       
+       * ConflictOption.cs (new file)
+               - Added ConflictOption Enumeration 
+       * DataTableReader.cs
+       * IDataRecord2.cs 
+               - GetProviderSpecificFieldType : Corrected the method name
+
+2005-11-11  Senganal T <tsenganal@novell.com>
+
+       * DataSet.cs : Added the SchemaSerializationMode Property for NET_2_0
+       compatibility.
+       * SchemaSerializationMode.cs : Added SchemaSerializationMode Enumeration
+       for NET_2_0 compatibility.
+
+       Fixes bug #76517
+
+2005-10-20  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlSchemaWriter.cs : escape names in the schema with XmlConvert.
+         Fixed bug #76480.
+
+2005-10-14  Sureshkumar T  <tsureshkumar@novell.com>
+
+       * DataView.cs: Correct multiple throwing of events. Patch from
+       Marc Haisenko.
+       (RowStateFilter): Fire ListChangedEvent.
+       (ApplyDefaultSort): Fire ListChangedEvent.
+       (CompleteLastAdded): call UpdateIndex to remove the row from rowCache.
+       (IBindingList.Find): Implemented.
+
+2005-10-11  Sureshkumar T  <tsureshkumar@novell.com>
+
+       * DataView.cs (IBindingList): Implemented methods for IBindingList interface.
+
+2005-09-26  Lluis Sanchez Gual <lluis@novell.com>
+
+       * DataSet.cs: In IXmlSerializable.GetSchema, return null again for
+       untyped datasets. Fixes bug #76101.
+
+2005-09-21 Boris Kirzner <borisk@mainsoft.com>
+       * DataRow.cs: Fixes for index updating.
+       * DataTable.cs: 
+               - Reset case-sensitive indexes also if their filter contains columns 
+               of type string.
+               - Use GetIndex instead of FindIndex, so the indexes created in Select()
+               are reused. 
+       * RelatedDataView.cs: implement IExpression.Equals() and GetHashCode().
+       
+2005-09-20  Sureshkumar T  <tsureshkumar@novell.com>
+
+       * DataView.cs (Sort): Apply default Sorting Order if Sort property
+       is reset to null. Sort property handles this. Patch from Marc.
+
+       * DataTable.cs (ParseSortString): Patch from  Marc Haisenko for
+       allowing [ & ] in DataView.Sort string.
+
+2005-09-01 Boris Kirzner <borisk@mainsoft.com>
+       * System.Data/DataRowCollection.cs: indexes should be updated even if 
+       EnforceConstraints is false. Check for EnforceConstraints in
+       ValidateDataRowInternal.
+
+2005-08-08  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * DataView.cs: Changed accessibility of dataTable, rowState and
+       rowCache field to internal to fix public API. Assigned TypeConverter
+       to Table property.
+       * ForeignKeyConstraint.cs: IsConstraintViolated is now internal.
+       * Constraint.cs: IsConstraintViolated is now internal.
+       * UniqueConstraint.cs: IsConstraintViolated is now internal.
+
+2005-08-05  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlSchemaDataImporter.cs : When "dataset element" has identity
+         constraints, then first reserve constraints room for them and then
+         process elements, skipping pkey creation if there is already
+         reserved one. Fixed bug #75711.
+
+2005-08-05  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlDataInferenceLoader.cs : in GetElementMappingType(), don't guess
+         the same (QNamed) element again when it was already evaluated as
+         not simple type. Fixed one part of bug #75711.
+
 2005-08-02 Boris Kirzner <borisk@mainsoft.com>
        * XmlSchemaDataImporter.cs : Data relations should be processed after the
        keys, so no redundant constraints created while relations processing.