2007-10-21 Gert Driesen * DataColumn.cs: Fixed ParamName of ArgumentNullException. Modified exception message for invalid DateTimeMode value to match MS. Code formatting. 2007-10-19 Nagappan * DataRelation.cs: Removed bogus TODO. 2007-09-27 Nagappan A * DataRelationCollection.cs: Added LAME spec comment as there is no relevant event. Removed MonoTODO too. 2007-09-26 Nagappan A * DataView.cs (ToTable): Added params keyword. * DataTable.cs: Added XmlSchemaProvider attribute. 2007-09-25 Konstantin Triger * DataSet.cs: correct WriteAttributeString while writing xml with XmlWriteMode.WriteSchema. 2007-09-25 Nagappan A * DataTable.cs: Code alignment. 2007-08-14 Vladimir Krasnov * DataColumnCollection.cs: refactoring, fixed columnNameCount comparer to remove culture sensitive ToLower() calls 2007-07-22 Nagappan A * DataRow.cs: Added internal set property for Table in 2.0 profile. * DataColumn.cs: Added internal set property for Table in 2.0 profile. 2007-07-01 Gert Driesen * DataRowCollection.cs: Only override Count on 2.0 profile. * RelatedDataView.cs: Fixed line endings. * XmlDataInferenceLoader.cs: Fixed line endings. 2007-06-30 Gert Driesen * DataTableCollection.cs: CopyTo is 2.0 only. Removed extra tabs, and changed spaces to tabs. 2007-06-06 Nagappan A * DataTable.cs (Select): Removed ununsed variable. 2007-05-30 Nagappan A * DataColumnCollection.cs (CopyTo): Method specific to 2.0 profile. * DataRowCollection.cs (Count): Property is overridden in 2.0 profile. * TypedDataSetGenerator.cs: Class is obsolete in 2.0 profile. * DataRelationCollection.cs (CopyTo): Method specific to 2.0 profile. 2007-05-18 Rolf Bjarne Kvinge * CustomDataClassGenerator.cs: Misc fixes in order to emit correct VB code. CreateDataSetDefaultCtor: we're creating a delegate, not an object, so use a DelegateCreateExpression. CreateDataSetSchemaChanged: we're comparing value types, use the correct equality operator. CreateTableGetEnumerator: explicity state that the method is an implementation of IEnumerable.GetEnumerator. CreateTableEventStarter: we're invoking a delegate, so use a DelegateInvokeExpression. Several changes to not generate members with names that only differ by case. 2007-05-18 Chris Toshok * DataColumnCollection.cs (Add ()): handle the default name case in Add(DataColumn). (Add (string)): same - let Add(DataColumn) handle the default name setting. (Add (DataColumn)): in the 1.1 case, we need to add the column's PropertyChanged handler *before* possibly setting the column name to the default so we emit the right events (Changed/Added). In the 2.0 case, we add the event handler after the name is set, and therefore only emit the Added event. 2007-05-07 Adar Wesley * ConstraintCollection.cs: added CopyTo method with strongly typed Constraint[] parameter. * DataTable.cs: added implementation of IXmlSerializable. Added missing method ReadXmlSerializable. 2007-04-19 Chris Toshok * DataColumnCollection.cs (Add): the Element in our CollectionChangedEventArgs should be the column, not the collection. Also, add an event handler for the column's PropertyChanged event so we can propagate metadata changes. (Remove): Analogous change to the CollectionChangedEventArgs as in Add. Also, unhook the column's PropertyChanged event. (OnCollectionmetaDataChanged): emit our new event. (ColumnPropertyChanged): called when the column's ColumnName property changes. Emit the proper CollectionChangeEvent. * DataView.cs (ColumnCollectionChanged): fix up the comment about CollectionChangeAction.Refresh, and make explicit what generates it. (RegisterEventHandlers): hook up DataColumnCollectoin.CollectionMetaDataChanged. (RegisterEventHandlers): unhook DataColumnCollectoin.CollectionMetaDataChanged. 2007-02-23 Nagappan A * DataRow.cs (Item): Checks whether this DataRow exist in the DataRowCollection, then compute the expression. Fixes bug # 80505. * DataRowCollection.cs (IndexOf): Modified as internal method for 1.0 profile. * XmlDataReader.cs (StringToObject): DataTables containing System.Type throw exception on deserializing. Fixes bug # 80596. * XmlDataLoader.cs (StringToObject): DataTables containing System.Type throw exception on deserializing. Fixes bug # 80596. 2007-02-20 Konstantin Triger * XmlSchemaDataImporter.cs: ensure the tables are created in document order. 2007-02-19 Konstantin Triger * XmlDataReader.cs, XmlDataInferenceLoader.cs, XmlDiffLoader.cs: ignore attributes from "http://www.w3.org/XML/1998/namespace". * XmlConstants.cs: add constant for "http://www.w3.org/XML/1998/namespace". * XmlDataInferenceLoader.cs: track the added elements index to fix the added column ordinal. 2006-12-11 Chris Toshok * DataView.cs: GetItemProperties should return an empty collection if we have no data table. Presently we NRE. 2006-12-08 Nagappan A * DataTable.cs (ReadXml): Removed if condition, as it should not check the exception string. 2006-12-07 Chris Toshok * DataView.cs: add CollectionChangeEventHandler's on the ChildRelations and ParentRelations collections, and emit ListChanged events with PropertyDescriptor.Added/Deleted/Changed in response. 2006-12-07 Nagappan A * DataTable.cs (ReadXml): Integrated the implementation of ReadXml, patch provided by deepak_2603@yahoo.com. 2006-12-05 Nagappan A * DataTable.cs (WriteXmlSchema): Using XmlTextWriter instead of XmlWriter, solved the File Sharing IO Exception. 2006-11-28 Hubert FONGARNAND, Frédéric Mestayer * DataColumnCollection.cs : Improved Column searching when not using exact column name (case sensitivity). Fixes bug # 80075. 2006-11-28 Nagappan A * XmlSchemaDataImporter.cs: Fixed 2.0 profile compilation warnings. Using AttributeSchemaType instead of AttributeType and ElementSchemaType instead of ElementType. * TypedDataSetGenerator.cs: Modified the profile check from !NET_1_1 to !NET_1_0, as this class is obsolete from 1.1 profile. * DataRelationCollection.cs (Item): Modified the property Item as abstract and implemented it in DataSetRelationCollection and DataTableRelationCollection classes. * DataRowView.cs: Remove bogus MonoTODOs. * ForeignKeyConstraint.cs (ForeignKeyConstraint): Implemented 2.0 profile's missing constructor. * XmlDataLoader.cs (StringToObject): Modify XmlConvert.ToDateTime to use XmlDateTimeSerializationMode, as the default ToDataTime method id obsolete. * XmlDataReader.cs (StringToObject): Modify XmlConvert.ToDateTime to use XmlDateTimeSerializationMode, as the default ToDataTime method id obsolete. * DataView.cs (IsInitialized): Added browsable attribute. * DataViewSettingCollection.cs (CopyTo): Implemented missing 2.0 API. * DataRelation.cs (DataRelation): Added 2.0 profile constructor to take parentTableNameSpace and childTableNameSpace as argument. (FinishInit): Update parentTableNameSpace and childTableNameSpace, when the string is not empty in 2.0 profile. * DataRowCollection.cs: Implemented Count public property. Added !NET_2_0 for List protected property, as it has been removed in 2.0 prifle. (IndexOf): Implemented new public method. (CopyTo): Implemented new public override method. (GetEnumerator): Implemented new public override method. * DataTable.cs (Load): Throw ArgumentNullException, when reader argument is null. (WriteXmlSchema): Throw InvalidOperationException, when table name is empty. When DataSet Namespace is set, append that with '_x003A_' and table name. (IsInitialized): Added browsable attribute. * DataSet.cs (Load): Throw ArgumentNullException, when reader argument is null. (IsInitialized): Added browsable attribute. (WriteObjectXml): Modify XmlConvert.ToDateTime to use XmlDateTimeSerializationMode, as the default ToDataTime method id obsolete. * XmlSchemaWriter.cs (WriteSchema): Modified UseCurrentCulture to UseCurrentLocale. (WriteDataSetElement): Added minOccurs attribute. (WriteConstraints): Check for tables length, if > 1 then add the relations to XmlSchema. 2006-11-21 Nagappan A * DataView.cs: Added public event Initialized. (IsInitialized): Implemented public function to check whether a dataview is initialized or not. * DataSet.cs: Added ISupportInitializeNotification for .NET 2.0 profile. (RemotingFormat): Set the default value attribute as SerializationFormat.Xml. (IsInitialized): Implemented public function to check whether a table is initialized or not. (CreateDataReader): Added params keyword in argument. (Load): Implemented all Load overloaded functions. (GetObjectData): Modified to public for .NET 2.0 implementation. (IsBinarySerialized): Implemented the public API to check whether the given stream is binary serialized or not. * DataTable.cs: Added ISupportInitializeNotification for .NET 2.0 profile. 2006-11-15 Nagappan A * DataTable.cs (RemotingFormat): Set the default value attribute as SerializationFormat.Xml. (OnTableNewRow, NewRowAdded): Implemented new function to raise an event when a new row is added to the table. (DataTableInitialized, OnTableInitialized): Implemented new function to raise an event when a table is initialized. (IsInitialized): Implemented public function to check whether a table is initialized or not. (OnTableClearing): Raise an event before the table is cleared. (GetObjectData): Modified to public for .NET 2.0 implementation. (Load): Implemented missing API to call the registered delegate function on load exception. (WriteXmlSchema): Implemented overloaded function to write the hierarchy with XML Schema. 2006-11-15 Konstantin Triger * DataTable.cs: Fixed LoadDataRow scenarios. * DataRowCollection.cs: Added override for AddInternal taking DataRowAction parameter. 2006-11-14 Konstantin Triger * DataColumn.cs: consider row version wen checking row.IsNull(). 2006-10-18 Nagappan A * ForeignKeyConstraint.cs (_validateColumns): Parent and child columns can't be the same column - Exception, bug # 79689 2006-10-13 Nagappan A * DataTable.cs (DeserializeConstraints): Fine tuned the serialization and deserialization of constraints. * DataRelationCollection.cs (Contains): Fixes bug #79233. DuplicateNameException when two relations for different DataTables in DataSet are defined 2006-10-06 Patrick Earl * DataTable.cs, XmlTableWriter.cs, XmlSchemaWriter.cs, DataSet.cs: Implemented DataTable.WriteXml 2006-09-26 Nagappan A * DataTable.cs, DataSet.cs, DataColumn.cs, Constraint.cs, DataRow.cs: Implementation of Binary Serialization / Deserialization. * DataTable.cs (RowsExist): Check rows based on version. * DataRow.cs: Raise exception same as MS.NET. Thanks to Hubert FONGARNAND for providing this patch. 2006-09-07 Vladimir Krasnov * DataSet.cs: added 2.0 stubs to solve typed dataset porting issues 2006-08-30 Nagappan A * DataRow.cs (EndEdit): DataRow.EndEdit emits RowChanged too often. Fixes bug # 78885. 2006-08-14 Konstantin Triger * DataTableCollection.cs, DataRelationCollection.cs, DataRowCollection.cs, DataColumnCollection.cs: implemented specialized CopyTo() method. 2006-07-26 Nagappan A * DataTable.cs (GetIndex): Fixes memory explode on DataTable.Select - Bug # 77691. 2006-07-25 Nagappan A * DataView.cs (OnRowCollectionChanged): On DataTable.Clear, setting rowCache to empty DataRowView. Fixes bug # 78610. * DataTable.cs (AcceptChanges): Raises Reset event. Fixes bug # 78610. 2006-07-20 Senganal T * MergeManager.cs : - Merge : moved the columntypecheck to AdjustSchema, Remove the unncessary calls to Table.ResetIndexes. - AdjustSchema : check for columntypes Thanks to Deepak Kr Valechha for the patch 2006-07-17 Senganal T * DataView.cs : - ToTable : Implemented all the overloads - Equals : Implemented - IBindingListView : Implemented the interface 2006-07-15 Senganal T * DataTableCollection.cs : - Contain,IndexOf,Remove,Add,Indexer : support for table namespace. Remove redundant checks in Remove/Add. 2006-07-14 Senganal T * DataColumn.cs : - SetOrdinal : Implemented - Ordinal : added internal set * DataColumnCollection.cs : - Add : Set the column ordinals - MoveColumn : Changes the position of column in the collection 2006-07-14 Senganal T * DataTable.cs : - Merge - Implement the merge methods - Clone - Ensure column's DateTimeMode property is also copied * DataColumn.cs : - DateTimeMode : Implemement - DataTypeMatches : Added. In 2.0 profile, test DateTime property when verifying column types. * DataRelation.cs : - ctr : For DateTime columns, check DateTimeMode property * ForeignKeyConstraint.cs : - _validateColumns : For DateTime columns, check DateTimeMode property * MergeManager : - Merge : Added. Overload to merge two tables - ResolveColumns : Change the method to use a table instead of a DataSet - Renamed AdjustSchema to AdjustSchemaRelations 2006-07-13 Senganal T * DataSet.cs : - WriteTables : Remove some commented out code - WriteTable : Fix the logic to skip the table data when the table has a nested relation. fixes bug #78842 2006-07-12 Senganal T * ConstraintCollection.cs : - Remove (string): If constraint name is not found, throw exception - Remove (Constraint): Set the ConstraintCollection of the removed Constraint to null. Thanks to Deepak Kr Velachha for reporting the bug. 2006-07-12 Senganal T * XmlDiffLoader.cs : - LoadColumnChildren : If schema name is missing, skip the element. Thanks to Deepak Kr Velachha for identifying the bug. 2006-07-11 Senganal T * XmlSchemaWriter.cs : - WriteTableType : If Relation.Nested is true, then nest the table schemas. Correct the xml to add the table element within the element. - WriteChildRelations : Correct the Xml element name and attributes. Close the attribute correctly. * XmlSchemaDataImporter.cs : - GenerateRelationship : When creating the relations, if ParentColumn exists but Corr ChildCol is null, create a child Column with the same name and type as the parent column. - Renamed DataSetDefinesPrimaryKey to DataSetDefinesKey - DataSetDefinesKey : if either xsd:key or xsd:keyref is defined for the dataset, do not manually create the relations. - AddParentKeyColumn : if Columnname already exists, use colname_0 instead of throwing an exception. - FillDataColumnRepeatedSimpleElement : Do not set the Unique value as it creates a constraint by default. The unique value is automatically set when pk is set. - CreateChildColumns : Added. Creates a ChildColumn duplicating ParentColumn properties. 2006-06-30 Senganal T * DataRow.cs : - SetAdded, SetModified : new methods in 2.0 2006-06-30 Senganal T * SerializationFormat.cs, DataSetDateTime.cs, DataTableNewRowEventArgs.cs, DataTableNewRowEventHandler.cs : Added * SyntaxErrorException.cs EvaluateException.cs StrongTypingException.cs IsolationLevel.cs ReadOnlyException.cs DataTableCollection.cs DataRowState.cs MissingPrimaryKeyException.cs DeletedRowInaccessibleException.cs DuplicateNameException.cs PropertyAttributes.cs StatementType.cs VersionNotFoundException.cs FillErrorEventHandler.cs DataRowChangeEventHandler.cs XmlWriteMode.cs InvalidExpressionException.cs StateChangeEventHandler.cs DbType.cs DataColumnChangeEventHandler.cs KeyRestrictionBehavior.cs ConnectionState.cs SchemaType.cs MergeFailedEventHandler.cs SqlDbType.cs DataRowVersion.cs ForeignKeyConstraint.cs DBConcurrencyException.cs OperationAbortedException.cs MissingSchemaAction.cs DataTableClearEventHandler.cs DataRowView.cs DataRowAction.cs ConstraintCollection.cs DataTableReader.cs LoadOption.cs InvalidConstraintException.cs InternalDataCollectionBase.cs ParameterDirection.cs AcceptRejectRule.cs UpdateRowSource.cs XmlReadMode.cs TypedDataSetGenerator.cs RowNotInTableException.cs TypeDataSetGeneratorException.cs InRowChangingEventException.cs MissingMappingAction.cs NoNullAllowedException.cs CommandBehavior.cs PropertyCollection.cs CommandType.cs UpdateStatus.cs ConflictOption.cs DataViewRowState.cs Rule.cs DataColumnCollection.cs : 2.0 api fixes. 2006-06-27 Senganal T * DataSet.cs, DataTable.cs : implement CreateDataReader methods * InternalDataCollectionBase.cs - ToArray () : helper method * DataTableReader.cs : - GetSchemaTable : set the schema info correctly - GetProvider*, GetChars, GetBytes, GetValues : Implemented the methods - GetName : return the name of corresponding schema. - ValidateSchemaIntact, OnColumnCollectionChanged, OnColumnChanged : Listen and raise expception if schema changes 2006-06-21 Chris Toshok * DataView.cs: update the index after we successfully add the new row. This keeps the dataview's row view count in sync with the table. 2006-06-20 Chris Toshok * DataView.cs: the PropertyDescriptorCollection returned by ITyepdList.GetItemProperties should include the child relations of our table, in order to match MS's behavior. * DataViewManager.cs: ICollection.Count property is always 1. 2006-06-15 Senganal T * 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 * 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 * 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 * XmlDataInferenceLoader.cs : - InferTableElement : Repeated element should result in a single inferred table. Patch from Deepak Kr Velachha 2006-04-21 Senganal T * 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 * 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 * DataSet.cs : - InternalEnforceConstraints() : Reset Indexes of all tables before validating constraints. Fixes #78010 2006-03-04 Boris Kirzner * TypeDataSetGeneratorException.cs: fix .Net Soap serialization compatibility. 2006-03-25 Senganal T * DataRow.cs : - RejectChanges : When row is in Deleted state, add the row back to Indexes and Validate the row. 2006-03-23 Senganal T * DataTable.cs : - LoadDataRow : Add the row to the indexes, when loading a new row. 2006-03-22 Senganal T * 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 * 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 * 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 * 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 * 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 * 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 * CustomDataClassGenerator.cs : Patch by Marek Habersack. xsd now outputs AutoIncrement, AutoIncrementSeed, AutoIncrementStep and ReadOnly properties. This fixes bug #77576. 2006-02-17 Chris Toshok * 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 * DataAdapterException.cs: remove this file. 2006-02-17 Chris Toshok * 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 * 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 * 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 * 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 * 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 * 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 * DataSet.cs : Modified CopyRelations () - Added code to copy ForeignKeyConstraints. Fixes #77411. 2006-01-18 Boris Kirzner * DataColumn.cs: added PropertyCchangedEvent handling. 2006-01-17 Senganal T * 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 * DataTable.cs: Drop dependend indexes on column removal. 2006-01-16 Atsushi Enomoto * 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 * 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 * RelatedDataView.cs * DataColumn.cs - Resolving a name clash in IExpression 2006-01-06 Senganal T * 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 * 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 * 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 * CustomDataClassGenerator.cs : (InitializeFields) handle AllowDBNull and DefaultValue as well. Patch by Marek Habersack (bug #76709). 2005-12-01 Miguel de Icaza * DataSet.cs: Apply patch from Robert Jordan, to fix #76817 2005-11-26 Konstantin Triger * ConflictOption.cs: TARGET_JVM include. 2005-11-11 Senganal T * ConflictOption.cs (new file) - Added ConflictOption Enumeration * DataTableReader.cs * IDataRecord2.cs - GetProviderSpecificFieldType : Corrected the method name 2005-11-11 Senganal T * 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 * XmlSchemaWriter.cs : escape names in the schema with XmlConvert. Fixed bug #76480. 2005-10-14 Sureshkumar T * 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 * DataView.cs (IBindingList): Implemented methods for IBindingList interface. 2005-09-26 Lluis Sanchez Gual * DataSet.cs: In IXmlSerializable.GetSchema, return null again for untyped datasets. Fixes bug #76101. 2005-09-21 Boris Kirzner * 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 * 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 * System.Data/DataRowCollection.cs: indexes should be updated even if EnforceConstraints is false. Check for EnforceConstraints in ValidateDataRowInternal. 2005-08-08 Gert Driesen * 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 * 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 * 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 * XmlSchemaDataImporter.cs : Data relations should be processed after the keys, so no redundant constraints created while relations processing. 2005-07-25 Boris Kirzner * FillOptions.cs, ConflictOptions.cs, UpdateOptions.cs: added ifdef TARGET_JVM. 2005-07-22 Sureshkumar T * DataViewSettingCollection.cs, DataTableCollection.cs, DataSet.cs, DataView.cs, DataColumn.cs, ForeignKeyConstraint.cs, DataRelationCollection.cs, UniqueConstraint.cs, DataTable.cs, DataColumnCollection.cs, DataRelation.cs, DataSet.cs: - updated attributes & attribute descriptions to match with masterinfos. * DataView.cs: changed protected members rowstate,rowcache,dataTable to protected internal. * Constraint.cs, ForeignKeyConstraint.cs, UniqueConstraint.cs: changed InConstraintViolated to protected internal. * ConflictOptions.cs, UpdateOptions.cs, FillOptions.cs: enclosed with NET_2_0 define. 2005-07-21 Sureshkumar T * ForeignKeyConstraint.cs: - IsConstraintViolated (): no matter what EnforceConstraints is, this function now honestly validates. It is upto the caller to run this or not. - AddToConstraintCollectionSetup (): AssertConstraint according to EnforceConstraints. 2005-07-21 Boris Kirzner * ForeignKeyConstraint.cs - IsConstraintViolated() should check also for Table.EnforceConstraints. * DataTable.cs - EnforceConstraints becomes internal so it can be used by ForeignKeyConstraint. 2005-07-19 Sureshkumar T * DataTable.cs - CopyConstraints (): copy constraints only if it does not exist. * DataSet.cs - Copy (): - use activator.CreateInstance to create a typed dataset. - copy tables if target does not exist, otherwise, just add rows. - add relation only if it does not exists. Typed datasets create the constraints & relations through constructors. Fixes bug #75211. 2005-07-14 Sureshkumar T * DataView.cs: Patch from Marc Haisenko to throw descriptive error message when accessing Item, with invalid index. 2005-07-14 Sureshkumar T reapplied patch from Marc Haisenko. * DataView.cs: Patch from Marc Haisenko that ensures that rowCache is never null. 2005-07-13 Sureshkumar T * DataRelationCollection.cs: adding a relation with same set of parent columns & child columns, should not be allowed. 2005-07-08 Sureshkumar T * DataTableReader.cs: GetSchemaTable: DataType column should be passed a type of Type. * DataRow.cs: Load : Fired necessary events. * DataTable.cs: LoadDataRow (object [], LoadOption): Fired necessary events. 2005-06-28 Sureshkumar T * DataRow.cs: Delete (): if row is detached, do nothing. fixes bug #75388. 2005-06-22 Sureshkumar T * DataRow.cs: Added method MergeValuesToRow copy merge two rows according to the merge rules. * MergeManager.cs: (MergeRow): use MergeValuesToRow API. CopyValuesToRow simply makes the target row same as source row. Rather, MergeValuesToRow merges with the target row according to the merge rules. 2005-06-19 Konstantin Triger * DataSet.cs: Fixed ReadXml to work with IXmlSerializable 2005-06-17 Jordi Mas i Hernandez * DataViewManager.cs: fixes exception and creates DataView 2005-06-15 Sureshkumar T * DataRow.cs: CheckChildRows: cascade parent changes to child rows only if there is a change in columns of the fk constraint. 2005-06-14 Sureshkumar T * DataSet.cs: GetChanges: if row is deleted, get parent rows based on original version. fixes bug #75227. 2005-06-13 Sureshkumar T * DataRowCollection.cs: Find (keys, version): Added an overload to find keys matching given DataViewRowState filter. Used in DataSet.Merge and DataTable.LoadDataRow. * DataTable.cs: LoadDataRow (values, LoadOption): Use DataRowCollection.Find (object [], DataViewRowState) overload. * DataRow.cs: - CopyValuesToRow: Create target "records" out of loop. Records should be created once, not for each column. Dispose Unused target records. * MergeManager.cs: - MergeRow: Find rows with matching original records. If not, select with current values. - MergeRow: While adding new row, use NewNotInitializedRow. * ForeignKeyConstraint.cs: IsConstraintViolated: should not check if EnforceConstraints is false. 2005-06-10 Sureshkumar T * DataRow.cs: CopyValuesToRow: if orginal == current, don't create a new current record. * DataSet.cs: GetChanges :Temporarily disable EnforceConstraints. * MergeManager.cs: Merge: Temporarily disable EnforceConstraints. Patch from george.barbarosie@gmail.com (George Barbarosie). 2005-06-09 Jordi Mas i Hernandez * DataView.cs: fixes GetListName 2005-06-02 Atsushi Enomoto * XmlSchemaConstants.cs, XmlSchemaDataImporter.cs, XmlSchemaWriter.cs : AutoIncrementStep support. Patch partly by George Barbarosie. Fixed bug #75121. * XmlSchemaMapper.cs : it is not used anymore, so just removed. 2005-05-31 Boris Kirzner * DataRow.cs : SetParentRow on Detached row with no Default version throws an exception. 2005-05-29 Konstantin Triger * This patch fixes #74813 * DataView.cs: rework the CreateChildView to receive the index into the indexed row array, rowState became protected to be initialized from RelatedDataView * DataRowView.cs: movo the logic of creating the child view to the DataView * RelatedDataView.cs: perform correct init. 2005-05-25 Sureshkumar T * DataTable.cs: Reworked DataTable.LoadDataRow method after regressions caused by Index redesign. * DataRow.cs: Load : reworked. 2005-05-25 Konstantin Triger * ISafeDataRecord.cs: Added GetDateTimeSafe method, the interface was made derived from IDataRecord 2005-05-22 Konstantin Triger * DataTable.cs, DataColumn.cs: in continuation to the previous fix - moving the common logic to 1 function and throwing the correct exception in any flow 2005-05-20 Sureshkumar T * DataTable.cs: CreateRecord :value should be set to auto increment value or default value if the given value is null. 2005-05-16 Konstantin Triger * DataTable.cs: In DataTable.LoadDataRow with LoadOption - reverting the search order back to Original -> Current (by Suresh request) 2005-05-16 Konstantin Triger * DataRow.cs, DataTable.cs: code under net_2_0 changed to use the new interface * DataTable.cs: Added CompareRecords, which compares records in column order 2005-05-16 Sureshkumar T * DataRow.cs: * DataTable.cs: quick fix to make build 2.0 profile (follow up for check in 2005-05-16). Merge with previous changes. 2005-05-11 Sureshkumar T 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 * DataTableReader.cs: Implemented Delete handler and move the current pointer accordingly. 2005-05-04 Sureshkumar T * 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 * XmlSchemaDataImporter.cs : XmlSchemaParicle might be XmlSchemaAny. This fixes bug #74784. 2005-04-29 Sureshkumar T * 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 * DataTableReader.cs: Implemented most of the TODO. 2005-04-22 Sureshkumar T * 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 * 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 * 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 * DataViewManager.cs: implements TypedList.GetListName used in SWF 2005-04-19 Atsushi Enomoto * DataRowView.cs : indexer should access to DataRow with proper DataRowVersion. Fixed bug #74650. 2005-04-18 Sureshkumar T * DataRow.cs: if there are no mapping fields, fill with default value. 2005-04-17 Atsushi Enomoto * DataView.cs : Delete() should not try to remove row twice. Fixed bug #74631. 2005-04-13 Atsushi Enomoto * 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 * 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 * DataRowCollection.cs: Fix the signature of the Add method for NET_2_0. 2005-03-16 Atsushi Enomoto * DataRow.cs : on importing row, it was copying data from incorrect DataRow. This fixes bug #73288. 2005-03-07 Jackson Harper * DataViewManagerListItemTypeDescriptor.cs: Implement missing features. These are needed for System.Windows.Forms databinding. 2005-02-25 Atsushi Enomoto * DataColumn.cs : setting negative value on MaxLength of SimpleContent column is still valid. 2005-02-15 Atsushi Enomoto * 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 * DataView.cs, DataRowView.cs : Fixed bug #72421. CreateChildView() should target only child rows. 2005-02-03 Atsushi Enomoto * DataViewManager.cs: misuse of ReadStartElement(string). * DataRowView.cs : removed some MonoTODO. 2005-02-02 Sureshkumar T Ankit Jain * 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 * 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 * 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 * 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 * DataTableCollection.cs : (RemoveAt) just use IndexOutOfRangeException. 2005-02-02 Atsushi Enomoto * DataView.cs : DataRowView.EndEdit() raises ItemMoved event. set_Table clears Sort and RowFilter. 2005-02-02 Atsushi Enomoto * 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 * DataView.cs : ColumnCollectionChanged() is the event invoker (i.e. when overriden, no column change events are fired). 2005-02-02 Atsushi Enomoto * DataView.cs : CancelEditRowView() and DeleteRowView() was incorrectly checking target tables. They also should raise events if required. 2005-02-02 Atsushi Enomoto * DataView.cs : simplify code with UnsortedList. 2005-02-01 Atsushi Enomoto * 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 * 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 * DataRowCollection.cs : on adding a row, should raise ChangingDataRow() as well as ChangedDataRow(). 2005-01-31 Sureshkumar T * 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 * DataView.cs :some interface implementations. 2005-01-28 Atsushi Enomoto * DataView.cs : Add to table only when the row is not in the table. 2005-01-28 Atsushi Enomoto * DataView.cs : implemented FindRows() (btw we should not use DataTable since there are detached rows by AddNew().) 2005-01-28 Atsushi Enomoto * DataView.cs : Code cleanup: privatify some members, remove unused methods. Some event-based invocation methods should not raise NotImplemented. 2005-01-28 Atsushi Enomoto * DataSet.cs : ReadXml() became closer to MS behavior, being hacky. 2005-01-28 Atsushi Enomoto * XmlSchemaDataImporter.cs : empty element is not regarded as a column. 2005-01-28 Atsushi Enomoto * UniqueConstraint.cs : mostly reverted the previous patch + check IsPrimaryKey before validation. 2005-01-28 Atsushi Enomoto * DataView.cs : Fixed duplicate insertion to Hashtable. * UniqueConstraint.cs : Unique constrained pair of columns could be nullable. 2005-01-27 Atsushi Enomoto * 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 * 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 * 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 * 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 * DataViewSetting.cs, DataViewSettingCollection.cs, DataViewManager.cs : implemented basic members. 2005-01-26 Atsushi Enomoto * Node.cs, DataColumnPropertyDescriptor.cs, DataTable.cs : Eliminate "throw new Exception". 2005-01-25 Atsushi Enomoto * DataRow.cs : (set_Item) RowNotInTableExeption check should be done regardless of index existence. 2005-01-25 Atsushi Enomoto * DataTable.cs : use new IExpression.EvalBoolean() to avoid extraneous boxing. 2005-01-25 Sureshkumar T * DataTable.cs: ImportRow :Do not add to rows collection if the import row is in detached state. 2005-01-25 Sureshkumar T * 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 * DataRowView.cs : Fixed IsEdit to reflect correct status of DataRow. * DataRow.cs : Expose editing status internally. 2005-01-25 Atsushi Enomoto * DataView.cs : missing attributes. 2005-01-24 Atsushi Enomoto * DataRowView.cs : implemented CreateChildView(). 2005-01-24 Atsushi Enomoto * 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 * 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 * DataRow.cs : more Current -> Default fixes. Check if it should throw VersionNotFoundException. Patch by Ankit Jain. 2005-01-21 Atsushi Enomoto * 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 * DataTable.cs : CopyColumn() should copy AutoIncrement after DefaultValue, or it will raise an error in some cases. 2005-01-20 Atsushi Enomoto * 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 * 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 * 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 * 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 * XmlDiffLoader.cs : Ankit Jain has a conflicting patches and some good catches. Some attributes should be skipped, and loaded value must be typed. 2004-01-19 Atsushi Enomoto * 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 Fix for bug #66838. This patch is submitted by "Ankit Jain" 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 * DataColumnCollection.cs : Clear() throws ArgumentException that wraps thrown innerException. * XmlSchemaDataImporter.cs : removed FIXMEs. 2004-01-12 Atsushi Enomoto * 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 * DataSet.cs, CustomDataClassGenerator.cs : In DataSet class, IXmlSerializable.GetSchema() returns null. In strongly-typed class, it returns schema. 2004-01-07 Atsushi Enomoto * XmlDataInferenceLoader.cs : test driver class should be excluded. 2004-12-01 Miguel de Icaza * DataView.cs: Patch from Marc Haisenko that ensures that rowCache is never null. 2004-11-10 Atsushi Enomoto * CustomDataClassGenerator.cs : generated foreign key constraint construction code was creating empty child columns and thus it was invalid. This fixes bug #69276 (patch by Martin Voelkle). 2004-11-02 Atsushi Enomoto * CustomDataClassGenerator.cs : custom DataTable ctor should call InitializeFields(), and those DataColumns created by that method should take data type. This should fix bug #68972. 2004-10-15 Atsushi Enomoto * DataSet.cs : Also clear UnhandledAttributes ArrayList before generating next attribute column schema. This fixes bug #68432. 2004-10-14 Umadevi S * DataTable.cs : Corrected the Clone method to use Activator.CreateInstance so that the correct subclass is returned. This fixes bug #67631 2004-10-14 Umadevi S * DataSet.cs : Corrected the Clone method to use Activator.CreateInstance so that the correct subclass is returned. This fixes bug #67627 2004-10-13 Atsushi Enomoto * DataSet.cs : clear UnhandledAttributes ArrayList before generating next element column schema. This fixes bug #68256. 2004-10-12 Atsushi Enomoto * DataSet.cs : now xs:schema contains xmlns="". This fixes bug #68008. 2004-10-12 Atsushi Enomoto * DataSet.cs : DBNull attribute column should not be written as empty attribute. This fixes bug #68007. 2004-10-12 Atsushi Enomoto * DataSet.cs, XmlConstant.cs, XmlSchemaDataImporter.cs: DataColumn.ReadOnly was not handled. This fixes bug #68005. Attribute defaultValue was not handled too. 2004-10-07 Atsushi Enomoto * DataSet.cs : - When AllowDBNull is false on attribute DataColumn, its schema should contain use="required". This fixes bug #66792. - If MaxLength is set on attribute DataColumn, the mapped schema type should contain maxLength facet. This fixes bug #66793. 2004-10-04 Atsushi Enomoto * DataSet.cs : For a row, when a relation is not nested, then it is still output target since it won't be written as a child of its parent. It fixes bug #66379. 2004-10-03 Atsushi Enomoto * DataSet.cs : Attribute constraint field XPath must be written as @blah. This fixes bug #66366. 2004-09-28 Umadevi S * DataRow.cs - checked for Enforceconstraints, while using indices to search for related rows 2004-09-24 Sureshkumar T * DataSet.cs : Don't check constraints for dataset clear * DataRowCollection.cs : check for EnforceConstraints flag before checking foriegn key constraints in Clear method * DataTable.cs : Redundant checking removed in Clear method as it is checked in DataRowCollection.Clear method. 2004-09-19 Sureshkumar T * DataRow.cs : while deserialization of dataset, adding a current row precedes the original row. hence, adding a row cache is necessary if the original row happens to be current. fixed bug #63097 2004-08-23 Martin Baulig * XmlDataInferenceLoader.cs (Driver): Make this class internal, not public. 2004-08-18 Umadevi S * DataView.cs - Completed most of the event handling. Thanks to Punit Todi for implementing most of it. Thanks to Boris Kirzner for commenting and suggesting changes to the implementation. * DataTable.cs - Changed Access modifiers of class/methods since it was used by DataView. 2004-08-06 Atsushi Enomoto * DataSet.cs : DataSet's ExtendedProperties were not XmlConverted. 2004-08-05 Atsushi Enomoto * XmlConstants.cs : Added constants for "msprop" support. * DataSet.cs : ExtendedProperties should be written in the schema. This fixes bug #61233. 2004-07-27 Atsushi Enomoto * DataSet.cs : on serialization to XmlWriter, XmlConvert should be used. There were also some culture dependency problems to write int. 2004-06-27 Atsushi Enomoto * XmlDataInferenceLoader.cs : It was not always filling relation child table information correctly. This fixes bug #60742. 2004-06-23 Umadevi S * UniqueConstraint.cs :changed a ifdef true to ifdef NET_1_1 2004-06-22 Atsushi Enomoto * DataSet.cs : Fixed ReadXml(). When ReadMode is ReadSchema and the schema is inside the document element (as created in XmlWriteMode .WriteSchema), it should read schema from that non-document element. This fixes one case reported in bug #60470. 2004-06-20 Atsushi Enomoto * XmlDataInferenceLoader.cs : Kindly reject xml schema document as a inference target. For bug #60470. (MS does not support schema document inference and results in unconsistent dataset structure.) 2004-06-20 Atsushi Enomoto * DataTableCollection.cs : reset the table's DataSet to null when removing a table from this collection. * DataTable.cs : When Namespace is not specified explicitly, its Namespace property reflects DataSet's Namespace if exist. This fixes bug #60469. 2004-06-18 Gert Driesen * DBConcurrentcyException.cs: CRLF to LF * DataViewSetting.cs: CRLF to LF 2004-06-18 Gert Driesen * DataViewSetting.cs: renamed fields to match MS.NET 2004-06-18 Gert Driesen * DBConcurrencyException.cs: fixed serialization compatibility with MS.NET 2004-06-17 Boris Kirzner * ChangeLog : Fix for misspelled words. 2004-06-17 Boris Kirzner * DataRowCollection.cs : Removed onColumnRemoved since it is not in use. 2004-06-17 Boris Kirzner * DataTable.cs : - Table stores default values for columns in special default values row. It is allocated once (in NewRow). - DataTable.Copy rewrited. It works with uninitialized rows for better perfomance. - OnRemoveColumn has nothing to perform by now. 2004-06-17 Boris Kirzner * DataRow.cs : - Changed access of original, current and proposed indexes to internal. - ColumnErrors reviewed : now column errors stored in ArrayList and allocated on demand only. - Added new DataRow constructor that creates uninitialized DataRow (used in DataTable.Copy). - Use DataContainer.CopyValue and default values row for faster set of default values in row. - SetColumnValue become CheckValue. Now it does not changes the value, but only checks for its correctness. Care about Null and DBNull values is now in DataContainer. - Use DataColumn.AutoIncrementValue and GetInt64 for faster set of autoincrement value. - Use Datacontainer.CopyValue and default values row to speed up CheckChildRows. - Fix in CopyState : clone column errors. - Removed CollectionChanged and onColumnRemoved since we are not using both of them anymore. 2004-06-17 Boris Kirzner * DataColumnCollection.cs : - Fix : Add() now delegates to Add(DataColumn). - autoIncrement list holds DataColumn objects, and not just column names. 2004-06-17 Boris Kirzner * DataColumn.cs : - AutoIncrementValue fixes. Now AutoIncrement uses DataContainer.GetInt64 to avoid boxing. - DefaultValue fixes. Default value from now on is also stored in special record in DataTable, so we're able to set default value for the column faster (typed). 2004-06-15 Atsushi Enomoto * DataSet.cs : children of non-root rows were not properly written. Fixed bug #53959. 2004-06-10 Umadevi S * DataRelation.cs - Constructor - The datatypes of the parentcolumn(s) and the childcolumn(s) should match 2004-06-06 Atsushi Enomoto * XmlSchemaDataImporter.cs : We should fill Namespace for DataTable. 2004-06-04 Gert Driesen * Constraint.cs: marked methods internal to fix public API * ConstraintCollection.cs: to fix public API, use DataTable.fInitInProgress to check whether initialization of DataTable is in progress * DataColumn.cs: added stubs for missing methods * DataRowBuilder.cs: marked Table property internal to fix public API * DataSet.cs: removed extra empty destructor, marked OnMergeFailed internal to fix public API * DataTable.cs: use fInitInProgress field to hold init status, to match MS.NET * DataView.cs: added missing attributes on IsOpen 2004-06-03 Atsushi Enomoto * DataSet.cs : Use NameTable.Get() before calling LookupNamespace() in XmlNamespaceManager. 2004-06-03 Atsushi Enomoto * DataSet.cs : complex table content child was not properly added when it is the only one child in the parent table. Fixed bug #53959. 2004-06-02 Gert Driesen * DataTableTypeConverter.cs: added * DataView.cs: added missing attribute on Table property * DataViewManager.cs: moved attribute to correct property * UniqueConstraint.cs: removed extra ReadOnly attribute from IsPrimaryKey property 2004-06-01 Atsushi Enomoto * DataRow.cs : ColumnsChanged event is not required in .ctor(). 2004-06-01 Atsushi Enomoto * XmlDataReader.cs : type change is required before setting value string to row item. 2004-05-31 Atsushi Enomoto * DataSet.cs : Loop-break of the last fix was incorrect. 2004-05-31 Atsushi Enomoto * DataSet.cs : When a row has no parent row but the table has parent relation(s), that row had been always ignored. 2004-05-31 Atsushi Enomoto * XmlDataInferenceLoader.cs : Fixed GetMappedTable() that incorrectly rejected same-named tables in different hierarchy. Thanks to Boris. 2004-05-31 Atsushi Enomoto * XmlDiffLoader.cs : Added some Skip() that is required not to go to infinite loop. Thanks to Boris for this fix. 2004-05-31 Atsushi Enomoto * XmlDataInferenceLoader.cs : XmlSchema elements should not be infered. Thanks to Boris for this fix. 2004-05-30 Atsushi Enomoto * DataTable.cs : serialization .ctor() should use XmlReadMode.DiffGram for ReadXml(). Thanks to Boris. 2004-05-27 Boris Kirzner * DataRow.cs : - CheckReadOnlyStatus : use typed (and faster comparing). - EndEdit : bug fix - do not dispose record if it holds original version. - SetValuesFromDataRecord : Take care about autoincrement columns. 2004-05-27 Atsushi Enomoto * MergeManager.cs : don't output debug message to Console. 2004-05-27 Atsushi Enomoto * XmlDataInferenceLoader.cs : Namespace are not imported to the table structure. Thanks to Boris Kirzner for the fix. 2004-05-27 Umadevi S * DataRelationCollection.cs - fixed nunit test errors 2004-05-27 Umadevi S * DataTableCollection.cs - fixed nunit test errors 2004-05-21 Atsushi Enomoto * DataColumnCollection.cs : NullReferenceException was thrown when the table was not found. * DataRowCollection.cs : Find() just returns null for null value under MS.NET 1.1. RemoveAt() should also avoid to call AcceptChanges() like Remove(). * UniqueConstraint.cs : in AssertConstraint() throw ConstraintException directly under MS.NET (for nunit test). 2004-05-21 Atsushi Enomoto * XmlSchemaDataImporter.cs : Setting startindex in LastIndexOf() caused problem on qualified name to get schema Field name. 2004-05-21 Atsushi Enomoto * XmlDataReader.cs : Now data reader is namespace aware in all places. When table's namespace is different, it entered to infinite loop. 2004-05-19 Boris Kirzner * MergeManager.cs : AdjustSchema now updates by reference new created table, so in Merge you do not need to lookup for it (were unable to do this for unnamed tables). Code styling. 2004-05-19 Boris Kirzner * DataColumn.cs : In set_Item[int] - if autoincrement, adjust next autoincrement value. * DataColumnCollection.cs : fixed parantethes. * DataRow.cs : - AcceptChanges : do nothing if row state is unchanged. - GetChildRows, GetParentRows : bug fix (use correct index). * DataRowCollection.cs : bug fix (compare all row's values). * DataTable.cs : bug fix (use correct row version). 2004-05-20 Atsushi Enomoto * XmlSchemaDataImporter.cs : xs:positiveInteger is mapped to ulong. When content type is Mixed, text column is not required (it is required only when the complex type has no particle). "Repeated element" column is also created (considering maxOccurs=0 and complex content extension). 2004-05-20 Atsushi Enomoto * XmlSchemaDataImporter.cs : XmlSchemaGroupBase was not handled properly. 2004-05-20 Atsushi Enomoto * XmlSchemaDataImporter.cs : Removed unused code and extra MonoTODO. Fixed relation inference to consider attribute XPath. 2004-05-19 Atsushi Enomoto * DataColumn.cs : Fixed set_Item[int]. Convert.ToInt64(DBNull.Value) always fails. 2004-05-19 Boris Kirzner * DataColumn.cs - removed default member attribute. 2004-05-19 Boris Kirzner * DataColumn.cs, DataColumnChangeEventArgs.cs, DataColumnCollection.cs, DataRow.cs, DataRowCollection.cs, DataTable.cs, Index.cs : Data storage in the row is redesigned. Now data is stored in typed containers inside DataColumn. Row holds its versions as indexes inside each of data container, accessed through the row that holds it. 2004-05-19 Boris Kirzner * UniqueConstraint.cs - added comment. 2004-05-19 Atsushi Enomoto * XmlDataInferenceLoader.cs : Don't add already-existing DataTable to DataSet. 2004-05-17 Atsushi Enomoto * DataSet.cs, XmlDataInferenceLoader.cs, XmlDataReader.cs, XmlSchemaDataImporter.cs : XmlDecode every local name to read and XmlEncode every local name to write. This should fix bug #58268. 2004-05-17 Atsushi Enomoto * DataSet.cs : Implemented ignored namespaces in InferXmlSchema(). Supported repeated elements. Removed MonoTODOs. * XmlDataInferenceLoader.cs : Design change to support ignored namespace and repeated elements. * XmlSchemaDataImporter.cs : Added mapping support classes. 2004-05-15 Atsushi Enomoto * CustomDataClassGenerator.cs : Added property parent "[foo]Row" and children "Get[foo]Row" support for custom DataRow classes. Fixed DataColumn property accessibility (public --> internal). 2004-05-14 Atsushi Enomoto * CustomDataClassGenerator.cs : - Put classes inside custom DataSet class. - Added automatic DataRelation creation support. - Added Constraints creation support. That is done separate from relations, since they might be independently created. - Added non-MS public DataRelation fields. - Removed extraneous "DataRelation type generation" code. - Fixed custom_dataset.Initialize() not to create "c" field that was created more than once. - Implemented AddxxxRow() that takes parameters for every column. 2004-05-14 Atsushi Enomoto * XmlSchemaDataImporter.cs : When primary key is used more than once, DataRelation borked because of empty parent column name. 2004-05-14 Atsushi Enomoto * XmlSchemaDataImporter.cs : When Creating constraints with related to DataRelation creation, also set PrimaryKey to the parent table. 2004-05-14 Atsushi Enomoto * XmlSchemaDataImporter.cs : Design change to add indirect table and relation structures. Support for "relation" annotation for local element. Support for repeatable simple element column (maxOccurs > 1). Fixed handling of Nested property on DataRelation (for globally annotated relation, Nested is false). 2004-05-13 Atsushi Enomoto * DataRow.cs : Added DataElement property to avoid storing every row- element mapping. It stored even for nodes that should be removed. 2004-05-13 Umadevi S * RelationshipConverter.cs - Stubbed this class * DataRelation.cs - added TypeConveterAttribute 2004-05-13 Umadevi S * DataColumnCollection.cs - Added ResDescriptionAttribute * DataRelation.cs - Added TypeConverterAttribute * DataRelationCollection.cs - Added DefaultPropertyAttribute * DataRowView.cs - Added GetHashCode method with a TODO tag * DataSet.cs - Added DesignerAttribute * DataView.cs - Added DesignerAttribute * DataViewManager.cs - Added DesignerAttribute * DataViewSetting.cs - Added TypeConverterAttribute 2004-05-12 Atsushi Enomoto * DataRow.cs : Added XmlDataElement initialization code. 2004-05-11 Atsushi Enomoto * XmlDataInferenceLoader.cs : It now requires XmlDocument as input. Improved identification of DataSet element. Removed extra lines. Moved boresome design notes to bottom of the source and added standalone runnable driver (not included on build). * DataSet.cs : Update with related to the change above. WriteXml() should call Flush() after writing. This fixes bug #58327. * XmlSchemaDataImporter.cs : Improved indentification of DataSet element. 2004-05-11 Gert Driesen (drieseng@users.sourceforge.net) * DataTable: marked initStatus enum internal 2004-05-09 Gert Driesen (drieseng@users.sourceforge.net) * DataTable.cs: removed TypeConverterAttribute, marked RowsExist methods internal * DataRowView.cs: removed extra Error property * DataRow.cs: reduced accessibility of CollectionChanged method to private * DataColumnPropertyDescriptor.cs: made class internal * DataColumn.cs: removed extra TypeConvertorAttribute * ConstrainCollection.cs: marked PostEndInit method internal 2004-05-07 Atsushi Enomoto * DataSet.cs : In WriteXmlSchema(), when complex type contains simple type content attributes must not added to XmlSchemaComplexType directly. It causes schema compilation error. DataRelation should not be output when related columns are hidden. 2004-05-07 Atsushi Enomoto * XmlDataInferenceReader.cs : Added. It does InferXmlSchema() (it is also expected to do ReadXml(), but I will remove that feature and support column reordering). * XmlSchemaDataImporter.cs : Always initialize dataset name. Always set Nested and primary key for parent table. * XmlDataReader.cs : Now it is used. Top level element might not match to dataset name nor any table name, but still possible to read content tables. Handle empty element correctly in some places. Handle Fragment mode (read up XmlReader to the end). * DataSet.cs : Modified InferXmlSchema() and ReadXml() to use XmlDataInferenceLoader and XmlDataReader. 2004-05-06 Atsushi Enomoto * DataSet.cs : Eliminated CRLF injection. More clear message in Clear(). Updates reflecting XmlSchemaDataImporter change. Added duplicate check for XmlSerializerNamespaces in BuildSchema(). Don't use xmlns attribute for UnhandledAttributes (its not mandatory but that depends on different behavior from ms.net). Set locale also for DataTable. Add xs:element only when target namespace matches to the element's namespace. Otherwise, add xs:import for external namespace. Put xs:sequence for dataset element's particle _only when_ actual contents exist. 2004-05-06 Atsushi Enomoto * XmlDataReader.cs : Added. This class will work better when our schema inference and schema read engine gets improved. (It contains standalone testable Driver class.) 2004-05-06 Atsushi Enomoto * ForeignKeyConstraint.cs : Check step change. Existence then column validity. just for tests. * XmlSchemaDataImporter.cs : code simplification. reduced extraneous fields. 2004-05-05 Atsushi Enomoto * DataSet.cs : Ignore empty content only when output type is diffgram. 2004-05-05 Atsushi Enomoto * CustomDataClassGenerator.cs : Modified that DataSet contains each DataTable field so that each table property can access them directly. (plus, modified standalone code driver code: shouldn't affect) 2004-05-05 Boris Kirzner * DataView.cs , DataRowView.cs : Added implementation to basic methods and properties. 2004-05-05 Atsushi Enomoto * XmlSchemaDataImporter.cs : SimpleContent column support. Annotated relation support. Top-level element is counted only when its type is complex. xs:anyType is no longer treated as complex type. dataset existence is mandatory now. Improved DataType and DefaultValue support. Attribute namespace is properly handled now. Prohibited attribute is now treated as hidden column. Reject list or union simple type. Still incomplete 1) to read relationship in some cases, 2) to determine whether an element is dataset or table, 3) thus to exclude extraneous column, 4) to remove extraneous *_Id column. 2004-05-05 Atsushi Enomoto * DataTable.cs : We had better reuse DataSet's ReadXmlSchema() and ReadXml() in serialization .ctor() (thus schema read/inference should be easier). DataRowSorter should consider Table's Locale. 2004-05-05 Atsushi Enomoto * DataColumnCollection.cs : We already had AutoIncrementValue(), so use it instead of duplicating logic. 2004-05-05 Atsushi Enomoto * ConstraintCollection.cs : Use Table.CaseSensitive and Table.Locale to compare strings. Duplicate constraint name exception does not occur under .NET 1.1. 2004-05-04 Lluis Sanchez Gual * XmlSchemaDataImporter.cs: Added little type check. 2004-05-04 Lluis Sanchez Gual * DataSet.cs: Implemented support for runtime serialization. Fixed support for xml serialization. * XmlDiffLoader.cs: Skip diffgram element when it is empty. 2004-04-30 Umadevi S * DataColumnCollection.cs : Fixed nunit test errors, removed TODOs * DataTableCollection.cs : Tested and removed TODO * TypedDataSetGeneratorException.cs : Fixed a couple of TODOs 2004-04-29 Atsushi Enomoto * DataRow.cs : My previous patch unintentionally reverted Boris patch. 2004-04-29 Boris Kirzner * UniqueConstraint.cs : Constraint columns becaomes unique after adding constraint ifand only if constraint is defined on single column. 2004-04-29 Atsushi Enomoto * DataRowCollection.cs : .NET 1.1 throws InvalidConstaintException, not ArgumentException (maybe changed after 1.1). 2004-04-29 Atsushi Enomoto * DataRow.cs : When Column was added and it was AutoIncrement column, it extended the item object array incorrectly. (Plus tiny comment and incorrect indentation fix.) 2004-04-29 Boris Kirzner * MergeManager.cs : added ( incomplete yet ) support for merging DataSet schema. 2004-04-29 Boris Kirzner * DataRow.cs : Bug fix in CopyValuesToRow(). 2004-04-29 Boris Kirzner * UniqueConstraint.cs : There is no reason to mark constraint's columns as unique, because each of the columns should not be unique, but only all the constraint's columns together. 2004-04-28 Boris Kirzner * DataRow.cs : - Perfomance fixes: - Added using of list of autoIncrement columns - SetColumnValue receives also DataColumn to avoid duplicate lookup in DatacolumnCollection - Fix in CheckNullConstraints - Fix in this[] and HasVersion() : when evaluating an expression deleted rows values can be accessed. - Fix in SetColumnValue() , added CanAccess() method to avoid case of accessing internal array values berore it actually allocated. - Added onColumnRemoved() method to threat column removal accurately. * DataRowCollection.cs : - Added using of DataRow._nullConstraintViolation (for perfomance fix in EndLoadData()) - Added method onColumnRemoved() - calls each row's onColumnRemoved() (to ensure column removal is treated accurately) * DataTable.cs : - Call DataRowCollection.onColumnRemoved() in OnRemoveColumn() (to ensure column removal is treated accurately) * DataColumnCollection.cs : - Perfomance fixes : - collection holds a list of its autoIncrement columns (avoids unnesessary lookup through whole collection) - collection holds mapping from column names to DataColumn objects (avoids lookup through whole collection). - automatic creation of column names rewrited (bug fixes + perfomance improvement) * DataColumn.cs : - Uses autoincrement list of a table 2004-04-27 Atsushi Enomoto * XmlDataLoader.cs : Even when it should ignore schema, it was infering schema. * XmlSchemaDataImporter.cs : DataRelation creation support. Improved "DataSet" element handing. When attributes are on the element, it is not a "DataSet" element. Fixed parent key column name. Unique name creation is not required. Just raise an error. Fill facet also for attribute types. 2004-04-27 Atsushi Enomoto * DataRow.cs : Null check for CheckReadOnlyStatus() and CheckNullConstraints(), with some coding guideline fixes. Type check should be done by Type instance comparison. 2004-04-27 Atsushi Enomoto * DataColumnCollection.cs : When add a column to the collection, fill auto-increment column. 2004-04-26 Boris Kirzner * DataColumn.cs : Small perfomance fix (avoid unnesessary string concatenation). 2004-04-26 Atsushi Enomoto * CustomDataClassGenerator.cs : Added. * TypedDataSetGenerator.cs : Implemented Generate(). Changed GenerateIdName() to call CustomDataClassGenerator.MakeSafeName * XmlSchemaDataImporter.cs : Table Locale should be supplied. 2004-04-25 Boris Kirzner * DataTable.cs : Small perfomance fix (avoid unnesessary string concatenation). 2004-04-25 Boris Kirzner * Constraint.cs : Small perfomance fix (avoid unnesessary string concatenation). 2004-04-23 Umadevi S (sumadevi@novell.com) * DataRow.cs: Checked BeginEdit,EndEdit,CancelEdit and Delete methods - Added error handling to the above methods 2004-04-22 Atsushi Enomoto * DataSet.cs : Data should be read when mode is IgnoreSchema (well, the support is incomplete yet). * XmlDataLoader.cs : Reverted ReadModeSchema() argument change. XmlReadMode would be useful to handle IgnoreSchema. Don't overwrite DataSetName when mode is not such kind. Set Prefix and Namespace as well as DataSetName. AllowDBNull looks set false by default for element column. Set unique constraint as primary key when infering the table schema. 2004-04-21 Atsushi Enomoto * DataSet.cs : Never set null string for Prefix and Namespace. In InferXmlSchema() when null XmlReader is passed, just do nothing. In WriteXmlSchema(string), earlier try block. In BuildSchema(), try to add serialization namespaces for each namespaces in DataSet/DataTable/DataColumn. Removed namespace argument from WriteColumnAsElement() and don't overwrite when namespace is "". This fixes bug #57330. * DataColumn.cs : For Namespace and Prefix, never set null. 2004-04-21 Boris Kirzner * XmlSchemaMapper.cs : Check for not null unique constraint in ReadXmlSchemaKeyref() before creating and adding foreign key constraint and relation. 2004-04-21 Boris Kirzner * MergeManager.cs : In AdjustSchema() source table clone should be added and not the table itself. 2004-04-21 Boris Kirzner * DataSet.cs : - CaseSensitive : Additional fix (removed unnesessary assignment). - CopyProperties : Do not try to copy ExtendedProperties if the collection is empty. 2004-04-21 Boris Kirzner * DataTable.cs : Ensure that DataSet property is not null before using it in Clear(). 2004-04-20 Boris Kirzner * DataTable.cs : - EndLoadData() : perfomance fix in case of null constraint violation during data load (also in DataRow.cs). - CaseSensitive : If DataTable belongs to DataSet it should always use DataSet.CaseSensitive untill explicitly changed. - CopyProperties() : do not try to copy ExtendedProperties if the collection is empty. * DataRow.cs : - Pefromance fix in case of null constraint violation during data load (also in DataTable.cs). - CollectionChanged() : use correct column number after new DataColumn was added (differs in case some DataColumn was previosly removed). - EndEdit() - throw away proposed values only after CheckChildRows() complete. 2004-04-20 Boris Kirzner * DataColumnCollection.cs : Since unique constraint is added now in DataColumn.SetTable() the additional creation of constraint in DataColumnCollection.Add() is redundant and causes exception - fixed. 2004-04-19 Atsushi Enomoto * XmlDataLoader.cs : Added "never add data rows" mode. Removed unused code. However, it is temporary fixes to unify ReadXml() and InferXmlSchema(). * DataSet.cs : Implemented InferXmlSchema(), though it is incomplete. I'll create another XmlDataLoader since there are many problems such that 1) it is too waste to read the entire xml into an XmlDocument, 2) it does not handle attributes correctly, and 3) it must handle "ignored namespaces". 2004-04-19 Atsushi Enomoto * Added XmlSchemaDataImporter.cs (new schema reader). * DataSet.cs : Use XmlSchemaDataImporter (right now for DataSet only) for ReadXmlSchema(). Let schema reading work to ReadXmlSchema(). Don't return ReadSchema when argument read mode was DiffGram. 2004-04-15 Umadevi S (sumadevi@novell.com) * Updated Clone/Copy methods in DataSet along with Testcase * ForeignKeyConstraint.cs - special ctor implemented Logic : ParentTable in the ctor - Since only name is given (not the DataTable object), we cannot associate any DataTable or DataSet right now. So, only possible way is to do it when AddRange() is called. The ParentTable is searched in the DataSet to which the calling DataTable belongs. And make the calling DataTable as ChildTable. In the PostAddRange() method check is addedd to perform the assignment of parent and child data columns once the information becomes available (When AddRange is called). * Changes in ConstraintCollection.cs for the above Add (Constraint) - A check is performed to see if the constraint is ForeignKeyConstraint and whether data columns are validated. If no, whether it is called with AddRange(), If no, an Exception is thrown. AddRange() - PostAddRange() is called on the ForeignKeyConstraint object with the "table" as argument. Thanks to Deepak for the patch. 2004-04-15 Atsushi Enomoto * XmlSchemaMapper.cs : set parent key and foreign key info to DataRelation when reading refkey constraints. Supply constraint name for fkey. 2004-04-15 Atsushi Enomoto * XmlDataLoader.cs : Don't overwrite existing DataSetName. When read mode is Auto, just ignore the schema if there is already schema info. * DataSet.cs : Similarly ignore schema info for XmlReadMode = Auto. 2004-04-14 Atsushi Enomoto * DataSet.cs : - In MS output, XML declaration looks to have standalone decl (yes). - ReadXml(reader) just calls to ReadXml(reader, XmlReadMode.Auto) - ReadXml(reader, mode) 1) return originally specified mode, instead of (always) Auto. 2) Check empty reader. 3) Check diffgram schema and content separately. 4) When diffgram exists, remaining (the same-level) contents won't be consumed. 5) Similar fact should be applied, but somewhat different. InferSchema and IgnoreSchema just skips, Fragment reads both schema and content, others just reads schema. - Removed unused code. * XmlDataLoader.cs : - Read() should skip in some ReadMode. - Don't compare schema element name as case-insensitive (well, should schemas be checked here?) - Avoided BuildDocument() not to create confusing DataSet document element. - Don't add any tables when reader has single element. * XmlDiffLoader.cs : When target table was not found, MS.NET doesn't raise an error. * XmlSchemaMapper.cs : When XmlSchema.Read() left xml reader at , read once. 2004-04-13 Atsushi Enomoto * DataSet.cs : - InferXmlSchema(): Throw explicit NotImplementedException now. - Don't put XML declaration everywhere. Write just for filename arg. - xmlns="" should not be written. Maybe WebService problem is because default namespace is overwritten. This patch will keep the WS problem away and actually fixes some unit tests (i.e. use explicit String.Empty for null namespace in WriteStartElement()). - MoveToContent() should always be called, not only when LocalName="xml". It will ignore prolog (DTD, PI, comment etc.). - Even XmlReadMode is DiffGram, reader might not be "diffgram" element. As to MSDN, diffgram does not contain schema. 2004-04-13 Gonzalo Paniagua Javier * DataTable.cs: made _initStatus private so that System.Data is CLS compliant. 2004-04-13 Umadevi S * UniqueConstraint.cs: * ConstraintCollection.cs: * DataTable.cs: - Implemented a Constructor for UniqueConstraint.cs - Used EndInit on DataTable to call a delegate which adds the constraints passed to the most recent call of AddRange().Used AddRange() on ConstraintCollection to check whether DataTable.BeginInit has occurred. If yes, save the argument constraint collection passed, then return. If no, Check whether the constraints are of type UniqueConstraint and initialized with the special constructor If yes Initialized the table property of this UniqueConstraint object with table assosciated with the current instance of ConstraintCollection class. 2004-04-07 Marek Safar * Constraint.cs: changed ClsCompliant to CLSCompliant, build fix. 2004-04-06 Gonzalo Paniagua Javier * Constraint.cs: * DataColumnCollection.cs: * DataRelationCollection.cs: * DataRowCollection.cs: * DataTableCollection.cs: * InternalDataCollectionBase.cs: * Node.cs: CLS compliance for System.Data. Patch by Gert Driesen. Fixes bug #56557. 2004-04-05 Jackson Harper * DataTable.cs: Add rows to the row list if there is no filter. 2004-03-31 Juraj Skripsky * DataColumn.cs : Setting Caption to null sets it to the empty string (ms.net behaviour, testcase is in DataColumnTest). * DataRow.cs : Evaluate DataColumn.Expression when such a column's value is requested. 2004-03-30 Lluis Sanchez Gual * DataColumn.cs: In Expression setter, set the expression member even if it is an empty string. * DataSet.cs: Support serialization of byte[] columns. * XmlDataLoader.cs: Support deserialization of Guid columns. Set MappingType.Attribute to columns infered from attributes. 2004-03-29 Juraj Skripsky * ExpressionElements.cs : remove * DataColumn.cs, DataRelationCollection.cs, DataTable.cs : Integration of new Mono.Data.SqlExpressions classes used in DataTable.{Select, Compute}. Fixes bug #55503 and lots of failures in DataTableTest.cs. 2004-03-28 Juraj Skripsky * Index.cs: Simple fix in ComparePartialRowNonUnique. This fixes bugs #56129 and #56014. 2004-03-25 Lluis Sanchez Gual * DataSet.cs: In WriteXml (string filename, XmlWriteMode mode), close the stream after writing the dataset. This fixes bug #52581. Also added several writer.Close into finally blocks, so writers are properly closed in case of an exception. 2004-03-12 Andreas Nahr * Constraint.cs: DO NOT USE the consts scheme if types can be referenced directly! * DataColumn.cs: DO NOT USE the consts scheme if types can be referenced directly! * ColumnTypeConverter.cs: Added stub * DefaultValueTypeConverter: Added stub * ConstraintConverter.cs: Added stub 2004-03-04 Eran Domb * XmlDataLoader.cs : Xml reading reviewed. Added support for additional xml formats as described in MS.NET documentation (missing DataSet element etc). 2004-03-04 Eran Domb * Node.cs : Added. * Index.cs : Rollback last changes. 2004-03-03 Atsushi Enomoto * Index.cs : justa build fix. 2004-03-03 Eran Domb * Index.cs : Added. * Constraint.cs, ForeignKeyConstraint.cs, UniqueConstraint, ConstraintCollection.cs, DataColumn.cs, DataRow.cs, DataRowCollection.cs, DataSet.cs, DataTable.cs : Changes made for using indexes on tables. This changes made for performance improvement. 2004-02-08 Eran Domb * XmlSchemaMapper.cs : Read columns is they were written as SimpleContent or as Attributes. 2004-02-08 Eran Domb * DataSet.cs: Fix some bugs in ReadXml(). 2004-02-04 Lluis Sanchez Gual * DataSet.cs: Added missing method that broke the build. 2004-02-04 Eran Domb * DataRowCollection.cs (InsertAt): Add a check for null row. Replace check of IndexOf with RowId for better performance. * DataSet.cs (GetTableSchema) : Add supprot for simple content columns. Change the condition for a case when all column are attributes (elements count is 0), we still want to add the relations. No relations can be on simple contents. (AddUniqueConstraints) Check that the column of the constraint are not hidden. (AddForeignKeys) Check that the relation has constraints attach to it. * XmlConstants.cs : Added constant. 2004-02-04 Eran Domb * DataSet.cs : GetSchemaSerializable() return null and not BuildSchema(). DoWriteXmlSchema calls BuildSchema (). 2004-02-04 Lluis Sanchez Gual * DataRow.cs: Added SetOriginalValue(), which is used to set the original value of a column. * DataRowCollection.cs: In InsertAt(), perform the correct checks and attach the row. * DataSet.cs: Fixed method GetChanges(): Parent rows of modified rows must also be added to the dataset. In WriteTable(), do not write unchanged rows when writing the original version of the table. Added WriteIndividualTableContent(), for writing the contents of a single table. Changed BuildSchema and related methods, so it can generate a schema for any set of tables, not just the tables of the dataset (needed for single datatable serialization). * DataTable.cs: Implemented serialization constructor and GetObjectData method. Also implemented some ReadXmlSchema methods. * XmlDiffLoader.cs: Read and process the xml document directly from XmlReader, instead of loading the full dataset in an XmlDocument. It is faster and saves memory. Also fixed several problems when generating the changes. * XmlSchemaMapper.cs: Support reading schemas for single tables (used by table serialization). 2004-02-02 Eran Domb * DataSet.cs : Add indentation to the xml serialization only if we create the XmlWriter. Add the namespace attribute even if namespace is an empty string for inteoperability with MS.NET. * DataTable.cs (NewRow): Create only one DataRowBuilder. Initiate new row with row id -1. * DataRow.cs : Add RowId property. * DataRowBuilder.cs : Add _rowId member. * DataRowCollection.cs (Add) : Use the RowId property of the new row to check if it is already exists in the collection. 2004-01-26 Eran Domb * XmlConstants.cs : Added some constants. * DataColumn.cs : Added a method to retrive AutoIncrement value. * XmlDataLoader.cs : Set the value of the foriegn key column, according to the value of the parent table column. * XmlDiffLoader.cs : Convert the value comming from the xml. * XmlSchemaMapper.cs (Read) : Set the DataSet namespace. (ReadXmlSchemaSequence) : Change the logic that decides if this element is a column or a table. (ReadXmlSchemaElement) : Set the locale of the dataset. (ReadColumn) : Set the column type. Find if the column is AutoIncrement. (GetColumnType) : New method to get the column type from the attribute value. (ReadXmlSchemaUnique) : Improve parsing of XPath. Set the constraint as a PK if needed, and add the constraint to the table. (ReadXmlSchemaKeyref) : Improve parsing of XPath. Create the FK constraint and add it to the table. * DataSet.cs : Improving writing of unique constraints, and foriegn key constraint. Givving them the correct names. Writing more information to the schema for interoperability with ms.net. Improve diffgarm writing mode. 2004-01-21 Atsushi Enomoto * TypedDataSetGenerator.cs : Implemented GenerateIdName(). 2004-01-21 Eran Domb * XmlDataLoader.cs (AddRowToTable) : Give thre new relation correct name. Do not set the child column to be AutoIncrement. Create the new column for the relation as MappingType.Hidden so they will not be serialized when writing the dataset to xml. 2004-01-20 Atsushi Enomoto * Added missing TypedDataSetGenerator.cs. 2004-01-08 Eran Domb * XmlSchemaMapper.cs : Fix a bug. Check if table already in DataSet before adding it. * DataSet.cs (ReadXml) : Fix bugs. Read correctly the xml file with XmlReadMode of DiffGram, InferSchema, ReadSchema and IgnoreSchema. * XmlDataLoader.cs : All modes use the same logic. * XmlDiffLoader.cs : Adding BuildXmlDocument method to the class. 2004-01-06 Eran Domb * DataRelationCollection.cs : Use IndexOf in indexer. * DataSet.cs : Adding support for WriteXml with diffgram. Code style changes. * XmlDataLoader.cs : Set the DataSet.enforceConstraints to false before loading the tables. * XmlDiffLoader.cs : Reading nested tables. * XmlSchemaMapper.cs : Reading the relation. * XmlConstants.cs : Adding some constants. 2004-01-05 Jackson Harper * DataView.cs: Set readonly property of property descriptor. This fixes bug #52598. 2004-01-01 Sanjay Gupta * DataRelationCollection.cs : Fixed incorrect generation of default Relation name. * DataSet.cs : Added missing functionality in WriteXml(). * XmlConstants.cs : Added new constants. 2003-12-27 Atsushi Enomoto * DataSet.cs : Fixed incorrect WriteXml() signature. 2003-12-18 Jackson Harper * DataView.cs: Implement AddNew, Delete, and OnListChanged. 2003-12-17 Atsushi Enomoto * DataSet.cs, XmlDataLoader.cs : Table name should be encoded before they take shape of xml. This fixed bug #52240 2003-12-16 Tim Coleman * KeyRestrictionBehavior.cs: New stubs added for .NET 1.2 * DataTable.cs: Changes for 1.2 2003-12-08 Eran Domb * DataColumn.cs (Expression) : Validate the expression. * DataRelationCollection.cs (IndexOf) : Added new method sensetive to case differences in relation name. (Contains, IndexOf, this[], Add) : Call new IndexOf when needed. * DataRow.cs (this[]) : Fix the condition for throwing RowNotInTableException. (RejectChanges) : Detach row when state was Added. (CollectionChanged) : Fix a bug. * ExpressionElement (ValidateExpression) : Fix a bug. * ForeignKeyConstraint.cs (AssertConstraint) : Added implementation. Check all rows from child table have a parent row in the parent table. (_validateColumns) : Fix bugs. * MergeManager.cs (AdjustSchema) : Fix a bug. * XmlDataLoader.cs (ReadModeInferSchema) : Change implementation. Now we can read nested xml, and we generate the relations between the tables. 2003-11-30 Eran Domb * DataColumnCollection.cs (this[string name]) : Use IndexOf to find the column. (Add) : Find if the new column name is the same as the one found in IndexOf. (IndexOf) : New method. (Contains) : Use new IndexOf. (IndexOf) : Use new IndexOf. * DataRelationCollection.cs (DataRelationCollection.AddCore) : Add The Relation to the collection. (DataSetRelationCollection.AddCore) : First add the UniqueConstraint. * DataRow.cs (this[int columnIndex, DataRowVersion version]) : Change exceptions. (Delete) : Detach row if the RowState was Added. (GetChildRows) : Get the array form the ChildTable. (GetParentRows) : Get the array from the ParenTable. * DataRowCollection.cs (Remove) : Check if row state is Detached to avoid exception. * DataSet.cs (IXmlSerializable.ReadXml) : Do not call MoveToContent and ReadEndElement - the XmlSerializationReader does it. * DataTable.cs (PrimaryKey) : Fix bugs. (Compute) : First call Select. Then create ExpressionAggregate to aggregate the Select result. * DataTableCollection.cs (Add) : Fix a bug. * ExpressionElement.cs (ValidateExpression) : Turning ValidateExpression to static. (Result) : Added new interface to AggregateExpression that get DataRow[] as a param. Some code style changes (tab instead of whit spaces, alignment, etc...). * ForeignKeyConstraint.cs (_validateColumns) : Throw correct exception. * MergeManager.cs (AdjustSchema) : Fix a bug. 2003-11-26 Miguel de Icaza * DataSet.cs: Add a few more missing methods, code style updated to Mono style. 2003-11-26 Tim Coleman * ConflictOptions.cs DataAdapterException.cs DataTableReader.cs * DbMetaData.cs FillOptions.cs IDataReader2.cs IDataRecord2.cs * IDataUpdatableRecord.cs IDbAsyncCommand.cs IDbAsyncConnection.cs * IDbExecutionContext.cs IGetTypedData.cs ISetTypedData.cs * LoadOption.cs OperationAbortedException.cs ResultSetOptions.cs * ResultSetSensitivity.cs StatementCompletedEventArgs.cs * StatementCompletedEventHandler.cs UpdateOptions.cs: New classes added for NET_2_0 * DBConcurrencyException.cs DataRelation.cs DataSet.cs DataTable.cs * DataTableCollection.cs DataView.cs ForeignKeyConstraint.cs: Modifications to add new NET_2_0 functions 2003-11-25 Tim Coleman * IDataSources.cs: New 1.2 class added 2003-11-21 Pedro Martínez Juliá * DataRow.cs: Detached row can be accesible (new rows from data table are detached). Closes but #51263. 2003-11-19 Eran Domb * DataRow.cs : Throw exceptions if Row is Detached. (EndEdit) : Check that we are not in middle of ChangeEvent. (AcceptChanges) : Detach the row. * DataRelation.cs : throw correct exception. *UniqueConstraint.cs : throw correct exception. 2003-11-09 Pedro Martínez Juliá * DataRow.cs: Use RemoveInternal instead of Remove because the last one uses Delete and AcceptChanges. * DataRowCollection.cs: When removing, Delete and AcceptChanges method from the row are called. Added an internal method that will be used by DataRow to "physically" remove the row from the list. 2003-11-09 Pedro Martínez Juliá * DataRowCollection.cs: To follow the specification: Remove and RemoveAt should remove the row. But needed to call DeletingDataRow to prepare the deleting. * DataRow.cs: Don't call DeletingDataRow when it is called by the method Table.Rows.Remove. 2003-11-09 Pedro Martínez Juliá * DataRowCollection.cs: Make the row be deleted by itself. If not, it fails because we need to call OnRowDeleting and OnRowDeleted. It is full implemented inside DataRow. 2003-11-05 Eran Domb * DataView.cs (ctor) : Changing default RowStateFilter to CurrentRow. 2003-11-04 Eran Domb * DataRow.cs (CheckChildRows) : Improving the implementation - checking child for all FK, and not on all Relations. (GetChildRows) : Adding some checks. (GetParentRows) : Adding some checks. Fix a bug in implementation. (SetParentRow) : Added implementation. * DataRowCollection.cs (Add) : Added more checks on the row added to the collection. * DataTable.cs (Copy) : Set the During Loading flag to save unnecessary assertions. * ForeignKeyConstraint.cs (AssertConstraint) : Fixing bugs in implementation. Checking for DBNull values in the row. * MergeManager.cs : Check that the target table is not null. 2003-10-27 Eran Domb * DataColumn.cs (DefaultValue) : Changing null value to DBNull. Checking that the type of the new default value can be converted to the column type. * DataRelationCollection.cs (AddCore) : Give the new FK the name of the relation. * DataRow.cs (EndEdit) : Check if we need to validate the constraints. (GetParentRows, GetChildRows) : Checking that the row has the wanted version, before accessing the row's value. * DataRowCollection.cs (Add) : Fixing a bug. (Clear) : Before clearing the array check that there is no violation of FK constraint. * DataSet.cs (Prefix) : If value is null chage it to empty string. (GetXml) : Removing the Processing Instructions from the xml string as in MS ADO.NET. * ExpressionElement : Adding support for IN expresion. * DataTable (CopyConstraints) : New method that copy the tables constraints to the copy table. (Select) : Adding support for DataViewwRowState. * ForeignKeyConstraint.cs (AssertConstraint) : Adding implementation. * MergeManager.cs (MergeRow) : Fix bugs. 2003-10-27 Eran Domb * DataRow.cs (SetColumnValue): Donot check null value when in midle of loading data. check null values when ending loading data. * DataSet.cs (RejectChanges) : Imlementation. (Prefix) : If prefix was changed fire event. Check that the prefix is not null - if null, change it to empty string. * DataTable.cs (BeginLoadData, EndLoadData) : Impemantation. 2003-10-22 Eran Domb * MergeManager.cs : Fixing bugs. Adding check for PrimaryKey matching. * ConstraintCollection.cs (RamoveAt): Change implemntation. * DataTableCollection (CanRemove): Removing cast to Constraint. 2003-10-22 Eran Domb * DataRelationCollection.cs (AddCore): The unique constraint was added even if the createConstraints flag was false. (Clear): The collection was cleared without removing the relation from the parent and child tables. * 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. 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. (Clear): Check that this table is not referenced from a foreign key constraint. (Copy): Do not try to access a deleted row. (CopyProperties): Copy the PrimaryKey. (GetChanges, ImportRow): Implementation. (LoadDataRow): Adding implementation if the table has PrimaryKey. (ToString): Changing implementation to behave like ADO.NET. * UniqueConstraint.cs (AssertConstraint): support for Multiple DataColumns in the constraint. * DataRow.cs (Ctor): In the constructor we initiate the current array, but we should initiate only the proposed array for new rows. (HasErrors): Implementation. (Delete): Added checking for child rows of the deleted row. (EndEdit): Added checking for child row and firing events. (GetColumnError): Added a check that the method will not return null, as in ADO.NET(an empty string is returned). (GetColumnsInError): Added a check for null values in column error. (HasVersion): Added special treatment for special RowState. (CollectionChanged): More checks to avoid NullReferenceException. * DataRowCollection.cs (Remove): Fix a bug. 2003-10-01 Duncan Mak More patches from Eran Domb . * MergeManager.cs: New file. * DataRelationCollection.cs (AddCore): Check that a UniqueConstraint is already exists. It loops over the Relations instead of the Constraints. (Add, AddCore): The relation was added twice. * DataSet.cs (Merge, GetChanges, HasChanges): Implemented. 2003-09-30 Duncan Mak Patches from Eran Domb . * DataRelation.cs (constructor): When the name of the relation is null, it should return an empty, not "Relation". * DataRow.cs (AcceptChanges): Added special case for RowState.Detached. (CancelEdit): Set editing flag to false. (IsNull): Check that the value is DBNull. * DataRowCollection.cs (Add): There was no check that the table of the collection is owned by a DataSet. * DataSet.cs (OnMergeFailed): Added. * UniqueConstraint.cs (AssertConstraint): There was no check that values in the row are not null, where it is a primary key column. Also check that the row has a proposed version, if not, get the current version when we compare the rows. 2003-09-25 Duncan Mak Patches from Eran Domb . * DataColumn.cs (Unique): Implemented. * DataTable.cs: * ConstraintCollection.cs: * ForeignKeyConstraint.cs (_ensureUniqueConstraintExists): Fixes an Exception thrown. Details: http://lists.ximian.com/archives/public/mono-devel-list/2003-September/002130.html * DataRowCollection.cs (Add): There is no checking that there is no violation of the unique constrains. * UniqueConstraint.cs (AssertConstraint): There is no checking on all columns in the constraint. * DataTableCollection (Add): Correctly throw an Exception, more details here: http://lists.ximian.com/archives/public/mono-devel-list/2003-September/002117.html (Remove, RemoveAt): Implemented. 2003-07-31 Duncan Mak * DBConcurrencyException.cs: Added new NET_1_1 no-param constructor. 2003-07-25 Ravi Pratap * DataRelation.cs (OnPropertyChanging): Calling the 'Invoke' method on a delegate is disallowed - fix this. 2003-07-22 Lluis Sanchez Gual * DataSet.cs: Implemented IXmlSerializable interface. Added basic support for xml serialization. Modified method of writing schema. Now it creates a XmlSchema object and serializes it using XmlSerializer. * XmlConstants.cs: Added constants for data type names. * XmlDataLoader.cs: Fixed deserialization of data. Now converts data to the type specified in the column. 2003-04-20 Alan Tam * DataRelationCollection.cs: Fix a bug that prevent relations from being added via DataSet. 2003-04-12 Ville Palo * UniqueConstraint.cs: one tiny fix. 2003-04-05 Ville Palo * DataTable.cs: Remove UniqueConstraints when adding new ones 2003-04-04 Ville Palo * DataColumnCollection.cs: Little 'case sensitive' fix 2003-04-04 Ville Palo * DataRow.cs: AutoIncrement handling to Constructor * DataRowCollection.cs: This doesnt need anymore AutoIncrements 2003-03-27 Ville Palo * DataTable.cs: Some fixes to PrimaryKey etc... * UniqueConstraint.cs: Little clean up 2003-03-27 Ville Palo * DataTable.cs: Tiny fix to ToString () -method 2003-03-27 Ville Palo * ConstraintCollection.cs: Little fix. * DataColumn.cs: Added new internal method SetUnique() * UniqueConstraint.cs: some little fixes 2003-03-26 Ville Palo * DataRowCollection.cs: Bugfixes, implementation,... 2003-03-26 Ville Palo * DataColumn.cs: If DataType if set to something else than short, int or long and AutoIncrement is true, AutoIncrement is must set to false. 2003-03-26 Gonzalo Paniagua Javier * DataRow.cs: (BeginEdit): fixed array bound problem when a column has been added. (EndEdit): just assign proposed to current as proposed is set to null. This also fixes another array boudn problem. 2003-03-21 Alan Tam * DataRow.cs: Fixed problems in accessers, BeginEdit, CancelEdit, EndEdit and AcceptChanges to act correctly according to DataRowState and DataRowVersion. * DataRowCollection.cs: Call AttachRow and DetachRow when a row is attached and detached from the collection. 2003-03-20 Alan Tam * DataColumn.cs: Store empty string for Expression when null is passed in. Classes generated by XSD.exe passes null by default. 2003-03-16 Ville Palo * DataColumnCollection.cs: Tiny clean up 2003-03-16 Ville Palo * DataColumn.cs: little fixes. * DataColumnCollection.cs: Lots of little fixes and improvments. 2003-03-12 Alan Tam * DataSet.cs: Fixed a bug that the file written does not close correctly. 2003-03-08 Alan Tam * DataRelationCollection.cs: Removed the mis-overridden methods * DataRow.cs: Fixed an attribute * DataSet.cs: Fixed the modifiers 2003-03-06 Aleksey Demakov * DataTableCollection.cs: The Contains (string name), IndexOf (string name) methods, and item[string name] indexer now behave more like .NET with respect to case-sensitivity. That is if there is an exactly matching item then this one is used. If there is only one item differing in case then it used. If there are more than one item differing in case then Contains returns false, IndexOf returns -1, and item[] throws an ArgumentException. 2003-02-28 Ville Palo * ExpressionElement.cs: More implementation. 2003-02-28 Alan Tam * DataSet.cs: Changed WriteTable so that it now calls the newly written WriteObjectXml to direct the call to the respective XmlConvert method. This fixes the wrong format written to XML files of bool, float, double, DateTime and TimeSpan types. 2003-02-25 Alan Tam * DataRelation.cs: Added SetDataSet for DataSetRelationCollection to use. * DataRelationCollection.cs: Implemented AddRange and Contains. Implemented AddRange, Clear, List and RemoveCore for DataSetRelationColletion. Implemented AddCore, List and RemoveCore for DataTableRelationCollection. Reimplemented most Add methods to eliminate duplicated checks. Centralized RelationName generation procedure in GetNextDefaultRelationName. 2003-02-25 Alan Tam * DataColumn.cs: Fixed wrong storage representation of Expression (using empty string instead of null) so that ToString() returns nothing. * DataColumnCollection.cs: Reimplemented GetNextDefaultColumnName so that auto column naming now works as expected. Reimplemented some Add methods to eliminate code duplication. 2003-02-19 Ville Palo * DataTable.cs: DataTable.CaseSensitive follows parent DataSet.CaseSensitive property if DataTable.CaseSensitive has never been changed directly from DataTable 2003-02-19 Ville Palo * DataSet.cs: When CaseSensitive property is changed all of the Tables of DataSet have to change too 2003-02-19 Daniel Morgan * InternalDataCollectionBase.cs: revert change to field to fix build * DataViewManager.cs * DataView.cs * DataTable.cs * DataSet.cs: commented use of DesignerAttribute because it broke the build. According to MSDN, DesignerAttribute does not have a zero-argument constructor 2003-02-18 Ville Palo * DataColumnCollectin.cs: Little fix for indexer and case sensitivity 2003-02-18 Alan Tam * DataRow.cs: Implemented GetParentRow and GetParentRows. * DataSet.cs: Added stub for HasChanges, InferXmlSchema, OnPropertyChanging, OnRemoveRelation, OnRemoveTable, RaisePropertyChanging. * DataTable.cs: Implemented NewRowArray. * DataTablePropertyDescriptor: Fixed a modifier. * InternalDataCollectionBase.cs: Fixed modifiers. Implemented SyncRoot. * PropertyCollection.cs: Minor fix. * ConstraintCollection.cs DataColumn.cs DataColumnCollection.cs * DataRelation.cs DataRelationCollection.cs DataRow.cs * DataRowCollection.cs DataRowState.cs DataSet.cs DataTable.cs * DataTableCollection.cs DataTablePropertyDescriptor.cs DataView.cs * DataViewManager.cs DataViewRowState.cs DataViewSettingCollection.cs * ForeignKeyConstraint.cs InternalDataCollectionBase.cs * PropertyCollection.cs UniqueConstraint.cs: Added missing attributes 2003-02-08 Ville Palo * ExpressionElement.cs: More implementation 2003-02-05 Alan Tam * DataSet.cs: Added framework for DataSet.Update Implemented missing methods GetSchemaSerializable, GetSerializationData, ReadXmlSerializable, ShouldSerializeRelations and ShouldSerializeTables for DataSet * DataTable.cs: Implemented missing methods CreateInstance and GetRowType for DataTable 2003-02-03 Ville Palo * DataSet.cs: Implemented private method MapType for mapping datatypes for XmlSchema 2003-02-03 Gonzalo Paniagua Javier * DataView.cs: implemented Dispose. 2003-01-30 Ville Palo * ExpressionElement.cs: Added new file. This file is for parsing and DataData.Select () -methods and DataColumn.Expression -property * DataTable.cs: Implemented Select(string) -method 2003-01-28 Ville Palo * DataSet.cs: One little fix to writing xml 2003-01-27 Ville Palo * XmlSchemaMapper.cs: Some fixes. * DatSet.cs: Some XmlFixes and BeginInit ()/ EndInit () -fix 2003-01-24 Ville Palo * UniqueConstraint.cs: Do not set columns Unique property true as a default. * ForeignKeyConstraint.cs: Add UniqueConstraint to parent Table 2003-01-18 Ville Palo * DataTableCollection.cs: Now names new DataTable if it doesn't already have a name. 2003-01-17 Ville Palo * XmlSchemaMapper.cs: Improvments. * XmlConstaints.cs: Added more constants. * DataSet.cs: Improvments of reading and writing xml * DataColumn.cs: Added default values of properties. 2003-01-14 Ville Palo * XmlSchemaMapper.cs: Some improvments 2003-01-13 Ville Palo * DataRowCollection.cs: Added IndexOutOfRangeException * DataTableCollection.cs: Added OnCollectionChanging and OnCollectionChanged events. * DataSet.cs: Many fixes. Implemented Clone () and Copy () -methods * DataTable.cs: Implemented Copy () and Clone () methods. * XmlDataLoader.cs: some fixes. * XmlSchemaMapper.cs: comments. 2003-01-08 Gonzalo Paniagua Javier * DataColumnPropertyDescriptor.cs: store columnIndex in the .ctor. 2003-01-08 Gonzalo Paniagua Javier * DataColumnPropertyDescriptor.cs: fixed typo. * DataViewManagerListItemTypeDescriptor.cs: added new internal property to get the DataViewManager and removed TablePD class. * DataTablePropertyDescriptor.cs: TablePD class is now this one as suggested by danmorg. 2003-01-06 Ville Palo * XmlDataLoader.cs: Moved diffgram stuff to new internal class XmlDiffLoader. * XmlDiffLoader.cs: new class for diffgrams. Added handling of diffgr:Errors and some fixes and changed XmlReader to XPathNavigator. 2003-01-06 Gonzalo Paniagua Javier * DataView.cs: made dataViewManager internal. * DataViewManager.cs: use ICustomTypeDescriptor. We don't want the properties of the object, but the values of the columns present in a row. * DataViewManagerListItemTypeDescriptor.cs: implemented GetProperties, which returns a PropertyDescriptorCollection. Created a new class derived from PropertyDescriptor that treats Table as an object whose properties are DataRowView. 2003-01-04 Ville Palo * XmlSchemaMapper.cs: Added handling for Constraints, Attributes. 2003-01-04 Ville Palo * DataColumn.cs: ExtendedProperties is by default !null- 2003-01-04 Ville Palo * DataColumnCollection.cs: Add (DataColumn Column) -method didn't set column's ordinal. 2003-01-02 Ville Palo * DataSet.cs: * XmlDataLoader.cs: XmlReader closing fixes. * XmlSchemaReader.cs: Added support for ref= 2003-01-01 Ville Palo * DataSet.cs: - Added XmlReader and XmlWriter Closing. - Moved ReadXmlSchema stuff to new internal class XmlSchemaMapper. * XmlSchemaMapper.cs - Much better way IMHO to map xmlschema than the old one in DataSet.cs. Its, more flexible, cleaner, ... 2002-12-29 Ville Palo * XmlDataLoader.cs: Reading diffgrams. 2002-12-29 Ville Palo * DataRow.cs: Little fix to indexer and DataColumnCang* trigger fixes. * DataTable.cs: Added ChanginDataColumn () for triggering DataColumnChanging event 2002-12-28 Ville Palo * DataSet.cs: Indentations to WriteXmlSchema () and one little fix 2002-12-28 Ville Palo * DataSet.cs: Indentations to WriteXml () 2002-12-27 Ville Palo * DataSet.cs: * XmlDataLoader.cs: Moved ReadXml -stuff from DataSet.cs to new class XmlDataLoader.cs 2002-12-19 Ville Palo * DataSet.cs Implemented ReadXml with XmlReadMode.ReadSchema 2002-12-18 Ville Palo * DataSet.cs: Started to implement ReadXml-methods. 2002-12-17 Gonzalo Paniagua Javier * DataSet.cs: implemented DefaultViewManager and GetList. * DataViewManager.cs: a bit of work on IList and ITypedList needed by DataList in System.Web. * DataViewManagerListItemTypeDescriptor.cs: custom type descriptor for DataViewManager. 2002-12-16 Ville Palo * DataRow.cs * DataTable.cs: Fixed NullException (rollback -event) * DataSet.cs: WriteXml -method does not anymore write * DataRow.cs: * DataRowCollection.cs: Moved event triggering from DataRow to DataRowCollection. 2002-12-09 Ville Palo * DataSet.cs: Little fix to WriteTable () -method and DoReadXmlSchema () -method. 2002-12-06 Ville Palo * DataSet.cs: Clean up to reading xmlschema. This looks much better now (work better too), but it not working correctly yet. 2002-12-04 Ville Palo * DataRow.cs: * DataRowCollection.cs: Added some event handlins stuff. * DataSet.cs: Some fixes. * DataTable.cs: Added event handlers. 2002-11-30 Ville Palo * DataRowChangeEventArgs.cs: Implemented Action and Row properties 2002-11-30 Ville Palo * System.Data/DataRow.cs: Added internal property XmlDataID 2002-11-29 Ville Palo * DataSystem.Data.DataTableCollection.cs: Removed HashTable. There could be situations where DataTable is added to collection before it hava TableName. So using HashTable is impossible. 2002-11-19 Carlos Guzmán Álvarez * DataRow.cs: an object that is equal to null should be allowed to be set in this indexer too to be like .NET 2002-11-06 Daniel Morgan * DataColumnPropertyDescriptor.cs: added file * System.Data/DataRowView.cs: started implementation * DataTable.cs: stubbed more interfaces. Implemented IListSource.GetList() * DataView.cs: stubbed more interfaces. Implemented some properties and methods: GetEnumerator(), ITypedList.GetItemProperties, Item indexer, CopyTo() 2002-05-18 Nick Drochak * DataRow.cs: Fix typo.