2006-11-15 Nagappan A <anagappan@novell.com>
[mono.git] / mcs / class / System.Data / System.Data / ChangeLog
1 2006-11-15  Nagappan A  <anagappan@novell.com>
2
3         * DataTable.cs (RemotingFormat): Set the default value attribute
4         as SerializationFormat.Xml.
5         (OnTableNewRow, NewRowAdded): Implemented new function to raise an
6         event when a new row is added to the table.
7         (DataTableInitialized, OnTableInitialized): Implemented new
8         function to raise an event when a table is initialized.
9         (IsInitialized): Implemented public function to check whether a
10         table is initialized or not.
11         (OnTableClearing): Raise an event before the table is cleared.
12         (GetObjectData): Modified to public for .NET 2.0 implementation.
13         (Load): Implemented missing API to call the registered delegate
14         function on load exception.
15         (WriteXmlSchema): Implemented overloaded function to write the
16         hierarchy with XML Schema.
17
18 2006-11-15  Konstantin Triger <kostat@mainsoft.com>
19
20         * DataTable.cs: Fixed LoadDataRow scenarios.
21         * DataRowCollection.cs: Added override for AddInternal taking DataRowAction parameter.
22
23 2006-11-14  Konstantin Triger <kostat@mainsoft.com>
24
25         * DataColumn.cs: consider row version wen checking row.IsNull().
26
27 2006-10-18  Nagappan A  <anagappan@novell.com>
28
29         * ForeignKeyConstraint.cs (_validateColumns): Parent and child
30         columns can't be the same column - Exception, bug # 79689
31
32 2006-10-13  Nagappan A  <anagappan@novell.com>
33
34         * DataTable.cs (DeserializeConstraints): Fine tuned the
35         serialization and deserialization of constraints.
36
37         * DataRelationCollection.cs (Contains): Fixes bug
38         #79233. DuplicateNameException when two relations for different
39         DataTables in DataSet are defined
40
41 2006-10-06  Patrick Earl <mono@patearl.net>
42
43         * DataTable.cs, XmlTableWriter.cs, XmlSchemaWriter.cs, DataSet.cs:
44         Implemented DataTable.WriteXml
45
46 2006-09-26  Nagappan A  <anagappan@novell.com>
47
48         * DataTable.cs, DataSet.cs, DataColumn.cs, Constraint.cs,
49         DataRow.cs: Implementation of Binary Serialization /
50         Deserialization.
51
52         * DataTable.cs (RowsExist): Check rows based on version.
53
54         * DataRow.cs: Raise exception same as MS.NET. Thanks to
55         Hubert FONGARNAND <informatique.internet@fiducial.fr> for
56         providing this patch.
57
58 2006-09-07  Vladimir Krasnov <vladimirk@mainsoft.com>
59
60         * DataSet.cs: added 2.0 stubs to solve typed dataset porting issues
61
62 2006-08-30  Nagappan A  <anagappan@novell.com>
63
64         * DataRow.cs (EndEdit): DataRow.EndEdit emits RowChanged too
65         often. Fixes bug # 78885.
66
67 2006-08-14  Konstantin Triger <kostat@mainsoft.com>
68
69         * DataTableCollection.cs, DataRelationCollection.cs, DataRowCollection.cs,
70                 DataColumnCollection.cs: implemented specialized CopyTo() method.
71
72 2006-07-26  Nagappan A  <anagappan@novell.com>
73
74         * DataTable.cs (GetIndex): Fixes memory explode on
75         DataTable.Select - Bug # 77691.
76
77 2006-07-25  Nagappan A  <anagappan@novell.com>
78
79         * DataView.cs (OnRowCollectionChanged): On DataTable.Clear,
80         setting rowCache to empty DataRowView. Fixes bug # 78610.
81
82         * DataTable.cs (AcceptChanges): Raises Reset event. Fixes bug #
83         78610.
84
85 2006-07-20  Senganal T  <tsenganal@novell.com>
86
87         * MergeManager.cs :
88                 - Merge : moved the columntypecheck to AdjustSchema,
89                 Remove the unncessary calls to Table.ResetIndexes.
90                 - AdjustSchema : check for columntypes
91         Thanks to Deepak Kr Valechha for the patch
92
93 2006-07-17  Senganal T  <tsenganal@novell.com>
94
95         * DataView.cs :
96                 - ToTable : Implemented all the overloads
97                 - Equals : Implemented 
98                 - IBindingListView : Implemented the interface
99
100 2006-07-15  Senganal T  <tsenganal@novell.com>
101
102         * DataTableCollection.cs :
103                 - Contain,IndexOf,Remove,Add,Indexer : support for table
104                 namespace. Remove redundant checks in Remove/Add.
105
106 2006-07-14  Senganal T  <tsenganal@novell.com>
107         
108         * DataColumn.cs :
109                 - SetOrdinal : Implemented
110                 - Ordinal : added internal set
111         * DataColumnCollection.cs : 
112                 - Add : Set the column ordinals
113                 - MoveColumn : Changes the position of column in the
114                 collection
115
116 2006-07-14  Senganal T  <tsenganal@novell.com>
117
118         * DataTable.cs :
119                 - Merge - Implement the merge methods
120                 - Clone - Ensure column's DateTimeMode property is also copied
121         * DataColumn.cs :
122                 - DateTimeMode : Implemement
123                 - DataTypeMatches : Added. In 2.0 profile, test DateTime
124                 property when verifying column types.
125         * DataRelation.cs :
126                 - ctr :  For DateTime columns, check DateTimeMode property
127         * ForeignKeyConstraint.cs :
128                 - _validateColumns : For DateTime columns, check DateTimeMode
129                 property
130         * MergeManager : 
131                 - Merge : Added. Overload to merge two tables
132                 - ResolveColumns : Change the method to use a table instead of
133                 a DataSet
134                 - Renamed AdjustSchema to AdjustSchemaRelations
135
136 2006-07-13  Senganal T  <tsenganal@novell.com>
137
138         * DataSet.cs :
139                 - WriteTables : Remove some commented out code
140                 - WriteTable : Fix the logic to skip the table data when the
141                 table has a nested relation.
142                 fixes bug #78842
143
144 2006-07-12  Senganal T  <tsenganal@novell.com>
145
146         * ConstraintCollection.cs : 
147                 - Remove (string): If constraint name is not found, throw exception
148                 - Remove (Constraint): Set the ConstraintCollection of the removed
149                 Constraint to null.
150         Thanks to Deepak Kr Velachha for reporting the bug.
151
152 2006-07-12  Senganal T  <tsenganal@novell.com>
153
154         * XmlDiffLoader.cs : 
155                 - LoadColumnChildren : If schema name is missing, skip the
156                 element.
157         Thanks to Deepak Kr Velachha for identifying the bug.
158
159 2006-07-11  Senganal T  <tsenganal@novell.com>
160         
161         * XmlSchemaWriter.cs :
162                 - WriteTableType : If Relation.Nested is true, then nest the 
163                 table schemas. Correct the xml to add the table element within
164                 the <Sequence> element.
165                 - WriteChildRelations : Correct the Xml element name and
166                 attributes. Close the attribute correctly.
167
168         * XmlSchemaDataImporter.cs :
169                 - GenerateRelationship : When creating the relations, if
170                 ParentColumn exists but Corr ChildCol is null, create a child
171                 Column with the same name and type as the parent column.
172                 - Renamed DataSetDefinesPrimaryKey to DataSetDefinesKey
173                 - DataSetDefinesKey : if either xsd:key or xsd:keyref is
174                 defined for the dataset, do not manually create the relations.
175                 - AddParentKeyColumn : if Columnname already exists, use
176                 colname_0 instead of throwing an exception.
177                 - FillDataColumnRepeatedSimpleElement : Do not set the Unique
178                 value as it creates a constraint by default. The unique value
179                 is automatically set when pk is set.
180                 - CreateChildColumns : Added. Creates a ChildColumn duplicating 
181                 ParentColumn properties.
182
183 2006-06-30  Senganal T  <tsenganal@novell.com>
184
185         * DataRow.cs : 
186                 - SetAdded, SetModified : new methods in 2.0
187
188 2006-06-30  Senganal T  <tsenganal@novell.com>
189         * SerializationFormat.cs, DataSetDateTime.cs, DataTableNewRowEventArgs.cs,
190         DataTableNewRowEventHandler.cs : Added 
191         * SyntaxErrorException.cs EvaluateException.cs StrongTypingException.cs 
192         IsolationLevel.cs ReadOnlyException.cs DataTableCollection.cs 
193         DataRowState.cs MissingPrimaryKeyException.cs DeletedRowInaccessibleException.cs 
194         DuplicateNameException.cs PropertyAttributes.cs StatementType.cs 
195         VersionNotFoundException.cs FillErrorEventHandler.cs DataRowChangeEventHandler.cs 
196         XmlWriteMode.cs InvalidExpressionException.cs StateChangeEventHandler.cs 
197         DbType.cs DataColumnChangeEventHandler.cs KeyRestrictionBehavior.cs 
198         ConnectionState.cs SchemaType.cs MergeFailedEventHandler.cs SqlDbType.cs 
199         DataRowVersion.cs ForeignKeyConstraint.cs DBConcurrencyException.cs 
200         OperationAbortedException.cs MissingSchemaAction.cs DataTableClearEventHandler.cs 
201         DataRowView.cs DataRowAction.cs ConstraintCollection.cs DataTableReader.cs 
202         LoadOption.cs InvalidConstraintException.cs InternalDataCollectionBase.cs 
203         ParameterDirection.cs AcceptRejectRule.cs UpdateRowSource.cs XmlReadMode.cs 
204         TypedDataSetGenerator.cs RowNotInTableException.cs TypeDataSetGeneratorException.cs
205         InRowChangingEventException.cs  MissingMappingAction.cs NoNullAllowedException.cs 
206         CommandBehavior.cs PropertyCollection.cs CommandType.cs 
207         UpdateStatus.cs ConflictOption.cs DataViewRowState.cs  Rule.cs 
208         DataColumnCollection.cs :
209                 2.0 api fixes.
210
211 2006-06-27  Senganal T  <tsenganal@novell.com>
212
213         * DataSet.cs, DataTable.cs : implement CreateDataReader methods 
214         * InternalDataCollectionBase.cs
215                 - ToArray () : helper method
216         * DataTableReader.cs : 
217                 - GetSchemaTable : set the schema info correctly
218                 - GetProvider*, GetChars, GetBytes, GetValues :
219                         Implemented the methods
220                 - GetName : return the name of corresponding schema.
221                 - ValidateSchemaIntact, OnColumnCollectionChanged, 
222                 OnColumnChanged :
223                         Listen and raise expception if schema changes
224
225 2006-06-21  Chris Toshok  <toshok@ximian.com>
226
227         * DataView.cs: update the index after we successfully add the new
228         row.  This keeps the dataview's row view count in sync with the
229         table.
230
231 2006-06-20  Chris Toshok  <toshok@ximian.com>
232
233         * DataView.cs: the PropertyDescriptorCollection returned by
234         ITyepdList.GetItemProperties should include the child relations of
235         our table, in order to match MS's behavior.
236
237         * DataViewManager.cs: ICollection.Count property is always 1.
238
239 2006-06-15  Senganal T  <tsenganal@novell.com>
240
241         * DataTable.cs :
242                 - Select : If Sort String is not provided, sort the result
243                 DataRows in Ascending Order of the Columns used in the filter
244
245 2006-06-15  Senganal T  <tsenganal@novell.com>
246
247         * DataSet.cs :
248                 - InternalEnforceConstraints : Check if any null constraints 
249                 are violated. Throw ConstraintException only after all the errors
250                 are filled.
251         * DataTable.cs :
252                 - EnforceConstraints : Move away the logic to check for 
253                 NullConstraintViolation.
254                 - AssertNotNullConstraint : Checks for Null Constraint
255                 Violation.
256                 - EndLoadData : Do not throw any exceptions here. All the
257                 errors have to be found and RowErrors set before throwing the
258                 exception.
259         * DataRow.cs :
260                 - ImportRecrod : Check the values of the row for any null
261                 values.
262                 - SetColumnError : If the error for column is already set,
263                 do not add a new error but edit the existing error. 
264                 - CheckValue : Set the NullConstraintViolation flag if either
265                 table is being loaded or if EnforceConstraints is set to
266                 false.
267         * Constraint.cs : Do not throw exception when EnforceConstraints is
268         set to false or table is being loaded.
269         * UniqueConstraint.cs : Correct the error message. Set ColumnErrors
270         along with the RowError.
271
272 2006-05-31  Gert Driesen  <drieseng@users.sourceforge.net>
273
274         * DataTable.cs: Renamed initInProgress to fInitInProgress. BeginInit
275         and EndInit must only be virtual in 2.0 profile. Set eol-style to CRLF.
276
277 2006-05-31  Senganal T  <tsenganal@novell.com>
278
279         * XmlDataInferenceLoader.cs :
280                 - InferTableElement : Repeated element should result in a single
281                 inferred table.
282         Patch from Deepak Kr Velachha 
283
284 2006-04-21  Senganal T  <tsenganal@novell.com>
285
286         * DataRowCollection.cs :
287                 - Find : If search on the table using PrimaryKey fails and if
288                 index is not being maintained (during table load), search the 
289                 entire table.
290                 - Find (int) : Removed. Deadcode. 
291                 - Clear :
292                         - Not necessary to delete each row from the Index.
293                         Just reset the Indexes after cleaning up the row
294                         collection.
295                         - Simplify dependency check for child tables
296         * DataTable.cs :
297                 - LoadDataRow : 
298                         - Do not use DataRowCollection.Find to search for
299                         existing records as this wud check even newly loaded rows.
300                         Use Index.Find.
301                         - Do not add new records to Index. Update Index only
302                         if an existing record is modified. New records will be
303                         taken care by EndLoadData.
304
305 2006-04-19  Senganal T  <tsenganal@novell.com>
306
307         * XmlHelper.cs : A helper class for encoding/decoding schema names.
308         Caches the Schema names to minimize encoding/decoding operations and
309         duplicate strings created.
310         * XmlSchemaWriter : 
311                 - Use XmlHelper for encoding/decoding schema names.
312                 - Encode ConstraintNames when writing as xml.
313         * DataSet.cs
314         * XmlDataReader.cs
315         * XmlDataInferenceLoader.cs
316         * XmlSchemaDataImporter.cs
317                 - Use XmlHelper for encoding/decoding schema names.
318         * DataTableCollections : Minor code refactor.
319         * DataRow.cs : Create XmlElement only if required.
320
321 2006-04-07  Senganal T  <tsenganal@novell.com>
322
323         * DataSet.cs :
324                 - InternalEnforceConstraints() : Reset Indexes of all tables
325                 before validating constraints. Fixes #78010
326
327 2006-03-04      Boris Kirzner <borisk@mainsoft.com>
328         * TypeDataSetGeneratorException.cs: fix .Net Soap serialization compatibility.
329
330 2006-03-25  Senganal T  <tsenganal@novell.com>
331
332         * DataRow.cs : 
333                 - RejectChanges : When row is in Deleted state, add the row back to
334                 Indexes and Validate the row.
335
336
337 2006-03-23  Senganal T  <tsenganal@novell.com>
338
339         * DataTable.cs : 
340                 - LoadDataRow : Add the row to the indexes, when loading a new row.
341
342 2006-03-22  Senganal T  <tsenganal@novell.com>
343
344         * DataTable.cs :
345                 - PrimaryKey : Set the IsPrimaryKey attribute before Removing from collection.
346                 - RemoveUniqueConstraints : Removed. dead code.
347         * DataColumn.cs :
348                 - Unique : 
349                         - If adding/removing constraint fails, retain Unique value
350                         - Remove redundant code
351         * UniqueConstraint.cs :
352                 - SetIsPrimaryKey : Added. Sets the value of IsPrimaryKey.
353                 - RemoveFromConstraintCollectionCleanup : If constraint is on a single column, then
354                 set Unique for that column to false.
355                 - CanRemoveFromCollection : Do not remove constraint, if its a PrimaryKey
356
357 2006-03-20  Senganal T  <tsenganal@novell.com>
358
359         * DataSet.cs :
360                 - CopyRelations () : When copying the relation, do not add constraints
361                 automatically for the relation.
362                 - OnMergeFailed () : If merge fails and no handler is set for the MergeFailedEvent,
363                 then throw DataException 
364         * ConstraintCollection.cs :
365                 - Add () : Check if a constraint already exists on the Columns that are being 
366                 constrained.
367                 - IndexOf () : Do not check for equivalent constraints, check for the exact instance.
368         * MergeManager.cs (): 
369                 -  AdjustSchema () : 
370                         - Handle the MissingSchemaAction.Error case, 
371                         - Do not create constraints when mergin the DataRelation
372                         - Follow the semantics for schema merge/validation  when constraints are already present
373                         in the target DataSet.
374                 - AdjustPrimaryKeys () :
375                         - Code cleanup
376                         - Verify Order of Columns in the PrimaryKey when merging.
377                 - ResolveColumns : Changed the arument to DataSet. Simplifies code elsewhere.
378                 - CompareColumnArrays, CompareColumnArrays : Helper funtions.
379                 
380 2006-03-09  Senganal T  <tsenganal@novell.com>
381
382         * DataRow.cs :
383                 - RejectChanges () :  Add the row to index, if it was in deleted state and
384                 Update the index if in Modified State.
385                 - AcceptChanges () : Do not update the Indexes.
386                 - EndEdit () : Update the indexes even if BeginLoadData has been called
387                 on the table. Ideally, indexes should not be maintained during DataLoad,
388                 but this needs to handled in multiple places correctly. For now, just maintain
389                 the index to ensure correct operation.
390         
391 2006-03-05  Senganal T  <tsenganal@novell.com>
392
393         * DataSet.cs :
394                 - BeginInit (), EndInit () : Implemented methods
395                 - InitInProgress : Added.
396         * DataTable.cs
397                 - EndInit () : Move the adding of columns and constraints
398                 to FinishInit.
399                 - FinishInit () : Added. Adds the Constraints and Columns
400                 to the collection.
401                 - InitInProgress : Added.
402         * Constraint.cs
403                 - FinishInit () : Added. Virtual method
404                 - InitInProgress : Added. Virtual property
405         * UniqueConstraint.cs
406         * ForeignKeyConstraint.cs
407                 - FinishInit () : Added.
408                 - InitInProgress : Added.
409                 - DataColsNotValidated : Removed.
410         * ConstraintCollection.cs
411                 - PostAddRange : Removed event
412                 - PostEndEdit () : Renamed to PostAddRange
413                 - Add () : Simplified the testing if constraint is initialized
414                 - AddRange () : Simplified initializing the constraints
415         * DataTableCollection.cs
416                 - PostAddRange () : Added. Adds the tables to the collection
417         * DataColumnColletion.cs
418                 - PostEndInit () : Renamed to PostAddRange.Also, add column to
419                 the collection only if not null.
420  
421         Added/Implemented methods for design time support. Renamed some methods for consistency
422         in naming across classes for methods serving the same purpose. 
423
424 2006-02-24  Senganal T  <tsenganal@novell.com>
425
426         * UniqueConstraint.cs :
427                 - ChildConstraint : Added. Simplifies verifying if constraints are
428                 related.
429                 - CanRemoveFromCollection : Fixed the check to verify if constraints is
430                 linked to a ForeignKeyConstraint. Fixes #77630
431         * ForeignKeyConstraint.cs :
432                 - _validateRemoveParentConstraint : Removed. Not used anymore
433                 - ParentConstraint : Added. Simplifies verifying if constraints are
434
435 2006-02-22  Senganal T  <tsenganal@novell.com>
436
437         * DataRow.cs 
438                 - RejectChanges : Do not remove Row from Indexes when state is Deleted.
439                 - CheckChildRows : When checking for the ChildRows, use the current value
440                 and not the original value.
441
442 2006-02-18  Atsushi Enomoto  <atsushi@ximian.com>
443
444         * CustomDataClassGenerator.cs : Patch by Marek Habersack. xsd now
445           outputs AutoIncrement, AutoIncrementSeed, AutoIncrementStep and
446           ReadOnly properties. This fixes bug #77576.
447
448 2006-02-17  Chris Toshok  <toshok@ximian.com>
449
450         * System.Data/DataSet.cs, System.Data/DataView.cs,
451         System.Data/ForeignKeyConstraint.cs,
452         System.Data/DataViewManager.cs, System.Data/DataRow.cs,
453         System.Data/DataSysDescriptionAttribute.cs,
454         System.Data/UniqueConstraint.cs, System.Data/DataTable.cs,
455         System.Data/DataRelation.cs: lots of attribute work, removing
456         DataSysDescription atributes (and marking the class obsolete) for
457         2.0.
458
459 2006-02-17  Chris Toshok  <toshok@ximian.com>
460
461         * DataAdapterException.cs: remove this file.
462         
463 2006-02-17  Chris Toshok  <toshok@ximian.com>
464
465         * DataTableReader.cs: Switch to the (bool) form of Dispose to
466         override, as the no-arg form isn't virtual.
467
468         * Constraint.cs: #ifdef out more DataSysDescriptions.
469
470         * ConstraintException.cs: add ..ctor (string, Exception) for 2.0.
471
472 2006-02-17  Chris Toshok  <toshok@ximian.com>
473
474         * DataColumn.cs: #ifdef all the DataSysDescriptions !NET_2_0.
475
476         * AdapterMappingException.cs: nuke this file.
477
478         * IDbAsyncConnection.cs, IDbAsyncCommand.cs, IGetTypedData.cs,
479         ISetTypedData.cs, IDataReader2.cs, IDataSources.cs,
480         IDbExecutionContext.cs, IDataRecord2.cs, IDataUpdatableRecord.cs:
481         remove these 2.0 files.
482
483 2006-02-17  Chris Toshok  <toshok@ximian.com>
484
485         * ConstraintCollection.cs: in 2.0, class is not serializable and
486         is sealed.  make all the "virtuals" #if !NET_2_0 as well.
487
488         * Constraint.cs: not serializable in 2.0.
489
490         * DataColumnCollection.cs: in 2.0, class is not serializable and
491         is sealed.  make all the "virtuals" #if !NET_2_0 as well.
492
493         * DataRelationCollection.cs: not serializable in 2.0.
494
495         * DataRelation.cs: not serializable in 2.0.
496
497         * DataRowBuilder.cs: class is sealed in 2.0.
498
499         * DataRowCollection.cs: in 2.0, class is not serialized and is
500         sealed.  Also, Add isn't virtual in 2.0 (as the class is sealed).
501
502         * DataRow.cs: not serializable in 2.0.
503
504         * DataSet.cs: remove some DataSysDescriptions from the 2.0 build,
505         and s/GetDataReader/CreateDataReader.
506
507         * DataTableCollection.cs: in 2.0, class is not serializable and is
508         sealed.  make all the "virtuals" #if !NET_2_0 as well.
509
510         * DataTableReader.cs: remove VisibleFieldCount property.
511
512         * DataViewSettingCollection.cs: not serializable in 2.0.
513
514         * DataViewSetting.cs: not serializable in 2.0.
515
516         * ForeignKeyConstraint.cs: serializable in 2.0.
517
518         * OperationAbortedException.cs: class is sealed and serializable.
519
520         * PropertyCollection.cs: serializable in 2.0.
521
522         * StatementCompletedEventArgs.cs: class is sealed.
523
524         * UniqueConstraint.cs: not serializable in 2.0.
525
526 2006-02-16  Senganal T  <tsenganal@novell.com>
527
528         * XmlSchemaWriter :
529                 WriteDataSetElement : Add an annotation element if exists.
530                 WriteDataRelationAnnotation : New. Write a DataRelation as an annotation.
531                 WriteConstraints : Write ForeignKeyConstraint even when not associated with
532                         a DataRelation and add a "ConstraintOnly=true" attribute for such constraints.
533         * XmlConstants.cs : Add a new constant - ConstraintOnly
534         * XmlSchemaImporter.cs :
535                 - ConstraintStructure : Add field ,IsConstraintOnly, to distinguish if a foreignkeyconstraint
536                         is related to relation or not.
537                 - GenerateRelation : Handle the case when parentkey and childkey contain multiple columnnames.
538
539 2006-02-11  Senganal T  <tsenganal@novell.com>
540         
541         * UniqueConstraint.cs :
542                 - PostAddRange : Check PrimaryKey is not already set for the table
543         * DataTable.cs :
544                 - PrimaryKey : follow ms.net behavior when BeginInit , EndInit is used.
545                         - Add new priamry key only when EndInit is called.
546                         - Incase of an error, retain old primarykey 
547                 - EndInit :
548                         - Add Constraints after columns are added.
549                         - If both PrimaryKey Property and PrimaryKey Constraint are set,
550                         then the Constraint takes precedence.
551                 fixes bug #77404
552
553 2006-02-03  Senganal T  <tsenganal@novell.com>
554
555         * DataTableCollection.cs : 
556                 - Remove () : Check for invalid TableName
557                 - Add () : Verify the table doesn't belong to another dataset
558         * DataView.cs :
559                 - CompleteLastAdded () : Do not raise ItemAdded Event as it is
560                         already raised in AddNew().
561         * DataColumn.cs :
562                 - Expression : Verify that the Column names in the expression are valid 
563                 - ResetCollectionInfo : Renamed to ResetColumnInfo
564         * DataRow.cs :
565                 - RejectChanges () : Reorganized the code to do the Right thing.
566                 - Item  : Dont check for detached and deleted rows as these are
567                         done elsewhere.
568         * DataRowCollection.cs :
569                 - Add () : Check for null value
570         * DataTable.cs :
571                 - PrimaryKey : Set AllowDBNull=false for all the key columns
572                 - ImportRow : Import the row only if it is not in Detached state. if in Deleted
573                         state, perform the validation when AcceptChanges/RejectChanges is called.
574         * DataColumnCollection.cs :
575                 - Add : Validate the column expression before adding it to the collection.
576                 - GetColumnDependency () : New. Get the dependencies on the column 
577                 - CanRemove : Move checks to GetColumnDependency
578                 - Clear () : Simplified code. Remove unncessary checks.Also, dont check Expression col.
579                 - IndexOf - Check argument.
580                 Overall , appropriate error msg's are thrown if Remove/Clear fails. Removed a few
581                 redundant checks performed and moved the common code to GetColumnDependency.
582
583 2006-01-31  Senganal T  <tsenganal@novell.com>
584
585         * DataSet.cs : Modified CopyRelations ()
586                 - Added code to copy ForeignKeyConstraints. Fixes #77411.
587         
588 2006-01-18 Boris Kirzner <borisk@mainsoft.com>
589         * DataColumn.cs: added PropertyCchangedEvent handling.
590
591 2006-01-17  Senganal T  <tsenganal@novell.com>
592         
593         * DataRow.cs:
594                 ItemArray : Modified to raise RowInTableException only if
595                 the concerned row has been removed from the table.Fixes 
596                 bug #77267
597
598 2006-01-16 Boris Kirzner <borisk@mainsoft.com>
599         * DataTable.cs: Drop dependend indexes on column removal.
600
601 2006-01-16  Atsushi Enomoto  <atsushi@ximian.com>
602
603         * CustomDataClassGenerator.cs :
604           When a DataRelation connects the same table as parent and child,
605           generate parent row property as BlahRowParent. Fixed bug #77248.
606
607 2006-01-10  Senganal T <tsenganal@novell.com>
608         * DataRowCollection.cs
609                 - Added ListChangedEvent to notify reset of the collection.
610         * DataView.cs
611                 - Subscribes to the ListChangedEvent of DataRowCollection
612                 Fixes bug #77188
613
614 2006-01-09  Senganal T <tsenganal@novell.com>
615         * RelatedDataView.cs
616         * DataColumn.cs
617                 - Resolving a name clash in IExpression
618
619 2006-01-06  Senganal T <tsenganal@novell.com>
620         
621         * DataColumn.cs
622         * DataColumnCollection.cs
623                 - Reset the Parameters of DataColumn to Default Values when 
624                 column is removed from the Table's Collection
625
626 2006-01-03  Senganal T <tsenganal@novell.com>
627
628         * DataTable.cs :
629                 - ParseSortString() : Changed the way the sort string is parsed.
630                 Using a regex to parse the string.Fixes bug #77104
631
632 2005-12-12  Konstantin Triger <kostat@mainsoft.com>
633
634         * DataRow.cs: Added index Updates.
635                 EndEdit() fixed to first update indices and then AssertConstraints
636                 based on those indices.
637                 Added Validate() and AssertConstraints() functions.
638         * DataRowCollection.cs: Removed ValidateDataRowInternal().
639         * DataTable: Fixed Clear().
640
641 2005-12-06  Atsushi Enomoto  <atsushi@ximian.com>
642
643         * CustomDataClassGenerator.cs : (InitializeFields) handle AllowDBNull
644           and DefaultValue as well. Patch by Marek Habersack (bug #76709).
645
646 2005-12-01  Miguel de Icaza  <miguel@novell.com>
647
648         * DataSet.cs: Apply patch from Robert Jordan, to fix #76817
649
650 2005-11-26  Konstantin Triger <kostat@mainsoft.com>
651
652         * ConflictOption.cs: TARGET_JVM include.
653
654 2005-11-11  Senganal T <tsenganal@novell.com>
655         
656         * ConflictOption.cs (new file)
657                 - Added ConflictOption Enumeration 
658         * DataTableReader.cs
659         * IDataRecord2.cs 
660                 - GetProviderSpecificFieldType : Corrected the method name
661
662 2005-11-11  Senganal T <tsenganal@novell.com>
663
664         * DataSet.cs : Added the SchemaSerializationMode Property for NET_2_0
665         compatibility.
666         * SchemaSerializationMode.cs : Added SchemaSerializationMode Enumeration
667         for NET_2_0 compatibility.
668
669         Fixes bug #76517
670
671 2005-10-20  Atsushi Enomoto  <atsushi@ximian.com>
672
673         * XmlSchemaWriter.cs : escape names in the schema with XmlConvert.
674           Fixed bug #76480.
675
676 2005-10-14  Sureshkumar T  <tsureshkumar@novell.com>
677
678         * DataView.cs: Correct multiple throwing of events. Patch from
679         Marc Haisenko.
680         (RowStateFilter): Fire ListChangedEvent.
681         (ApplyDefaultSort): Fire ListChangedEvent.
682         (CompleteLastAdded): call UpdateIndex to remove the row from rowCache.
683         (IBindingList.Find): Implemented.
684
685 2005-10-11  Sureshkumar T  <tsureshkumar@novell.com>
686
687         * DataView.cs (IBindingList): Implemented methods for IBindingList interface.
688
689 2005-09-26  Lluis Sanchez Gual <lluis@novell.com>
690
691         * DataSet.cs: In IXmlSerializable.GetSchema, return null again for
692         untyped datasets. Fixes bug #76101.
693
694 2005-09-21 Boris Kirzner <borisk@mainsoft.com>
695         * DataRow.cs: Fixes for index updating.
696         * DataTable.cs: 
697                 - Reset case-sensitive indexes also if their filter contains columns 
698                 of type string.
699                 - Use GetIndex instead of FindIndex, so the indexes created in Select()
700                 are reused. 
701         * RelatedDataView.cs: implement IExpression.Equals() and GetHashCode().
702         
703 2005-09-20  Sureshkumar T  <tsureshkumar@novell.com>
704
705         * DataView.cs (Sort): Apply default Sorting Order if Sort property
706         is reset to null. Sort property handles this. Patch from Marc.
707
708         * DataTable.cs (ParseSortString): Patch from  Marc Haisenko for
709         allowing [ & ] in DataView.Sort string.
710
711 2005-09-01 Boris Kirzner <borisk@mainsoft.com>
712         * System.Data/DataRowCollection.cs: indexes should be updated even if 
713         EnforceConstraints is false. Check for EnforceConstraints in
714         ValidateDataRowInternal.
715
716 2005-08-08  Gert Driesen  <drieseng@users.sourceforge.net>
717
718         * DataView.cs: Changed accessibility of dataTable, rowState and
719         rowCache field to internal to fix public API. Assigned TypeConverter
720         to Table property.
721         * ForeignKeyConstraint.cs: IsConstraintViolated is now internal.
722         * Constraint.cs: IsConstraintViolated is now internal.
723         * UniqueConstraint.cs: IsConstraintViolated is now internal.
724
725 2005-08-05  Atsushi Enomoto  <atsushi@ximian.com>
726
727         * XmlSchemaDataImporter.cs : When "dataset element" has identity
728           constraints, then first reserve constraints room for them and then
729           process elements, skipping pkey creation if there is already
730           reserved one. Fixed bug #75711.
731
732 2005-08-05  Atsushi Enomoto  <atsushi@ximian.com>
733
734         * XmlDataInferenceLoader.cs : in GetElementMappingType(), don't guess
735           the same (QNamed) element again when it was already evaluated as
736           not simple type. Fixed one part of bug #75711.
737
738 2005-08-02 Boris Kirzner <borisk@mainsoft.com>
739         * XmlSchemaDataImporter.cs : Data relations should be processed after the
740         keys, so no redundant constraints created while relations processing.
741
742 2005-07-25 Boris Kirzner <borisk@mainsoft.com>
743         * FillOptions.cs, ConflictOptions.cs, UpdateOptions.cs: 
744         added ifdef TARGET_JVM.
745
746 2005-07-22  Sureshkumar T  <tsureshkumar@novell.com>
747
748         * DataViewSettingCollection.cs, DataTableCollection.cs,
749         DataSet.cs, DataView.cs, DataColumn.cs, ForeignKeyConstraint.cs,
750         DataRelationCollection.cs, UniqueConstraint.cs, DataTable.cs,
751         DataColumnCollection.cs, DataRelation.cs, DataSet.cs:
752         - updated attributes & attribute descriptions to match with
753         masterinfos.
754
755         * DataView.cs: changed protected members
756         rowstate,rowcache,dataTable to protected internal.
757         * Constraint.cs, ForeignKeyConstraint.cs, UniqueConstraint.cs:
758         changed InConstraintViolated to protected internal.
759         * ConflictOptions.cs, UpdateOptions.cs, FillOptions.cs: enclosed
760         with NET_2_0 define.
761
762 2005-07-21  Sureshkumar T  <tsureshkumar@novell.com>
763
764         * ForeignKeyConstraint.cs: 
765         - IsConstraintViolated (): no matter what EnforceConstraints is,
766         this function now honestly validates. It is upto the caller to run
767         this or not.
768         - AddToConstraintCollectionSetup (): AssertConstraint according to
769         EnforceConstraints.
770         
771 2005-07-21 Boris Kirzner <borisk@mainsoft.com>
772         * ForeignKeyConstraint.cs - IsConstraintViolated() should check also for Table.EnforceConstraints.
773         * DataTable.cs - EnforceConstraints becomes internal so it can be used by ForeignKeyConstraint.
774
775 2005-07-19  Sureshkumar T  <tsureshkumar@novell.com>
776
777         * DataTable.cs - CopyConstraints (): copy constraints only if it
778         does not exist.
779
780         * DataSet.cs - Copy ():
781         - use activator.CreateInstance to create a typed dataset.
782         - copy tables if target does not exist, otherwise, just add rows.
783         - add relation only if it does not exists.
784
785         Typed datasets create the constraints & relations through
786         constructors. Fixes bug #75211.
787
788 2005-07-14  Sureshkumar T  <tsureshkumar@novell.com>
789
790         * DataView.cs: Patch from Marc Haisenko to throw descriptive error
791         message when accessing Item, with invalid index.
792
793 2005-07-14  Sureshkumar T  <tsureshkumar@novell.com>
794
795         reapplied patch from Marc Haisenko.
796         * DataView.cs: Patch from Marc Haisenko that ensures that rowCache
797         is never null.
798
799 2005-07-13  Sureshkumar T  <tsureshkumar@novell.com>
800
801         * DataRelationCollection.cs: adding a relation with same set of
802         parent columns & child columns, should not be allowed.
803
804 2005-07-08  Sureshkumar T  <tsureshkumar@novell.com>
805
806         * DataTableReader.cs: GetSchemaTable: DataType column should be
807         passed a type of Type.
808
809         * DataRow.cs: Load : Fired necessary events.
810
811         * DataTable.cs: LoadDataRow (object [], LoadOption): Fired
812         necessary events.
813
814 2005-06-28  Sureshkumar T  <tsureshkumar@novell.com>
815
816         * DataRow.cs: Delete (): if row is detached, do nothing.
817         fixes bug #75388.
818
819 2005-06-22  Sureshkumar T  <tsureshkumar@novell.com>
820
821         * DataRow.cs: Added method MergeValuesToRow copy merge two rows
822         according to the merge rules.
823
824         * MergeManager.cs: (MergeRow): use MergeValuesToRow
825         API. CopyValuesToRow simply makes the target row same as source
826         row. Rather, MergeValuesToRow merges with the target row according
827         to the merge rules.
828
829 2005-06-19  Konstantin Triger <kostat@mainsoft.com>
830
831         * DataSet.cs: Fixed ReadXml to work with IXmlSerializable
832
833 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
834
835         * DataViewManager.cs: fixes exception and creates DataView
836
837 2005-06-15  Sureshkumar T  <tsureshkumar@novell.com>
838
839         * DataRow.cs: CheckChildRows: cascade parent changes to child rows
840         only if there is a change in columns of the fk constraint.
841
842 2005-06-14  Sureshkumar T  <tsureshkumar@novell.com>
843
844         * DataSet.cs: GetChanges: if row is deleted, get parent rows based
845         on original version. fixes bug #75227.
846
847 2005-06-13  Sureshkumar T  <tsureshkumar@novell.com>
848
849         * DataRowCollection.cs: Find (keys, version): Added an overload to
850         find keys matching given DataViewRowState filter. Used in
851         DataSet.Merge and DataTable.LoadDataRow.
852
853         * DataTable.cs: LoadDataRow (values, LoadOption): Use
854         DataRowCollection.Find (object [], DataViewRowState) overload.
855
856         * DataRow.cs:
857         - CopyValuesToRow: Create target "records" out of loop. Records
858         should be created once, not for each column. Dispose Unused target
859         records.
860
861         * MergeManager.cs:
862         - MergeRow: Find rows with matching original records. If not,
863         select with current values.
864         - MergeRow: While adding new row, use NewNotInitializedRow.
865
866         * ForeignKeyConstraint.cs: IsConstraintViolated: should not check
867         if EnforceConstraints is false.
868
869 2005-06-10  Sureshkumar T  <tsureshkumar@novell.com>
870
871         * DataRow.cs: CopyValuesToRow: if orginal == current, don't create
872         a new current record.
873
874         * DataSet.cs: GetChanges :Temporarily disable EnforceConstraints.
875
876         * MergeManager.cs: Merge: Temporarily disable
877         EnforceConstraints. Patch from george.barbarosie@gmail.com (George
878         Barbarosie).
879
880 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
881
882         * DataView.cs: fixes GetListName
883
884 2005-06-02  Atsushi Enomoto  <atsushi@ximian.com>
885
886         * XmlSchemaConstants.cs,
887           XmlSchemaDataImporter.cs,
888           XmlSchemaWriter.cs : AutoIncrementStep support. Patch partly by
889           George Barbarosie. Fixed bug #75121.
890         * XmlSchemaMapper.cs : it is not used anymore, so just removed.
891
892 2005-05-31 Boris Kirzner <borisk@mainsoft.com>
893         * DataRow.cs : SetParentRow on Detached row with no Default version throws an exception.
894         
895 2005-05-29 Konstantin Triger <kostat@mainsoft.com>
896
897         * This patch fixes #74813
898         * DataView.cs: rework the CreateChildView to receive the index into the indexed row array, rowState became protected to be initialized from RelatedDataView
899         * DataRowView.cs: movo the logic of creating the child view to the DataView
900         * RelatedDataView.cs: perform correct init.
901
902 2005-05-25  Sureshkumar T  <tsureshkumar@novell.com>
903
904         * DataTable.cs: Reworked DataTable.LoadDataRow method after
905         regressions caused by Index redesign.
906         * DataRow.cs: Load : reworked.
907
908 2005-05-25 Konstantin Triger <kostat@mainsoft.com>
909
910         * ISafeDataRecord.cs: Added GetDateTimeSafe method, the interface was made derived from IDataRecord
911
912 2005-05-22 Konstantin Triger <kostat@mainsoft.com>
913
914         * 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
915
916 2005-05-20  Sureshkumar T  <tsureshkumar@novell.com>
917
918         * DataTable.cs: CreateRecord :value should be set to auto
919         increment value or default value if the given value is null.
920
921 2005-05-16 Konstantin Triger <kostat@mainsoft.com>
922
923         * DataTable.cs: In DataTable.LoadDataRow with LoadOption - reverting the search order back to Original -> Current (by Suresh request)
924
925 2005-05-16 Konstantin Triger <kostat@mainsoft.com>
926
927         * DataRow.cs, DataTable.cs: code under net_2_0 changed to use the new interface
928         * DataTable.cs: Added CompareRecords, which compares records in column order
929
930
931 2005-05-16  Sureshkumar T  <tsureshkumar@novell.com>
932
933         * DataRow.cs:
934         * DataTable.cs: quick fix to make build 2.0 profile (follow up for
935         check in 2005-05-16). Merge with previous changes.
936
937 2005-05-11  Sureshkumar T  <tsureshkumar@novell.com>
938
939         fix for "import row does not import deleted records"
940
941         * UniqueConstraint.cs: Make a way to access value even from a
942         deleted record. deleted records are added to the collection by
943         ImportRow method.
944
945         * DataRow.cs:
946         - Added restriction-less methods GetValue to fetch a
947         value even if it is in deleted state.
948         - If a row is detached, don't try to delete it from indexes.
949         - sanity check for record_index in CopyValuesToRow method
950
951 2005-05-05  Sureshkumar T  <tsureshkumar@novell.com>
952
953         * DataTableReader.cs: Implemented Delete handler and move the
954         current pointer accordingly.
955
956 2005-05-04  Sureshkumar T  <tsureshkumar@novell.com>
957
958         * DataTableReader.cs: Added event handlers to make reader stable
959         when the datasource is modified. Thanks to Umadevi for giving the
960         review comments for this implementation.
961
962         * DataTable.cs: Clear (): Raise TableCleared event.
963
964         * DataTableClearEventArgs.cs: Args for DataTableClearEventHandler.
965
966         * DataTableClearEventHandler.cs: Handler for DataTable.TableClear
967         event.
968
969         * DataRow.cs: AcceptChanges: raise row changing & row changed
970         events.
971
972         * DataRowCollection.cs: Clear : remove rows from indexes
973
974 2005-05-02  Atsushi Enomoto  <atsushi@ximian.com>
975
976         * XmlSchemaDataImporter.cs : XmlSchemaParicle might be XmlSchemaAny.
977           This fixes bug #74784.
978
979 2005-04-29  Sureshkumar T  <tsureshkumar@novell.com>
980
981         * DataTableReader.cs: removed use of _first. throw if given index
982         is out of range of columns. Copy DataTable [] to local array so
983         that not to be disturbed.
984
985 2005-04-27  Sureshkumar T  <tsureshkumar@novell.com>
986
987         * DataTableReader.cs: Implemented most of the TODO.
988
989 2005-04-22  Sureshkumar T  <tsureshkumar@novell.com>
990
991         * LoadOption.cs: Changed the enums. Keeping old values for
992         migration.
993
994         * DataTable.cs: Implemented methods Load and its overloads. Also
995         implemented LoadDataRow.
996
997         * DataRowCollection.cs: Added a variation of the Find method to
998         return a row even if it is of state Deleted. This is required for
999         DataTable.LoadDataRow method.
1000
1001         * DataRow.cs: Implemented internal helper method Load for loading
1002         values from an object array and given an LoadOption (2.0 feature).
1003
1004         * DataRowAction.cs: Added few more enums for .net 2.0. Sorted
1005         alphabetically.
1006
1007 2005-05-16 Konstantin Triger <kostat@mainsoft.com>
1008
1009         * UniqueConstraint.cs : IsNull check is relevant for rows having default row version.
1010         * DataTable.cs : The row should be validated when imported
1011         * DataRowCollection.cs : if the row does not contain Proposed neither Current version, it's irrelevant for validation
1012
1013 2005-04-26 Boris Kirzner <borisk@mainsoft.com>
1014
1015         * UniqueConstraint.cs :
1016                 - Add indication whenever the constraint belongs to collection. 
1017                 - Calculation of IsPrimaryKey simplified.
1018                 - If constraint is based on single column, the column becomes unique.
1019                 - Use boolean IsConstraintViolated() instead of AssertConstraint().
1020                 - Use Index.Duplicates to proper exception message formatting.
1021                 - AssertConstraint(DataRow) changed to suite new indexes interface.
1022                 - Added CanRemoveFromCollection method.
1023                 - Contains() method renamed to IsColumnContained().
1024         * RelatedDataView.cs : added new class.
1025         * MergeManager.cs :
1026                 - Reset indexes after merge.
1027                 - Add new tables when row array is merged into dataset.
1028                 - Clean proposed record in MergeRow.
1029                 - Inherit nesting on creating new relations in target data set.
1030                 - Avoid double loop on constraints collection.
1031         * Locale.cs : added new class.
1032         * ISafeDataRecord.cs : added new interface.
1033         * Index.cs : commented out. Index implementation moved to System.Data.Common.
1034         * ForeignKeyConstraint.cs : 
1035                 - No more use of childColumnsExtended since new indexes allow duplicate records.
1036                 - Constraints can not be created on expression columns.
1037                 - Removed unnecessary delegation.
1038                 - Use boolean IsConstraintViolated() instead of AssertConstraint(). 
1039                 - Use proper exception message formatting.
1040                 - Contains() method renamed to IsColumnContained().
1041         * DataViewRowState.cs : use enum members to simplify notation.
1042         * MergeManager.cs : implemented RelationCollectionChanged().
1043         * DataView.cs :  new implementation.
1044         * DataTableCollection.cs : 
1045                 - Added boundary check in indexer.
1046                 - More accurate handling in AddRange().
1047                 - Raise event in Remove().
1048         * DataTable.cs :
1049                 - Hold primary key as constraint.
1050                 - Added accurate handling of DefaultView.
1051                 - Hold DataRowBuilder per table.
1052                 - Proper exception messages if enforce Constraints is violated.
1053                 - If there is no rows, Compute() returns DBNull.
1054                 - Use DataRow properties instead of private members.
1055                 - CopyProperties() fixed.
1056                 - Raise proper events in EndInit().
1057                 - Proper order of violation checks in EndLoadData().
1058                 - Create array of rows using NewRowArray().
1059                 - ImportRow handles rows according to their versions.
1060                 - LoadDataRow make use of records (instead of raw object array).
1061                 - Added and implemented LoadDataRow() that gets IDataRecord as a parameter (used in Fill)
1062                 - Select() uses indexes filtering and sorting ability (instead of "loop-throw-sort" approach).
1063                 - Removed redundant RowSorter and Sortable column classes.
1064                 - ParseSortString() fixed to threat bracketed column names.
1065                 - Table holds collection of property descriptors.
1066         * DataSet.cs :
1067                 - Reset table case sensitive indexes on CaseSensitive change.
1068                 - EnforceConstraints update logic moved to internal method (used by DataTable).
1069                 - InAddChangedRow first add row and than copy values for proper handling of default values.
1070         * DataRowView.cs :
1071                 - Changed private member names to suite name convention.
1072                 - CancelEdit() fixed.
1073                 - CreateChildView() delegates to DataView.
1074                 - IsNew fixed.
1075                 - Proper exception messages in indexers.
1076                 - RowVersion uses DataView.
1077                 - GetProperties() delegates to corresponding table if needed.
1078         * DataRowCollection.cs :
1079                 - Common Add() logic moved to AddInternal() (used also by DataTable).
1080                 - Removed redundant check from Contains().
1081                 - Dalegate Find() calls when possible.
1082                 - Remove() fixed.
1083                 - RomoveAt() delegates to Remove().
1084                 - Optimized constraints check in row validation.
1085         * DataRelationPropertyDescriptor.cs : added new class.
1086         * DataRelationCollection.cs :
1087                 - Indexers fixed.
1088                 - Fixed order of actions in AddCore().
1089                 - RemoveCore() also delegates to base.
1090                 - Add relation to dataset also in AddCore().
1091                 - Remove relation from dataset also in RemoveCore().
1092                 - InTransition hold a data relation so we can properly identify the "in transition" state.
1093                 - Added threat of parent and child table s property descriptors in Add().
1094                 - Common Add() logic moved to AddCore().
1095                 - Clear() fixed.
1096                 - Remove() threats "in transition" state properly.
1097                 - Remove methods delegate to single implementation.
1098         * DataColumnPropertyDescriptior.cs :
1099                 - Added new constructor.
1100                 - Commented out redundant method.
1101         * DataColumnCollection.cs :
1102                 - Boundary check in indexer.
1103                 - RegisterName and UnregisterName become internal (used also by DataColumn).
1104                 - Fixed AddRange().
1105                 - Fixed CanRemove().
1106                 - Rethrow correct exception in Clear();
1107                 - Change in collection resets parent table property descriptors.
1108                 - Added PostEndEdit() helper method (used by DataTable).
1109         * DataColumn.cs :
1110                 - Private member names changed to suite name convention.
1111                 - Created method for CanAutoIncrement() logic.
1112                 - Proper handling of column name update.
1113                 - Proper exception messages on expression update.
1114                 - Proper namespace handling (delegates to table when needed).
1115                 - Removed redundant check in Unique update.
1116                 - Implemented internal Clone().
1117                 - GetParentRalation() and GetChildRelation() become private.
1118         * Constraint.cs :
1119                 - Added abstract methods (implemented in UniqueConstraint and ForeignKeyConstraint).
1120                 - Simplified index update.
1121         * ConstraintCollection.cs :
1122                 - Use Locale instead of CaseSensitive in column names comparison.
1123                 - Removed #ifdef
1124                 - Rethrow correct exception type in Add().
1125                 - Proper update of table primary key in Add().
1126                 - Delegate CanRemove() to constraint.
1127                 - Remove table primary key in Clear();
1128                 - Delegate "can remove" check to constraint in Remove().
1129                 - Removed unnecessary methods and properties.
1130         * DataRow.cs :
1131                 - RowSate becomes calculated property.
1132                 - Use properties instead of private members where possible.
1133                 - Fixed indexer.
1134                 - Fixed order of actions in ItemArray update.
1135                 - Fixed DetachRow().
1136                 - Added ImportRecord() method.
1137                 - Removed redundant SetValuesFromDataRecord().
1138                 - Fixed IndexFromVersion().
1139                 - Added VersionFromIndex() method. Returns row version the passed record index corresponds to.
1140                 - Fixed AcceptChanges().
1141                 - Fixed creating proposed version in BeginEdit();
1142                 - Added record disposal in Delete().
1143                 - Fixed CheckChildRows().
1144                 - EndEdit() fixed. Checks for readonly. Uses straight flow instead of "try and fix if fail" approach.
1145                 - GetChildRows() and GetPrarentRows() rewrited. Use records and indexes for rows lookup.
1146                 - GetColumnError() delegates to another implementation.
1147                 - HasVersion() fixed.
1148                 - RejectCahnges checks on child rows before passing through.
1149                 - SetParentRow() fixed. Create relation collection if needed. Use typed data container value copy.
1150                 - CopyErrors() logic moved to separate method (used also by DataTable).
1151         * ExpressionElement.cs : added new class.
1152         * Res.cs : added new class.
1153
1154 2005-04-20  Jordi Mas i Hernandez <jordi@ximian.com>
1155
1156         * DataViewManager.cs: implements TypedList.GetListName used in SWF
1157
1158 2005-04-19  Atsushi Enomoto  <atsushi@ximian.com>
1159
1160         * DataRowView.cs : indexer should access to DataRow with proper
1161           DataRowVersion. Fixed bug #74650.
1162
1163 2005-04-18  Sureshkumar T  <tsureshkumar@novell.com>
1164
1165         * DataRow.cs: if there are no mapping fields, fill with default
1166           value.
1167
1168 2005-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1169
1170         * DataView.cs : Delete() should not try to remove row twice.
1171           Fixed bug #74631.
1172
1173 2005-04-13  Atsushi Enomoto  <atsushi@ximian.com>
1174
1175         * DataTable.cs : Use GetRowType() for the base of the returning array 
1176           type of Select(). Fix by Gerhard Rittweger.
1177         * CustomDataClassGenerator.cs : Fixed slightly harmless wrong code.
1178
1179 2005-04-13  Atsushi Enomoto  <atsushi@ximian.com>
1180
1181         * CustomDataClassGenerator.cs : custom relation was not added to
1182           Relations property. The second entry of bug #69276 was fixed.
1183           Patch by Daniel Rodriguez.
1184
1185 2005-04-07  Lluis Sanchez Gual <lluis@novell.com>
1186
1187         * DataRowCollection.cs: Fix the signature of the Add method
1188         for NET_2_0.
1189
1190 2005-03-16  Atsushi Enomoto  <atsushi@ximian.com>
1191
1192         * DataRow.cs : on importing row, it was copying data from incorrect
1193           DataRow. This fixes bug #73288.
1194
1195 2005-03-07  Jackson Harper  <jackson@ximian.com>
1196
1197         * DataViewManagerListItemTypeDescriptor.cs: Implement missing
1198         features. These are needed for System.Windows.Forms databinding.
1199
1200 2005-02-25  Atsushi Enomoto  <atsushi@ximian.com>
1201
1202         * DataColumn.cs : setting negative value on MaxLength of SimpleContent
1203           column is still valid.
1204
1205 2005-02-15  Atsushi Enomoto  <atsushi@ximian.com>
1206
1207         * XmlSchemaWriter.cs : new file for outputting XmlSchema.
1208         * DataSet.cs : removed rewritten code in XmlSchemaWriter.
1209         * XmlConstants.cs : added UseCurrentCulture constant.
1210         * DataTable.cs :
1211           Use new Xml Schema writer.
1212           Use XmlSchemaDataImporter as we use in DataSet.
1213
1214 2005-02-10  Atsushi Enomoto  <atsushi@ximian.com>
1215
1216         * DataView.cs, DataRowView.cs : Fixed bug #72421. CreateChildView()
1217           should target only child rows.
1218
1219 2005-02-03  Atsushi Enomoto  <atsushi@ximian.com>
1220
1221         * DataViewManager.cs: misuse of ReadStartElement(string).
1222         * DataRowView.cs : removed some MonoTODO.
1223
1224 2005-02-02  Sureshkumar T  <tsureshkumar@novell.com>
1225             Ankit Jain     <radical@corewars.org>
1226
1227         * DataColumn.cs: throw exception if the column is part of a
1228         relationship, when chaning the data type. Added methods
1229         "GetParentRelation ()" and "GetChildRelation ()" get the relation
1230         which contains the current column
1231         * DataRelation.cs: Added method "Contains (DataColumn)" to check
1232         whether the relation contains the given column.
1233
1234         fixes nunit failure: DataRelationTest.InvalidConstraintException2.
1235
1236 2005-02-02  Sureshkumar T  <tsureshkumar@novell.com>
1237
1238         * DataColumnCollection.cs: implemented todo item "check for
1239         constraints" when removing columns from table.
1240         * DataRowCollection.cs: Clear (): don't have to throw child key
1241         constraint exception when the child table does not have any
1242         rows. safe to remove parent rows.
1243         * UniqueConstraint.cs: added method "Contains (DataColumn)" to
1244         check whether a column is part of UniqueConstraint.
1245         * ForeignKeyConstraint.cs: added method "Contains (DataColumn,
1246         lookInParent)" to check whether a column is part of foreignkey.
1247
1248         fixes nunit failure: DataTableTest.ClearTest ()
1249
1250 2005-02-02  Sureshkumar T  <tsureshkumar@novell.com>
1251
1252         * ForeignKeyConstraint.cs: validating columns: move checking
1253         "tables are of same dataset" before "checking column types".
1254
1255         fixes nunit failure: ForeignKeyConstraint.CtorExceptions.
1256         
1257 2005-02-02  Atsushi Enomoto  <atsushi@ximian.com>
1258
1259         * DataViewManager.cs : let's just use StringWriter instead of 
1260           XmlTextWriter (to avoid empty tag string mismatch annoyance.)
1261         * DataView.cs : implemented BeginInit() and EndInit(). Don't update
1262           rows during init phase until EndInit() is invoked. During init phase,
1263           just hold properties such as Sort that affects on rows.
1264
1265 2005-02-02  Atsushi Enomoto  <atsushi@ximian.com>
1266
1267         * DataTableCollection.cs : (RemoveAt) just use IndexOutOfRangeException.
1268
1269 2005-02-02  Atsushi Enomoto  <atsushi@ximian.com>
1270
1271         * DataView.cs : DataRowView.EndEdit() raises ItemMoved event.
1272           set_Table clears Sort and RowFilter.
1273
1274 2005-02-02  Atsushi Enomoto  <atsushi@ximian.com>
1275
1276         * DataView.cs :
1277           - Clear() should clear AddNew cache.
1278           - Open() invokes Reset().
1279           - ConstraintCollectionChanged() itself does not invoke OnListChanged().
1280           - Reset() does not Open, Close and Update Index.
1281           - UpdateIndex() can be invoked even if it has no table.
1282           - Reset event is invoked always after actual query to table.
1283           - set_Table should raise PropertyDescriptorChanged event.
1284
1285 2005-02-02  Atsushi Enomoto  <atsushi@ximian.com>
1286
1287         * DataView.cs : ColumnCollectionChanged() is the event invoker (i.e.
1288           when overriden, no column change events are fired).
1289
1290 2005-02-02  Atsushi Enomoto  <atsushi@ximian.com>
1291
1292         * DataView.cs : CancelEditRowView() and DeleteRowView() was incorrectly
1293           checking target tables. They also should raise events if required.
1294
1295 2005-02-02  Atsushi Enomoto  <atsushi@ximian.com>
1296
1297         * DataView.cs : simplify code with UnsortedList.
1298
1299 2005-02-01  Atsushi Enomoto  <atsushi@ximian.com>
1300
1301         * DataView.cs : Mostly reimplemented.
1302           - UpdateIndex() is invoked only when it is required (results in 
1303             significant performance improvement).
1304           - Use SortedList and wrapper OptionalSortedList which switches
1305             between SortedList (with Sort) and UnsortedList (without Sort).
1306           - DataView itself now contains two collections for rowviews:
1307             Table rows based pool and AddNew() based cache. Consider those
1308             two collections in every members.
1309           - Reset() does not clear rows. Just invokes UpdateIndex().
1310           - Hook RowDeleting, ColumnChanging and ColumnChanged events in table
1311             which is required to handle state changes.
1312           - Reimplemented Find() and FindRows() because of internal changes.
1313
1314 2005-02-01  Atsushi Enomoto  <atsushi@ximian.com>
1315
1316         * DataTable.cs : Fixed row comparer. Even if every of the sort target
1317           columns are identical for two rows, they should not be regarded as
1318           the same unless they are Object.ReferenceEquals.
1319
1320 2005-02-01  Atsushi Enomoto  <atsushi@ximian.com>
1321
1322         * DataRowCollection.cs : on adding a row, should raise
1323           ChangingDataRow() as well as ChangedDataRow().
1324
1325 2005-01-31  Sureshkumar T  <tsureshkumar@novell.com>
1326
1327         * DataRow.cs: SetParentRow (): use relation.ParentColumns &
1328         relation.ChildColumns instead of relation.ChildKeyConstraint.*
1329         because createConstrains flag may be false when creating data
1330         relations. Hack along with Ankit Jain.
1331         
1332 2005-01-31  Atsushi Enomoto  <atsushi@ximian.com>
1333
1334         * DataView.cs :some interface implementations.
1335
1336 2005-01-28  Atsushi Enomoto  <atsushi@ximian.com>
1337
1338         * DataView.cs : Add to table only when the row is not in the table.
1339
1340 2005-01-28  Atsushi Enomoto  <atsushi@ximian.com>
1341
1342         * DataView.cs : implemented FindRows() (btw we should not use
1343           DataTable since there are detached rows by AddNew().)
1344
1345 2005-01-28  Atsushi Enomoto  <atsushi@ximian.com>
1346
1347         * DataView.cs :
1348           Code cleanup: privatify some members, remove unused methods.
1349           Some event-based invocation methods should not raise NotImplemented.
1350
1351 2005-01-28  Atsushi Enomoto  <atsushi@ximian.com>
1352
1353         * DataSet.cs : ReadXml() became closer to MS behavior, being hacky.
1354
1355 2005-01-28  Atsushi Enomoto  <atsushi@ximian.com>
1356
1357         * XmlSchemaDataImporter.cs : empty element is not regarded as a column.
1358
1359 2005-01-28  Atsushi Enomoto  <atsushi@ximian.com>
1360
1361         * UniqueConstraint.cs : mostly reverted the previous patch + check
1362           IsPrimaryKey before validation.
1363
1364 2005-01-28  Atsushi Enomoto  <atsushi@ximian.com>
1365
1366         * DataView.cs : Fixed duplicate insertion to Hashtable.
1367         * UniqueConstraint.cs : Unique constrained pair of columns could be
1368           nullable.
1369
1370 2005-01-27  Atsushi Enomoto  <atsushi@ximian.com>
1371
1372         * DataView.cs :
1373           Don't do anything for Sort/ApplyDefaultSort/RowFilter/RowStateFilter
1374           when the same value is being set.
1375           Examined UpdateIndex() and marked FIXME where MS does not invoke it.
1376           Removed unused OnColumnChanged().
1377           Now store rowViewPool and reuse DataRowView objects.
1378           Optimized UpdateIndex() - avoid ArrayList. Avoid Haashtable.Rehash().
1379
1380 2005-01-27  Atsushi Enomoto  <atsushi@ximian.com>
1381
1382         * DataViewSettings.cs : no MonoTODO anymore.
1383         * DataViewManager.cs : pass itself to new DataView() (new ctor).
1384         * DataRowView.cs : GetHashCode() returns its Row's hash.
1385         * DataTablePropertyDescriptor.cs : use new ctor().
1386         * DataView.cs : added new ctor()s that accept DataViewManager.
1387
1388 2005-01-27  Atsushi Enomoto  <atsushi@ximian.com>
1389
1390         * DataView.cs, DataRowView.cs : AddNew() should not add the row to table
1391           (it is still detached). So handle those rows differntly.
1392           CancelEdit(), EndEdit() and Delete() propagates those events to
1393           DataView (and handle row collection).
1394           Eliminate "throw new Exception()".
1395           Don't catch all the exception thrown in ListChanged event.
1396         * DataTable.cs : made RowSorter as internal and use it in DataView.
1397           no need to pass DataRow[] to .ctor().
1398
1399 2005-01-27  Atsushi Enomoto  <atsushi@ximian.com>
1400
1401         * DataTable.cs : don't create DefaultView unless it is required. It
1402           significantly improves performance. (i.e. DataView perf. is sick ;-)
1403
1404 2005-01-27  Atsushi Enomoto  <atsushi@ximian.com>
1405
1406         * DataViewSetting.cs,
1407           DataViewSettingCollection.cs,
1408           DataViewManager.cs : implemented basic members.
1409
1410 2005-01-26  Atsushi Enomoto  <atsushi@ximian.com>
1411
1412         * Node.cs, DataColumnPropertyDescriptor.cs, DataTable.cs :
1413           Eliminate "throw new Exception".
1414
1415 2005-01-25  Atsushi Enomoto  <atsushi@ximian.com>
1416
1417         * DataRow.cs : (set_Item) RowNotInTableExeption check should be done
1418           regardless of index existence.
1419
1420 2005-01-25  Atsushi Enomoto  <atsushi@ximian.com>
1421
1422         * DataTable.cs : use new IExpression.EvalBoolean() to avoid extraneous
1423           boxing.
1424
1425 2005-01-25  Sureshkumar T  <tsureshkumar@novell.com>
1426
1427         * DataTable.cs: ImportRow :Do not add to rows collection if the
1428         import row is in detached state.
1429
1430 2005-01-25  Sureshkumar T  <tsureshkumar@novell.com>
1431
1432         * DataRow.cs: CopyValuesToRow : set the column value with the
1433         default version of the given row.
1434         * DataTable.cs: ImportRow: Copy values before adding row.
1435         * DataSet.cs: AddChangedRow: Add the row to the table after
1436         copying values.
1437         
1438         Fixes bug #67317. Patch by Ankit Jain.
1439
1440 2005-01-25  Atsushi Enomoto  <atsushi@ximian.com>
1441
1442         * DataRowView.cs : Fixed IsEdit to reflect correct status of DataRow.
1443         * DataRow.cs : Expose editing status internally.
1444
1445 2005-01-25  Atsushi Enomoto  <atsushi@ximian.com>
1446
1447         * DataView.cs : missing attributes.
1448
1449 2005-01-24  Atsushi Enomoto  <atsushi@ximian.com>
1450
1451         * DataRowView.cs : implemented CreateChildView().
1452
1453 2005-01-24  Atsushi Enomoto  <atsushi@ximian.com>
1454
1455         * DataTable.cs, DataView.cs :
1456           Optimized DataView to compile only once RowFilter and Sort when 
1457           those properties are set. To make it possible, extracted 
1458           SortableColumn out of DataTable and added internal DataTable.Select()
1459           that accepts precompiled IExpression and SortableColumns[].
1460
1461 2005-01-24  Atsushi Enomoto  <atsushi@ximian.com>
1462
1463         * DataColumn.cs : set_MaxLength is not allowed when it is mapped to
1464           SimpleContent. (However, it is weird but it never fails when we set
1465           ColumnMapping = MappingType.SimpleContent when we fhave MaxLength.)
1466
1467 2005-01-21  Atsushi Enomoto  <atsushi@ximian.com>
1468
1469         * DataRow.cs : more Current -> Default fixes. Check if it should throw
1470           VersionNotFoundException. Patch by Ankit Jain.
1471
1472 2005-01-21  Atsushi Enomoto  <atsushi@ximian.com>
1473
1474         * DataRow.cs : Default selects the right version for the current
1475           state of the row. Current is not always available. Also change
1476           that for GetParentRow(). Patch by Ankit Jain.
1477
1478 2005-01-21  Atsushi Enomoto  <atsushi@ximian.com>
1479
1480         * DataTable.cs : CopyColumn() should copy AutoIncrement after
1481           DefaultValue, or it will raise an error in some cases.
1482
1483 2005-01-20  Atsushi Enomoto  <atsushi@ximian.com>
1484
1485         * ConstraintCollection.cs : Add() should throw ArgumentException when
1486           the argument constraint fails validation.
1487           DataTable.cs : set_PrimaryKey should throw ArgumentException when
1488           the argument contains constraints which fail validation.
1489
1490 2005-01-19  Sureshkumar T  <tsureshkumar@novell.com>
1491
1492         * DataRelationCollection.cs: 
1493
1494         Method Remove : Donot throw exception if DataRelation argument is
1495         null in DataRelationCollection.Remove method.
1496
1497         Method RemoveAt : Exception should be IndexOutOfRangeException if
1498         row index is not in list range.
1499
1500         Fixes nunit failures DataRelationCollection.Remove and
1501         DataRelationCollection.RemoveAt.
1502
1503 2005-01-19  Sureshkumar T  <tsureshkumar@novell.com>    
1504
1505         * ConstraintCollection.cs: Donot throw exception if constraints
1506         are null in AddRange method. Check for null before using the
1507         argument.
1508
1509         fixes bug #69381.
1510
1511 2004-01-19  Atsushi Enomoto  <atsushi@ximian.com>
1512
1513         * XmlDataInferenceLoader.cs,
1514           XmlDataReader.cs : Check if the XmlReader (node) represents DataSet
1515           or a table, reusing code block in XmlDataInferenceLoader.
1516           This fixes bug #60118.
1517
1518 2004-01-19  Atsushi Enomoto  <atsushi@ximian.com>
1519
1520         * XmlDiffLoader.cs : Ankit Jain <radical@imt.ac.in> has a conflicting
1521           patches and some good catches. Some attributes should be skipped,
1522           and loaded value must be typed.
1523
1524 2004-01-19  Atsushi Enomoto  <atsushi@ximian.com>
1525
1526         * XmlConstants.cs,
1527           XmlDataInferenceLoader.cs, 
1528           XmlDataReader.cs : use common const for http://www.w3.org/2000/xmlns/.
1529         * XmlDiffLoader.cs : It was not handling attributes. Fixed bug #70961.
1530
1531 2005-01-18  Sureshkumar T  <tsureshkumar@novell.com>
1532
1533         Fix for bug #66838. This patch is submitted by "Ankit Jain"
1534         <radical@corewars.org> and refactored.
1535
1536         * DataRow.cs: Allows to set a parent row even if the row is in
1537         detached state.
1538
1539         * DataRelation.cs: method "UpdateConstraints" is added to check
1540         and create missing keys when adding a relation. This is refactored
1541         approach from DataRelationCollection.Add method.
1542
1543         * DataRelationCollection.cs: AddCore methods of all relation types
1544         are synchronized. A Check for existing constraints is
1545         done. Relation is added to the list only if all checks are passed.
1546
1547 2004-01-18  Atsushi Enomoto  <atsushi@ximian.com>
1548
1549         * DataColumnCollection.cs : Clear() throws ArgumentException that
1550           wraps thrown innerException.
1551         * XmlSchemaDataImporter.cs : removed FIXMEs.
1552
1553 2004-01-12  Atsushi Enomoto  <atsushi@ximian.com>
1554
1555         * DataSet.cs : When serializing DataTable, BuildSchema() is passed
1556           null relation collections.
1557           Quick fix for XmlSerializer deserialization. It does not require
1558           XML Schema included.
1559
1560 2004-01-11  Atsushi Enomoto  <atsushi@ximian.com>
1561
1562         * DataSet.cs,
1563           CustomDataClassGenerator.cs :
1564           In DataSet class, IXmlSerializable.GetSchema() returns null.
1565           In strongly-typed class, it returns schema.
1566
1567 2004-01-07  Atsushi Enomoto  <atsushi@ximian.com>
1568
1569         * XmlDataInferenceLoader.cs : test driver class should be excluded.
1570
1571 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
1572
1573         * DataView.cs: Patch from Marc Haisenko that ensures that rowCache
1574         is never null.
1575
1576 2004-11-10  Atsushi Enomoto  <atsushi@ximian.com>
1577
1578         * CustomDataClassGenerator.cs : generated foreign key constraint
1579           construction code was creating empty child columns and thus it
1580           was invalid. This fixes bug #69276 (patch by Martin Voelkle).
1581
1582 2004-11-02  Atsushi Enomoto  <atsushi@ximian.com>
1583
1584         * CustomDataClassGenerator.cs : custom DataTable ctor should call
1585           InitializeFields(), and those DataColumns created by that method
1586           should take data type. This should fix bug #68972.
1587
1588 2004-10-15  Atsushi Enomoto  <atsushi@ximian.com>
1589
1590         * DataSet.cs : Also clear UnhandledAttributes ArrayList before 
1591           generating next attribute column schema. This fixes bug #68432.
1592
1593 2004-10-14 Umadevi S <sumadevi@novell.com>
1594         * DataTable.cs : Corrected the Clone method to use  Activator.CreateInstance so that the
1595         correct subclass is returned. This fixes bug #67631
1596                                                                                         
1597 2004-10-14 Umadevi S <sumadevi@novell.com>
1598         * DataSet.cs : Corrected the Clone method to use  Activator.CreateInstance so that the  
1599         correct subclass is returned. This fixes bug #67627
1600
1601 2004-10-13  Atsushi Enomoto  <atsushi@ximian.com>
1602
1603         * DataSet.cs : clear UnhandledAttributes ArrayList before generating
1604           next element column schema. This fixes bug #68256.
1605
1606 2004-10-12  Atsushi Enomoto  <atsushi@ximian.com>
1607
1608         * DataSet.cs : now xs:schema contains xmlns="".
1609           This fixes bug #68008.
1610
1611 2004-10-12  Atsushi Enomoto  <atsushi@ximian.com>
1612
1613         * DataSet.cs : DBNull attribute column should not be written as
1614           empty attribute. This fixes bug #68007.
1615
1616 2004-10-12  Atsushi Enomoto  <atsushi@ximian.com>
1617
1618         * DataSet.cs, XmlConstant.cs, XmlSchemaDataImporter.cs:
1619           DataColumn.ReadOnly was not handled. This fixes bug #68005.
1620           Attribute defaultValue was not handled too.
1621
1622 2004-10-07  Atsushi Enomoto  <atsushi@ximian.com>
1623
1624         * DataSet.cs :
1625           - When AllowDBNull is false on attribute DataColumn, its schema
1626             should contain use="required". This fixes bug #66792.
1627           - If MaxLength is set on attribute DataColumn, the mapped schema
1628             type should contain maxLength facet. This fixes bug #66793.
1629
1630 2004-10-04  Atsushi Enomoto  <atsushi@ximian.com>
1631
1632         * DataSet.cs : For a row, when a relation is not nested, then it is
1633           still output target since it won't be written as a child of its
1634           parent. It fixes bug #66379.
1635
1636 2004-10-03  Atsushi Enomoto  <atsushi@ximian.com>
1637
1638         * DataSet.cs : Attribute constraint field XPath must be written as
1639           @blah. This fixes bug #66366.
1640
1641 2004-09-28 Umadevi S <sumadevi@novell.com>
1642         * DataRow.cs - checked for Enforceconstraints, while using indices to search for related rows
1643
1644 2004-09-24  Sureshkumar T  <tsureshkumar@novell.com>
1645
1646         * DataSet.cs : Don't check constraints for dataset clear
1647         * DataRowCollection.cs : check for EnforceConstraints flag 
1648         before checking foriegn key constraints in Clear method
1649         * DataTable.cs : Redundant checking removed in Clear method as it is
1650         checked in DataRowCollection.Clear method. 
1651
1652
1653 2004-09-19  Sureshkumar T <tsureshkumar@novell.com>
1654         * DataRow.cs : while deserialization of dataset, adding a current row precedes the original row.
1655                        hence, adding a row cache is necessary if the original row happens to be current.
1656                        fixed bug #63097
1657
1658 2004-08-23  Martin Baulig  <martin@ximian.com>
1659
1660         * XmlDataInferenceLoader.cs (Driver): Make this class internal,
1661         not public.
1662
1663 2004-08-18 Umadevi S <sumadevi@novell.com>
1664         * DataView.cs - Completed most of the event handling. 
1665         Thanks to Punit Todi <punit_todi@da-iict.org> for implementing most of it.
1666         Thanks to Boris Kirzner <borisk@mainsoft.com> for commenting and suggesting changes to the implementation.
1667         * DataTable.cs - Changed Access modifiers of class/methods since it was used by DataView.
1668
1669 2004-08-06  Atsushi Enomoto  <atsushi@ximian.com>
1670
1671         * DataSet.cs : DataSet's ExtendedProperties were not XmlConverted.
1672
1673 2004-08-05  Atsushi Enomoto  <atsushi@ximian.com>
1674
1675         * XmlConstants.cs : Added constants for "msprop" support.
1676         * DataSet.cs : ExtendedProperties should be written in the schema.
1677           This fixes bug #61233.
1678
1679 2004-07-27  Atsushi Enomoto  <atsushi@ximian.com>
1680
1681         * DataSet.cs : on serialization to XmlWriter, XmlConvert should be
1682           used. There were also some culture dependency problems to write int.
1683
1684 2004-06-27  Atsushi Enomoto  <atsushi@ximian.com>
1685
1686         * XmlDataInferenceLoader.cs : It was not always filling relation
1687           child table information correctly. This fixes bug #60742.
1688
1689 2004-06-23 Umadevi S <sumadevi@novell.com>
1690         * UniqueConstraint.cs :changed a ifdef true to ifdef NET_1_1
1691
1692 2004-06-22  Atsushi Enomoto  <atsushi@ximian.com>
1693
1694         * DataSet.cs : Fixed ReadXml(). When ReadMode is ReadSchema and the
1695           schema is inside the document element (as created in XmlWriteMode
1696           .WriteSchema), it should read schema from that non-document element.
1697           This fixes one case reported in bug #60470.
1698
1699 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
1700
1701         * XmlDataInferenceLoader.cs : Kindly reject xml schema document as a
1702           inference target. For bug #60470. (MS does not support schema
1703           document inference and results in unconsistent dataset structure.)
1704
1705 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
1706
1707         * DataTableCollection.cs : reset the table's DataSet to null when
1708           removing a table from this collection.
1709         * DataTable.cs : When Namespace is not specified explicitly, its
1710           Namespace property reflects DataSet's Namespace if exist.
1711           This fixes bug #60469.
1712
1713 2004-06-18  Gert Driesen <drieseng@users.sourceforge.net>
1714
1715         * DBConcurrentcyException.cs: CRLF to LF
1716         * DataViewSetting.cs: CRLF to LF
1717
1718 2004-06-18  Gert Driesen <drieseng@users.sourceforge.net>
1719
1720         * DataViewSetting.cs: renamed fields to match MS.NET
1721
1722 2004-06-18  Gert Driesen <drieseng@users.sourceforge.net>
1723
1724         * DBConcurrencyException.cs: fixed serialization compatibility with
1725         MS.NET
1726
1727 2004-06-17  Boris Kirzner  <borisk@mainsoft.com>
1728
1729         * ChangeLog : Fix for misspelled words.
1730
1731 2004-06-17  Boris Kirzner  <borisk@mainsoft.com>
1732
1733         * DataRowCollection.cs : Removed onColumnRemoved since it is not in use.
1734         
1735 2004-06-17  Boris Kirzner  <borisk@mainsoft.com>
1736
1737         * DataTable.cs :
1738           - Table stores default values for columns in special default values row. 
1739           It is allocated once (in NewRow).
1740           - DataTable.Copy rewrited. It works with uninitialized rows for better perfomance.
1741           - OnRemoveColumn has nothing to perform by now.
1742
1743 2004-06-17  Boris Kirzner  <borisk@mainsoft.com>
1744
1745         * DataRow.cs : 
1746           - Changed access of original, current and proposed indexes to internal.
1747           - ColumnErrors reviewed : now column errors stored in ArrayList and allocated on demand only.
1748           - Added new DataRow constructor that creates uninitialized DataRow (used in DataTable.Copy).
1749           - Use DataContainer.CopyValue and default values row for faster set of default values in row.
1750           - SetColumnValue become CheckValue. Now it does not changes the value, but only checks for its correctness.
1751           Care about Null and DBNull values is now in DataContainer.
1752           - Use DataColumn.AutoIncrementValue and GetInt64 for faster set of autoincrement value.
1753           - Use Datacontainer.CopyValue and default values row to speed up CheckChildRows.
1754           - Fix in CopyState : clone column errors.
1755           - Removed CollectionChanged and onColumnRemoved since we are not using both of them anymore.
1756
1757 2004-06-17  Boris Kirzner  <borisk@mainsoft.com>
1758
1759         * DataColumnCollection.cs : 
1760           - Fix : Add() now delegates to Add(DataColumn).
1761           - autoIncrement list holds DataColumn objects, and not just column names.
1762
1763 2004-06-17  Boris Kirzner  <borisk@mainsoft.com>
1764
1765         * DataColumn.cs : 
1766           - AutoIncrementValue fixes. Now AutoIncrement uses DataContainer.GetInt64 to avoid boxing.
1767           - DefaultValue fixes. Default value from now on is also stored in special record in 
1768           DataTable, so we're able to set default value for the column faster (typed).
1769         
1770         
1771 2004-06-15  Atsushi Enomoto  <atsushi@ximian.com>
1772
1773         * DataSet.cs : children of non-root rows were not properly written.
1774           Fixed bug #53959.
1775
1776 2004-06-10 Umadevi S <sumadevi@novell.com>
1777         * DataRelation.cs - Constructor
1778         - The datatypes of the parentcolumn(s) and the childcolumn(s) should match
1779
1780 2004-06-06  Atsushi Enomoto  <atsushi@ximian.com>
1781
1782         * XmlSchemaDataImporter.cs : We should fill Namespace for DataTable.
1783
1784 2004-06-04  Gert Driesen <drieseng@users.sourceforge.net>
1785
1786         * Constraint.cs: marked methods internal to fix public API
1787         * ConstraintCollection.cs: to fix public API, use 
1788         DataTable.fInitInProgress to check whether initialization 
1789         of DataTable is in progress
1790         * DataColumn.cs: added stubs for missing methods
1791         * DataRowBuilder.cs: marked Table property internal to
1792         fix public API
1793         * DataSet.cs: removed extra empty destructor, marked 
1794         OnMergeFailed internal to fix public API
1795         * DataTable.cs: use fInitInProgress field to hold init
1796         status, to match MS.NET
1797         * DataView.cs: added missing attributes on IsOpen
1798
1799 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
1800
1801         * DataSet.cs : Use NameTable.Get() before calling LookupNamespace()
1802           in XmlNamespaceManager.
1803
1804 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
1805
1806         * DataSet.cs : complex table content child was not properly added
1807           when it is the only one child in the parent table. Fixed bug #53959.
1808
1809 2004-06-02  Gert Driesen <drieseng@users.sourceforge.net>
1810        * DataTableTypeConverter.cs: added
1811        * DataView.cs: added missing attribute on Table property
1812        * DataViewManager.cs: moved attribute to correct property
1813        * UniqueConstraint.cs: removed extra ReadOnly attribute from
1814         IsPrimaryKey property
1815
1816 2004-06-01  Atsushi Enomoto  <atsushi@ximian.com>
1817
1818         * DataRow.cs : ColumnsChanged event is not required in .ctor().
1819
1820 2004-06-01  Atsushi Enomoto  <atsushi@ximian.com>
1821
1822         * XmlDataReader.cs : type change is required before setting value
1823           string to row item.
1824
1825 2004-05-31  Atsushi Enomoto  <atsushi@ximian.com>
1826
1827         * DataSet.cs : Loop-break of the last fix was incorrect.
1828
1829 2004-05-31  Atsushi Enomoto  <atsushi@ximian.com>
1830
1831         * DataSet.cs : When a row has no parent row but the table has parent
1832           relation(s), that row had been always ignored.
1833
1834 2004-05-31  Atsushi Enomoto  <atsushi@ximian.com>
1835
1836         * XmlDataInferenceLoader.cs : Fixed GetMappedTable() that incorrectly
1837           rejected same-named tables in different hierarchy. Thanks to Boris.
1838
1839 2004-05-31  Atsushi Enomoto  <atsushi@ximian.com>
1840
1841         * XmlDiffLoader.cs : Added some Skip() that is required not to go to
1842           infinite loop. Thanks to Boris for this fix.
1843
1844 2004-05-31  Atsushi Enomoto  <atsushi@ximian.com>
1845
1846         * XmlDataInferenceLoader.cs : XmlSchema elements should not be infered.
1847           Thanks to Boris for this fix.
1848
1849 2004-05-30  Atsushi Enomoto  <atsushi@ximian.com>
1850
1851         * DataTable.cs : serialization .ctor() should use XmlReadMode.DiffGram
1852           for ReadXml(). Thanks to Boris.
1853
1854 2004-05-27  Boris Kirzner  <borisk@mainsoft.com>
1855         * DataRow.cs : 
1856                 - CheckReadOnlyStatus : use typed (and faster comparing).
1857                 - EndEdit : bug fix - do not dispose record if it holds original version.
1858                 - SetValuesFromDataRecord : Take care about autoincrement columns.
1859                 
1860
1861 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
1862
1863         * MergeManager.cs : don't output debug message to Console.
1864
1865 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
1866
1867         * XmlDataInferenceLoader.cs : Namespace are not imported to the table
1868           structure. Thanks to Boris Kirzner for the fix.
1869
1870 2004-05-27  Umadevi S <sumadevi@novell.com>
1871          * DataRelationCollection.cs - fixed nunit test errors
1872
1873 2004-05-27  Umadevi S <sumadevi@novell.com>
1874          * DataTableCollection.cs - fixed nunit test errors
1875
1876 2004-05-21  Atsushi Enomoto  <atsushi@ximian.com>
1877
1878         * DataColumnCollection.cs : NullReferenceException was thrown when
1879           the table was not found.
1880         * DataRowCollection.cs :
1881           Find() just returns null for null value under MS.NET 1.1.
1882           RemoveAt() should also avoid to call AcceptChanges() like Remove().
1883         * UniqueConstraint.cs : in AssertConstraint() throw ConstraintException
1884           directly under MS.NET (for nunit test).
1885
1886 2004-05-21  Atsushi Enomoto  <atsushi@ximian.com>
1887
1888         * XmlSchemaDataImporter.cs : Setting startindex in LastIndexOf() 
1889           caused problem on qualified name to get schema Field name.
1890
1891 2004-05-21  Atsushi Enomoto  <atsushi@ximian.com>
1892
1893         * XmlDataReader.cs : Now data reader is namespace aware in all places.
1894           When table's namespace is different, it entered to infinite loop.
1895
1896 2004-05-19  Boris Kirzner  <borisk@mainsoft.com>
1897         * MergeManager.cs : AdjustSchema now updates by reference new created table,
1898         so in Merge you do not need to lookup for it (were unable to do this for unnamed tables).
1899         Code styling.
1900         
1901 2004-05-19  Boris Kirzner  <borisk@mainsoft.com>
1902
1903         * DataColumn.cs : In set_Item[int] - if autoincrement, adjust next autoincrement value.
1904         * DataColumnCollection.cs : fixed parantethes.
1905         * DataRow.cs : 
1906                 - AcceptChanges : do nothing if row state is unchanged.
1907                 - GetChildRows, GetParentRows  : bug fix (use correct index).
1908         * DataRowCollection.cs : bug fix (compare all row's values).
1909         * DataTable.cs : bug fix (use correct row version).
1910         
1911 2004-05-20  Atsushi Enomoto  <atsushi@ximian.com>
1912
1913         * XmlSchemaDataImporter.cs : xs:positiveInteger is mapped to ulong.
1914           When content type is Mixed, text column is not required (it is
1915           required only when the complex type has no particle). 
1916           "Repeated element" column is also created (considering maxOccurs=0 
1917           and complex content extension).
1918
1919 2004-05-20  Atsushi Enomoto  <atsushi@ximian.com>
1920
1921         * XmlSchemaDataImporter.cs : XmlSchemaGroupBase was not handled 
1922           properly.
1923
1924 2004-05-20  Atsushi Enomoto  <atsushi@ximian.com>
1925
1926         * XmlSchemaDataImporter.cs : Removed unused code and extra MonoTODO.
1927           Fixed relation inference to consider attribute XPath.
1928
1929 2004-05-19  Atsushi Enomoto  <atsushi@ximian.com>
1930
1931         * DataColumn.cs : Fixed set_Item[int]. Convert.ToInt64(DBNull.Value)
1932           always fails.
1933
1934 2004-05-19  Boris Kirzner  <borisk@mainsoft.com>
1935
1936         * DataColumn.cs - removed default member attribute.
1937
1938 2004-05-19  Boris Kirzner  <borisk@mainsoft.com>
1939
1940         * DataColumn.cs,
1941           DataColumnChangeEventArgs.cs,
1942           DataColumnCollection.cs,
1943           DataRow.cs,
1944           DataRowCollection.cs,
1945           DataTable.cs,
1946           Index.cs : Data storage in the row is redesigned. Now data is stored in 
1947           typed containers inside DataColumn. Row holds its versions as indexes inside
1948           each of data container, accessed through the row that holds it.
1949
1950 2004-05-19  Boris Kirzner  <borisk@mainsoft.com>
1951
1952         * UniqueConstraint.cs - added comment.
1953         
1954 2004-05-19  Atsushi Enomoto  <atsushi@ximian.com>
1955
1956         * XmlDataInferenceLoader.cs : Don't add already-existing DataTable to
1957           DataSet.
1958
1959 2004-05-17  Atsushi Enomoto  <atsushi@ximian.com>
1960
1961         * DataSet.cs,
1962           XmlDataInferenceLoader.cs,
1963           XmlDataReader.cs,
1964           XmlSchemaDataImporter.cs : XmlDecode every local name to read and
1965           XmlEncode every local name to write. This should fix bug #58268.
1966
1967 2004-05-17  Atsushi Enomoto  <atsushi@ximian.com>
1968
1969         * DataSet.cs : Implemented ignored namespaces in InferXmlSchema().
1970           Supported repeated elements. Removed MonoTODOs.
1971         * XmlDataInferenceLoader.cs : Design change to support ignored
1972           namespace and repeated elements.
1973         * XmlSchemaDataImporter.cs : Added mapping support classes.
1974
1975 2004-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1976
1977         * CustomDataClassGenerator.cs :
1978           Added property parent "[foo]Row" and children "Get[foo]Row" support
1979           for custom DataRow classes.
1980           Fixed DataColumn property accessibility (public --> internal).
1981
1982 2004-05-14  Atsushi Enomoto  <atsushi@ximian.com>
1983
1984         * CustomDataClassGenerator.cs :
1985           - Put classes inside custom DataSet class.
1986           - Added automatic DataRelation creation support.
1987           - Added Constraints creation support. That is done separate from
1988             relations, since they might be independently created.
1989           - Added non-MS public DataRelation fields.
1990           - Removed extraneous "DataRelation type generation" code.
1991           - Fixed custom_dataset.Initialize() not to create "c" field that
1992             was created more than once.
1993           - Implemented AddxxxRow() that takes parameters for every column.
1994
1995 2004-05-14  Atsushi Enomoto  <atsushi@ximian.com>
1996
1997         * XmlSchemaDataImporter.cs : When primary key is used more than once,
1998           DataRelation borked because of empty parent column name.
1999
2000 2004-05-14  Atsushi Enomoto  <atsushi@ximian.com>
2001
2002         * XmlSchemaDataImporter.cs : When Creating constraints with related
2003           to DataRelation creation, also set PrimaryKey to the parent table.
2004
2005 2004-05-14  Atsushi Enomoto  <atsushi@ximian.com>
2006
2007         * XmlSchemaDataImporter.cs : 
2008           Design change to add indirect table and relation structures.
2009           Support for "relation" annotation for local element.
2010           Support for repeatable simple element column (maxOccurs > 1).
2011           Fixed handling of Nested property on DataRelation (for globally
2012           annotated relation, Nested is false).
2013
2014 2004-05-13  Atsushi Enomoto  <atsushi@ximian.com>
2015
2016         * DataRow.cs : Added DataElement property to avoid storing every row-
2017           element mapping. It stored even for nodes that should be removed.
2018
2019 2004-05-13  Umadevi S <sumadevi@novell.com>
2020
2021         * RelationshipConverter.cs - Stubbed this class
2022         * DataRelation.cs - added TypeConveterAttribute
2023
2024 2004-05-13  Umadevi S  <sumadevi@novell.com>
2025
2026         * DataColumnCollection.cs - Added ResDescriptionAttribute
2027         * DataRelation.cs - Added TypeConverterAttribute
2028         * DataRelationCollection.cs - Added DefaultPropertyAttribute
2029         * DataRowView.cs - Added GetHashCode method with a TODO tag
2030         * DataSet.cs - Added DesignerAttribute
2031         * DataView.cs - Added DesignerAttribute
2032         * DataViewManager.cs - Added DesignerAttribute
2033         * DataViewSetting.cs - Added TypeConverterAttribute
2034         
2035 2004-05-12  Atsushi Enomoto  <atsushi@ximian.com>
2036
2037         * DataRow.cs : Added XmlDataElement initialization code.
2038
2039 2004-05-11  Atsushi Enomoto  <atsushi@ximian.com>
2040
2041         * XmlDataInferenceLoader.cs :
2042           It now requires XmlDocument as input.  Improved identification of
2043           DataSet element.  Removed extra lines.
2044           Moved boresome design notes to bottom of the source and
2045           added standalone runnable driver (not included on build).
2046         * DataSet.cs :
2047           Update with related to the change above.
2048           WriteXml() should call Flush() after writing. This fixes bug #58327.
2049         * XmlSchemaDataImporter.cs :
2050           Improved indentification of DataSet element.
2051
2052 2004-05-11  Gert Driesen (drieseng@users.sourceforge.net)
2053         * DataTable: marked initStatus enum internal
2054
2055 2004-05-09  Gert Driesen (drieseng@users.sourceforge.net)
2056         * DataTable.cs: removed TypeConverterAttribute, marked RowsExist
2057         methods internal
2058         * DataRowView.cs: removed extra Error property
2059         * DataRow.cs: reduced accessibility of CollectionChanged method 
2060         to private
2061         * DataColumnPropertyDescriptor.cs: made class internal
2062         * DataColumn.cs: removed extra TypeConvertorAttribute
2063         * ConstrainCollection.cs: marked PostEndInit method internal
2064
2065 2004-05-07  Atsushi Enomoto  <atsushi@ximian.com>
2066
2067         * DataSet.cs : 
2068           In WriteXmlSchema(), when complex type contains simple type content
2069           attributes must not added to XmlSchemaComplexType directly. It
2070           causes schema compilation error.
2071           DataRelation should not be output when related columns are hidden.
2072
2073 2004-05-07  Atsushi Enomoto  <atsushi@ximian.com>
2074
2075         * XmlDataInferenceReader.cs : Added. It does InferXmlSchema() (it is
2076           also expected to do ReadXml(), but I will remove that feature and
2077           support column reordering).
2078         * XmlSchemaDataImporter.cs : Always initialize dataset name.
2079           Always set Nested and primary key for parent table.
2080         * XmlDataReader.cs : Now it is used.
2081           Top level element might not match to dataset name nor any table 
2082           name, but still possible to read content tables.
2083           Handle empty element correctly in some places.
2084           Handle Fragment mode (read up XmlReader to the end).
2085         * DataSet.cs : Modified InferXmlSchema() and ReadXml() to use
2086           XmlDataInferenceLoader and XmlDataReader.
2087
2088 2004-05-06  Atsushi Enomoto  <atsushi@ximian.com>
2089
2090         * DataSet.cs :
2091           Eliminated CRLF injection.
2092           More clear message in Clear().
2093           Updates reflecting XmlSchemaDataImporter change.
2094           Added duplicate check for XmlSerializerNamespaces in BuildSchema().
2095           Don't use xmlns attribute for UnhandledAttributes (its not mandatory
2096           but that depends on different behavior from ms.net).
2097           Set locale also for DataTable.
2098           Add xs:element only when target namespace matches to the
2099           element's namespace. Otherwise, add xs:import for external namespace.
2100           Put xs:sequence for dataset element's particle _only when_ actual
2101           contents exist.
2102
2103 2004-05-06  Atsushi Enomoto  <atsushi@ximian.com>
2104
2105         * XmlDataReader.cs : Added. This class will work better when our
2106           schema inference and schema read engine gets improved. (It contains
2107           standalone testable Driver class.)
2108
2109 2004-05-06  Atsushi Enomoto  <atsushi@ximian.com>
2110
2111         * ForeignKeyConstraint.cs : Check step change. Existence then column
2112           validity. just for tests.
2113         * XmlSchemaDataImporter.cs : code simplification. reduced extraneous
2114           fields.
2115
2116 2004-05-05  Atsushi Enomoto  <atsushi@ximian.com>
2117
2118         * DataSet.cs : Ignore empty content only when output type is diffgram.
2119
2120 2004-05-05  Atsushi Enomoto  <atsushi@ximian.com>
2121
2122         * CustomDataClassGenerator.cs : Modified that DataSet contains each
2123           DataTable field so that each table property can access them directly.
2124           (plus, modified standalone code driver code: shouldn't affect)
2125
2126 2004-05-05  Boris Kirzner  <borisk@mainsoft.com>
2127
2128         * DataView.cs , DataRowView.cs : Added implementation to basic methods and properties.
2129           
2130 2004-05-05  Atsushi Enomoto  <atsushi@ximian.com>
2131
2132         * XmlSchemaDataImporter.cs : 
2133           SimpleContent column support.
2134           Annotated relation support.
2135           Top-level element is counted only when its type is complex.
2136           xs:anyType is no longer treated as complex type.
2137           dataset existence is mandatory now. 
2138           Improved DataType and DefaultValue support.
2139           Attribute namespace is properly handled now.
2140           Prohibited attribute is now treated as hidden column.
2141           Reject list or union simple type.
2142
2143           Still incomplete 1) to read relationship in some cases, 2) to 
2144           determine whether an element is dataset or table, 3) thus to
2145           exclude extraneous column, 4) to remove extraneous *_Id column.
2146
2147 2004-05-05  Atsushi Enomoto  <atsushi@ximian.com>
2148
2149         * DataTable.cs :
2150           We had better reuse DataSet's ReadXmlSchema() and ReadXml() in
2151           serialization .ctor() (thus schema read/inference should be easier).
2152           DataRowSorter should consider Table's Locale.
2153
2154 2004-05-05  Atsushi Enomoto  <atsushi@ximian.com>
2155
2156         * DataColumnCollection.cs : We already had AutoIncrementValue(), so
2157           use it instead of duplicating logic.
2158
2159 2004-05-05  Atsushi Enomoto  <atsushi@ximian.com>
2160
2161         * ConstraintCollection.cs :
2162           Use Table.CaseSensitive and Table.Locale to compare strings.
2163           Duplicate constraint name exception does not occur under .NET 1.1.
2164
2165 2004-05-04  Lluis Sanchez Gual  <lluis@ximian.com>
2166
2167         * XmlSchemaDataImporter.cs: Added little type check.
2168
2169 2004-05-04  Lluis Sanchez Gual  <lluis@ximian.com>
2170
2171         * DataSet.cs: Implemented support for runtime serialization. Fixed support
2172           for xml serialization.
2173         * XmlDiffLoader.cs: Skip diffgram element when it is empty.
2174
2175 2004-04-30  Umadevi S  <sumadevi@novell.com>
2176         * DataColumnCollection.cs : Fixed nunit test errors, removed TODOs
2177         * DataTableCollection.cs  : Tested and removed TODO
2178         * TypedDataSetGeneratorException.cs : Fixed a couple of TODOs   
2179
2180 2004-04-29  Atsushi Enomoto  <atsushi@ximian.com>
2181
2182         * DataRow.cs : My previous patch unintentionally reverted Boris patch.
2183
2184 2004-04-29  Boris Kirzner <borisk@mainsoft.com>
2185
2186         * UniqueConstraint.cs : Constraint columns becaomes unique after adding constraint ifand only if 
2187         constraint is defined on single column.
2188
2189 2004-04-29  Atsushi Enomoto  <atsushi@ximian.com>
2190
2191         * DataRowCollection.cs : .NET 1.1 throws InvalidConstaintException,
2192           not ArgumentException (maybe changed after 1.1).
2193
2194 2004-04-29  Atsushi Enomoto  <atsushi@ximian.com>
2195
2196         * DataRow.cs : When Column was added and it was AutoIncrement column,
2197           it extended the item object array incorrectly.
2198           (Plus tiny comment and incorrect indentation fix.)
2199
2200 2004-04-29  Boris Kirzner <borisk@mainsoft.com>
2201
2202         * MergeManager.cs : added ( incomplete yet ) support for merging DataSet schema.
2203
2204 2004-04-29  Boris Kirzner <borisk@mainsoft.com>
2205
2206         * DataRow.cs : Bug fix in CopyValuesToRow().
2207         
2208 2004-04-29  Boris Kirzner <borisk@mainsoft.com>
2209
2210         * UniqueConstraint.cs : There is no reason to mark constraint's columns as unique, because
2211           each of the columns should not be unique, but only all the constraint's columns together.
2212         
2213 2004-04-28  Boris Kirzner <borisk@mainsoft.com>
2214         * DataRow.cs :
2215           - Perfomance fixes: 
2216                 - Added using of list of autoIncrement columns
2217                 - SetColumnValue receives also DataColumn to avoid duplicate lookup in DatacolumnCollection
2218           - Fix in CheckNullConstraints
2219           - Fix in this[] and HasVersion() : when evaluating an expression deleted rows values can be accessed.
2220           - Fix in SetColumnValue() , added CanAccess() method to avoid case of accessing internal array values berore it actually allocated.
2221           - Added onColumnRemoved() method to threat column removal accurately.
2222         
2223         * DataRowCollection.cs :
2224           - Added using of DataRow._nullConstraintViolation (for perfomance fix in EndLoadData())
2225           - Added method onColumnRemoved() - calls each row's onColumnRemoved() (to ensure column removal is treated accurately)
2226         
2227         * DataTable.cs :
2228           - Call DataRowCollection.onColumnRemoved() in OnRemoveColumn() (to ensure column removal is treated accurately)
2229         
2230         * DataColumnCollection.cs :
2231           - Perfomance fixes :
2232                 - collection holds a list of its autoIncrement columns (avoids unnesessary lookup through whole collection)
2233                 - collection holds mapping from column names to DataColumn objects (avoids lookup through whole collection).
2234                 - automatic creation of column names rewrited (bug fixes + perfomance improvement)
2235         
2236         * DataColumn.cs :
2237           - Uses autoincrement list of a table
2238
2239 2004-04-27  Atsushi Enomoto  <atsushi@ximian.com>
2240
2241         * XmlDataLoader.cs : Even when it should ignore schema, it was 
2242           infering schema.
2243         * XmlSchemaDataImporter.cs : DataRelation creation support.
2244           Improved "DataSet" element handing. When attributes are on the
2245           element, it is not a "DataSet" element.
2246           Fixed parent key column name.
2247           Unique name creation is not required. Just raise an error.
2248           Fill facet also for attribute types.
2249
2250 2004-04-27  Atsushi Enomoto  <atsushi@ximian.com>
2251
2252         * DataRow.cs : Null check for CheckReadOnlyStatus() and
2253           CheckNullConstraints(), with some coding guideline fixes.
2254           Type check should be done by Type instance comparison.
2255
2256 2004-04-27  Atsushi Enomoto  <atsushi@ximian.com>
2257
2258         * DataColumnCollection.cs : When add a column to the collection, fill
2259           auto-increment column.
2260
2261 2004-04-26  Boris Kirzner <borisk@mainsoft.com>
2262
2263         * DataColumn.cs : Small perfomance fix (avoid unnesessary string concatenation).
2264         
2265 2004-04-26  Atsushi Enomoto  <atsushi@ximian.com>
2266
2267         * CustomDataClassGenerator.cs : Added.
2268         * TypedDataSetGenerator.cs : Implemented Generate().
2269           Changed GenerateIdName() to call CustomDataClassGenerator.MakeSafeName
2270         * XmlSchemaDataImporter.cs : Table Locale should be supplied.
2271
2272 2004-04-25  Boris Kirzner <borisk@mainsoft.com>
2273
2274         * DataTable.cs : Small perfomance fix (avoid unnesessary string concatenation).
2275         
2276 2004-04-25  Boris Kirzner <borisk@mainsoft.com>
2277
2278         * Constraint.cs : Small perfomance fix (avoid unnesessary string concatenation).
2279
2280 2004-04-23 Umadevi S (sumadevi@novell.com)
2281         *  DataRow.cs: Checked BeginEdit,EndEdit,CancelEdit and Delete methods
2282            - Added error handling to the above methods
2283
2284 2004-04-22  Atsushi Enomoto  <atsushi@ximian.com>
2285
2286         * DataSet.cs : Data should be read when mode is IgnoreSchema (well,
2287           the support is incomplete yet).
2288         * XmlDataLoader.cs : 
2289           Reverted ReadModeSchema() argument change. XmlReadMode would be 
2290           useful to handle IgnoreSchema.
2291           Don't overwrite DataSetName when mode is not such kind.
2292           Set Prefix and Namespace as well as DataSetName.
2293           AllowDBNull looks set false by default for element column.
2294           Set unique constraint as primary key when infering the table schema.
2295
2296 2004-04-21  Atsushi Enomoto  <atsushi@ximian.com>
2297
2298         * DataSet.cs : 
2299           Never set null string for Prefix and Namespace.
2300           In InferXmlSchema() when null XmlReader is passed, just do nothing.
2301           In WriteXmlSchema(string), earlier try block.
2302           In BuildSchema(), try to add serialization namespaces for each
2303           namespaces in DataSet/DataTable/DataColumn.
2304           Removed namespace argument from WriteColumnAsElement() and don't
2305           overwrite when namespace is "". This fixes bug #57330.
2306         * DataColumn.cs : For Namespace and Prefix, never set null.
2307
2308 2004-04-21  Boris Kirzner <borisk@mainsoft.com>
2309
2310         * XmlSchemaMapper.cs : Check for not null unique constraint in ReadXmlSchemaKeyref()
2311           before creating and adding foreign key constraint and relation. 
2312
2313 2004-04-21  Boris Kirzner <borisk@mainsoft.com>
2314
2315         * MergeManager.cs : In AdjustSchema() source table clone should be added
2316           and not the table itself. 
2317
2318 2004-04-21  Boris Kirzner <borisk@mainsoft.com>
2319
2320         * DataSet.cs : 
2321           - CaseSensitive : Additional fix (removed unnesessary assignment).
2322           - CopyProperties : Do not try to copy ExtendedProperties if the collection is empty.
2323
2324 2004-04-21  Boris Kirzner <borisk@mainsoft.com>
2325
2326         * DataTable.cs : Ensure that DataSet property is not null before using it in Clear().
2327           
2328 2004-04-20  Boris Kirzner <borisk@mainsoft.com>
2329
2330         * DataTable.cs : 
2331           - EndLoadData() : perfomance fix in case of null constraint violation
2332             during data load (also in DataRow.cs).
2333           - CaseSensitive : If DataTable belongs to DataSet it should always use
2334             DataSet.CaseSensitive untill explicitly changed.
2335           - CopyProperties() : do not try to copy ExtendedProperties if the collection is empty.
2336           
2337         * DataRow.cs :
2338           - Pefromance fix in case of null constraint violation
2339             during data load (also in DataTable.cs).
2340           - CollectionChanged() : use correct column number after new DataColumn was added
2341             (differs in case some DataColumn was previosly removed).
2342           - EndEdit() - throw away  proposed values only after CheckChildRows() complete.
2343
2344 2004-04-20  Boris Kirzner <borisk@mainsoft.com>
2345
2346         * DataColumnCollection.cs : Since unique constraint is added now
2347           in DataColumn.SetTable() the additional creation of constraint in 
2348           DataColumnCollection.Add() is redundant and causes exception - fixed.
2349           
2350 2004-04-19  Atsushi Enomoto  <atsushi@ximian.com>
2351
2352         * XmlDataLoader.cs : Added "never add data rows" mode.
2353           Removed unused code. However, it is temporary fixes to unify
2354           ReadXml() and InferXmlSchema().
2355         * DataSet.cs : Implemented InferXmlSchema(), though it is incomplete.
2356
2357           I'll create another XmlDataLoader since there are many problems
2358           such that 1) it is too waste to read the entire xml into an
2359           XmlDocument, 2) it does not handle attributes correctly, and 3) it
2360           must handle "ignored namespaces".
2361
2362 2004-04-19  Atsushi Enomoto  <atsushi@ximian.com>
2363
2364         * Added XmlSchemaDataImporter.cs (new schema reader).
2365         * DataSet.cs : Use XmlSchemaDataImporter (right now for DataSet only)
2366           for ReadXmlSchema().
2367           Let schema reading work to ReadXmlSchema().
2368           Don't return ReadSchema when argument read mode was DiffGram.
2369
2370 2004-04-15 Umadevi S (sumadevi@novell.com)
2371         *  Updated Clone/Copy methods in DataSet along with Testcase
2372         *  ForeignKeyConstraint.cs - special ctor implemented 
2373             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).
2374         * Changes in  ConstraintCollection.cs for the above
2375         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.
2376         
2377
2378 2004-04-15  Atsushi Enomoto  <atsushi@ximian.com>
2379
2380         * XmlSchemaMapper.cs : set parent key and foreign key info to 
2381           DataRelation when reading refkey constraints.
2382           Supply constraint name for fkey.
2383
2384 2004-04-15  Atsushi Enomoto  <atsushi@ximian.com>
2385
2386         * XmlDataLoader.cs : Don't overwrite existing DataSetName. When read
2387           mode is Auto, just ignore the schema if there is already schema info.
2388         * DataSet.cs : Similarly ignore schema info for XmlReadMode = Auto.
2389
2390 2004-04-14  Atsushi Enomoto  <atsushi@ximian.com>
2391
2392         * DataSet.cs :
2393           - In MS output, XML declaration looks to have standalone decl (yes).
2394           - ReadXml(reader) just calls to ReadXml(reader, XmlReadMode.Auto)
2395           - ReadXml(reader, mode)
2396             1) return originally specified mode, instead of (always) Auto. 
2397             2) Check empty reader.
2398             3) Check diffgram schema and content separately.
2399             4) When diffgram exists, remaining (the same-level) contents 
2400                won't be consumed. 
2401             5) Similar fact should be applied, but somewhat different. 
2402                InferSchema and IgnoreSchema just skips, Fragment reads both
2403                schema and content, others just reads schema.
2404           - Removed unused code.
2405         * XmlDataLoader.cs :
2406           - Read() should skip in some ReadMode.
2407           - Don't compare schema element name as case-insensitive (well,
2408             should schemas be checked here?)
2409           - Avoided BuildDocument() not to create confusing DataSet
2410             document element.
2411           - Don't add any tables when reader has single element.
2412         * XmlDiffLoader.cs :
2413           When target table was not found, MS.NET doesn't raise an error.
2414         * XmlSchemaMapper.cs :
2415           When XmlSchema.Read() left xml reader at </xs:schema>, read once.
2416
2417 2004-04-13  Atsushi Enomoto  <atsushi@ximian.com>
2418
2419         * DataSet.cs :
2420           - InferXmlSchema(): Throw explicit NotImplementedException now.
2421           - Don't put XML declaration everywhere. Write just for filename arg.
2422           - xmlns="" should not be written. Maybe WebService problem is 
2423             because default namespace is overwritten. This patch will keep
2424             the WS problem away and actually fixes some unit tests (i.e. use
2425             explicit String.Empty for null namespace in WriteStartElement()).
2426           - MoveToContent() should always be called, not only when 
2427             LocalName="xml". It will ignore prolog (DTD, PI, comment etc.).
2428           - Even XmlReadMode is DiffGram, reader might not be "diffgram"
2429             element. As to MSDN, diffgram does not contain schema.
2430
2431 2004-04-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2432
2433         * DataTable.cs: made _initStatus private so that System.Data is CLS
2434         compliant.
2435
2436 2004-04-13 Umadevi S   <sumadevi@novell.com>
2437         *  UniqueConstraint.cs:
2438         *  ConstraintCollection.cs:
2439         *  DataTable.cs:
2440         - Implemented a Constructor for UniqueConstraint.cs
2441         - Used  EndInit on DataTable  to call a delegate which adds the
2442           constraints passed to the most recent call of AddRange().Used
2443           AddRange() on ConstraintCollection to check whether
2444           DataTable.BeginInit has occurred.  If yes, save the argument
2445           constraint collection passed, then return.  If no, Check whether the
2446           constraints are of type UniqueConstraint and initialized with the
2447           special constructor  If yes Initialized the table property of this
2448           UniqueConstraint object with table assosciated with the current
2449           instance of ConstraintCollection class.
2450
2451 2004-04-07  Marek Safar  <marek.safar@seznam.cz>
2452
2453         * Constraint.cs: changed ClsCompliant to CLSCompliant, build fix.
2454
2455 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2456
2457         * Constraint.cs:
2458         * DataColumnCollection.cs:
2459         * DataRelationCollection.cs:
2460         * DataRowCollection.cs:
2461         * DataTableCollection.cs:
2462         * InternalDataCollectionBase.cs:
2463         * Node.cs: CLS compliance for System.Data. Patch by Gert Driesen.
2464         Fixes bug #56557.
2465
2466 2004-04-05  Jackson Harper  <jackson@ximian.com>
2467
2468         * DataTable.cs: Add rows to the row list if there is no filter.
2469         
2470 2004-03-31  Juraj Skripsky <juraj@hotfeet.ch>
2471
2472         * DataColumn.cs : Setting Caption to null sets it to the empty string
2473         (ms.net behaviour, testcase is in DataColumnTest).
2474         
2475         * DataRow.cs : Evaluate DataColumn.Expression when such a column's
2476         value is requested.
2477
2478 2004-03-30 Lluis Sanchez Gual <lluis@ximian.com>
2479
2480         * DataColumn.cs: In Expression setter, set the expression member even if 
2481           it is an empty string.
2482         * DataSet.cs: Support serialization of byte[] columns.
2483         * XmlDataLoader.cs: Support deserialization  of Guid columns. 
2484           Set MappingType.Attribute to columns infered from attributes.
2485
2486 2004-03-29  Juraj Skripsky <juraj@hotfeet.ch>
2487
2488         * ExpressionElements.cs : remove
2489         * DataColumn.cs, DataRelationCollection.cs, DataTable.cs :
2490         Integration of new Mono.Data.SqlExpressions classes used in
2491         DataTable.{Select, Compute}.
2492         Fixes bug #55503 and lots of failures in DataTableTest.cs.
2493
2494 2004-03-28  Juraj Skripsky <juraj@hotfeet.ch>
2495
2496         * Index.cs: Simple fix in ComparePartialRowNonUnique.
2497         This fixes bugs #56129 and #56014.
2498
2499 2004-03-25 Lluis Sanchez Gual <lluis@ximian.com>
2500
2501         * DataSet.cs: In WriteXml (string filename, XmlWriteMode mode), close the
2502           stream after writing the dataset. This fixes bug #52581.
2503           Also added several writer.Close into finally blocks, so writers are properly
2504           closed in case of an exception.
2505
2506 2004-03-12  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2507
2508         * Constraint.cs: DO NOT USE the consts scheme if types can be referenced directly!
2509         * DataColumn.cs: DO NOT USE the consts scheme if types can be referenced directly!
2510         * ColumnTypeConverter.cs: Added stub
2511         * DefaultValueTypeConverter: Added stub
2512         * ConstraintConverter.cs: Added stub
2513
2514 2004-03-04 Eran Domb <erand@mainsoft.com>
2515
2516         * XmlDataLoader.cs : Xml reading reviewed. Added support for additional xml formats as described
2517         in MS.NET documentation (missing DataSet element etc).
2518
2519 2004-03-04 Eran Domb <erand@mainsoft.com>
2520
2521         * Node.cs : Added.
2522         * Index.cs : Rollback last changes.
2523         
2524 2004-03-03  Atsushi Enomoto <atsushi@ximian.com>
2525
2526         * Index.cs : justa build fix.
2527
2528 2004-03-03 Eran Domb <erand@mainsoft.com>
2529         
2530         * Index.cs : Added.
2531         * Constraint.cs, ForeignKeyConstraint.cs, UniqueConstraint, ConstraintCollection.cs, DataColumn.cs,
2532         DataRow.cs, DataRowCollection.cs, DataSet.cs, DataTable.cs : Changes made for using indexes on tables.
2533         This changes made for performance improvement.
2534
2535 2004-02-08 Eran Domb <erand@mainsoft.com>
2536
2537         * XmlSchemaMapper.cs : Read columns is they were written as SimpleContent or as Attributes.
2538
2539 2004-02-08 Eran Domb <erand@mainsoft.com>
2540
2541         * DataSet.cs: Fix some bugs in ReadXml().
2542
2543 2004-02-04 Lluis Sanchez Gual <lluis@ximian.com>
2544
2545         * DataSet.cs: Added missing method that broke the build.
2546
2547 2004-02-04 Eran Domb <erand@mainsoft.com>
2548
2549         * DataRowCollection.cs (InsertAt): Add a check for null row. Replace check of IndexOf with RowId for
2550         better performance.
2551         * DataSet.cs (GetTableSchema) : Add supprot for simple content columns. Change the condition for a case
2552         when all column are attributes (elements count is 0), we still want to add the relations. No relations
2553         can be on simple contents.
2554         (AddUniqueConstraints) Check that the column of the constraint are not hidden.
2555         (AddForeignKeys) Check that the relation has constraints attach to it.
2556         * XmlConstants.cs : Added constant.
2557
2558 2004-02-04 Eran Domb <erand@mainsoft.com>
2559         
2560         * DataSet.cs : GetSchemaSerializable() return null and not BuildSchema().
2561         DoWriteXmlSchema calls BuildSchema ().
2562
2563 2004-02-04 Lluis Sanchez Gual <lluis@ximian.com>
2564
2565         * DataRow.cs: Added SetOriginalValue(), which is used to set the original
2566           value of a column.
2567         * DataRowCollection.cs: In InsertAt(), perform the correct checks and
2568           attach the row.
2569         * DataSet.cs: Fixed method GetChanges(): Parent rows of modified rows must
2570           also be added to the dataset.
2571           In WriteTable(), do not write unchanged rows when writing the original
2572           version of the table.
2573           Added WriteIndividualTableContent(), for writing the contents of a single
2574           table.
2575           Changed BuildSchema and related methods, so it can generate a schema for
2576           any set of tables, not just the tables of the dataset (needed for 
2577           single datatable serialization).
2578         * DataTable.cs: Implemented serialization constructor and GetObjectData method.
2579           Also implemented some ReadXmlSchema methods.
2580         * XmlDiffLoader.cs: Read and process the xml document directly from XmlReader,
2581           instead of loading the full dataset in an XmlDocument. It is faster and
2582           saves memory. Also fixed several problems when generating the changes.
2583         * XmlSchemaMapper.cs: Support reading schemas for single tables (used by
2584           table serialization).
2585
2586 2004-02-02 Eran Domb <erand@mainsoft.com>
2587
2588         * DataSet.cs : Add indentation to the xml serialization only if we create the XmlWriter.
2589         Add the namespace attribute even if namespace is an empty string for inteoperability with MS.NET.
2590         * DataTable.cs (NewRow): Create only one DataRowBuilder.
2591         Initiate new row with row id -1.
2592         * DataRow.cs : Add RowId property.
2593         * DataRowBuilder.cs : Add _rowId member.
2594         * DataRowCollection.cs (Add) : Use the RowId property of the new row to check if it is already exists in the collection.
2595
2596 2004-01-26 Eran Domb <erand@mainsoft.com>
2597
2598         * XmlConstants.cs : Added some constants.
2599         * DataColumn.cs : Added a method to retrive AutoIncrement value.
2600         * XmlDataLoader.cs : Set the value of the foriegn key column, according to the value of the
2601         parent table column.
2602         * XmlDiffLoader.cs : Convert the value comming from the xml.
2603         * XmlSchemaMapper.cs (Read) : Set the DataSet namespace.
2604          (ReadXmlSchemaSequence) : Change the logic that decides if this element is a column or a table.
2605          (ReadXmlSchemaElement) : Set the locale of the dataset.
2606          (ReadColumn) : Set the column type. Find if the column is AutoIncrement.
2607          (GetColumnType) : New method to get the column type from the attribute value.
2608          (ReadXmlSchemaUnique) : Improve parsing of XPath. Set the constraint as a PK if needed,
2609          and add the constraint to the table.
2610          (ReadXmlSchemaKeyref) : Improve parsing of XPath. Create the FK constraint and add it to
2611          the table.
2612         * DataSet.cs : Improving writing of unique constraints, and foriegn key constraint. Givving them the correct names.
2613          Writing more information to the schema for interoperability with ms.net.
2614          Improve diffgarm writing mode.
2615          
2616
2617 2004-01-21 Atsushi Enomoto <atsushi@ximian.com>
2618
2619         * TypedDataSetGenerator.cs : Implemented GenerateIdName().
2620
2621 2004-01-21 Eran Domb <erand@mainsoft.com>
2622
2623         * XmlDataLoader.cs (AddRowToTable) : Give thre new relation correct name.
2624         Do not set the child column to be AutoIncrement.
2625         Create the new column for the relation as MappingType.Hidden so they will not be serialized
2626         when writing the dataset to xml.
2627
2628 2004-01-20 Atsushi Enomoto <atsushi@ximian.com>
2629
2630         * Added missing TypedDataSetGenerator.cs.
2631
2632 2004-01-08 Eran Domb <erand@mainsoft.com>
2633
2634         * XmlSchemaMapper.cs : Fix a bug. Check if table already in DataSet before adding it.
2635         * DataSet.cs (ReadXml) : Fix bugs. Read correctly the xml file with XmlReadMode of DiffGram, 
2636         InferSchema, ReadSchema and IgnoreSchema.
2637         * XmlDataLoader.cs : All modes use the same logic.
2638         * XmlDiffLoader.cs : Adding BuildXmlDocument method to the class.
2639
2640 2004-01-06 Eran Domb <erand@mainsoft.com>
2641
2642         * DataRelationCollection.cs : Use IndexOf in indexer.
2643         * DataSet.cs : Adding support for WriteXml with diffgram. Code style changes.
2644         * XmlDataLoader.cs : Set the DataSet.enforceConstraints to false before loading the tables.
2645         * XmlDiffLoader.cs : Reading nested tables.
2646         * XmlSchemaMapper.cs : Reading the relation.
2647         * XmlConstants.cs : Adding some constants.
2648
2649 2004-01-05  Jackson Harper <jackson@ximian.com>
2650
2651         * DataView.cs: Set readonly property of property descriptor. This
2652         fixes bug #52598.
2653         
2654 2004-01-01  Sanjay Gupta <gsanjay@novell.com>
2655
2656         * DataRelationCollection.cs : Fixed incorrect generation of default 
2657           Relation name.
2658         * DataSet.cs : Added missing functionality in WriteXml().
2659         * XmlConstants.cs : Added new constants.
2660  
2661 2003-12-27  Atsushi Enomoto <atsushi@ximian.com>
2662
2663         * DataSet.cs : Fixed incorrect WriteXml() signature.
2664
2665 2003-12-18  Jackson Harper <jackson@ximian.com>
2666
2667         * DataView.cs: Implement AddNew, Delete, and OnListChanged.
2668         
2669 2003-12-17  Atsushi Enomoto <atsushi@ximian.com>
2670
2671         * DataSet.cs, XmlDataLoader.cs : Table name should be encoded before
2672           they take shape of xml. This fixed bug #52240
2673
2674 2003-12-16  Tim Coleman <tim@timcoleman.com>
2675         * KeyRestrictionBehavior.cs:
2676                 New stubs added for .NET 1.2
2677         * DataTable.cs:
2678                 Changes for 1.2
2679
2680 2003-12-08 Eran Domb <erand@mainsoft.com>
2681         * DataColumn.cs (Expression) : Validate the expression.
2682         
2683         * DataRelationCollection.cs (IndexOf) : Added new method sensetive to case differences in relation name.
2684         (Contains, IndexOf, this[], Add) : Call new IndexOf when needed.
2685         
2686         * DataRow.cs (this[]) : Fix the condition for throwing RowNotInTableException.
2687         (RejectChanges) : Detach row when state was Added.
2688         (CollectionChanged) : Fix a bug.
2689         
2690         * ExpressionElement (ValidateExpression) : Fix a bug.
2691         
2692         * ForeignKeyConstraint.cs (AssertConstraint) : Added implementation. Check all rows from child table have
2693         a parent row in the parent table.
2694         (_validateColumns) : Fix bugs.
2695         
2696         * MergeManager.cs (AdjustSchema) : Fix a bug.
2697         
2698         * XmlDataLoader.cs (ReadModeInferSchema) : Change implementation. Now we can read nested xml, and we generate the relations
2699         between the tables.
2700
2701 2003-11-30 Eran Domb <erand@mainsoft.com>
2702         * DataColumnCollection.cs (this[string name]) : Use IndexOf to find the column.
2703         (Add) : Find if the new column name is the same as the one found in IndexOf.
2704         (IndexOf) : New method.
2705         (Contains) : Use new IndexOf.
2706         (IndexOf) : Use new IndexOf.
2707         
2708         * DataRelationCollection.cs (DataRelationCollection.AddCore) : Add The Relation to the collection.
2709         (DataSetRelationCollection.AddCore) : First add the UniqueConstraint.
2710         
2711         * DataRow.cs (this[int columnIndex, DataRowVersion version]) : Change exceptions.
2712         (Delete) : Detach row if the RowState was Added.
2713         (GetChildRows) : Get the array form the ChildTable.
2714         (GetParentRows) : Get the array from the ParenTable.
2715         
2716         * DataRowCollection.cs (Remove) : Check if row state is Detached to avoid exception.
2717         
2718         * DataSet.cs (IXmlSerializable.ReadXml) : Do not call MoveToContent and ReadEndElement - the XmlSerializationReader does it.
2719         
2720         * DataTable.cs (PrimaryKey) : Fix bugs.
2721         (Compute) : First call Select. Then create ExpressionAggregate to aggregate the Select result.
2722         
2723         * DataTableCollection.cs (Add) : Fix a bug.
2724         
2725         * ExpressionElement.cs (ValidateExpression) : Turning ValidateExpression to static.
2726         (Result) : Added new interface to AggregateExpression that get DataRow[] as a param.
2727         Some code style changes (tab instead of whit spaces, alignment, etc...).
2728         
2729         * ForeignKeyConstraint.cs (_validateColumns) : Throw correct exception.
2730         
2731         * MergeManager.cs (AdjustSchema) : Fix a bug.
2732         
2733         
2734
2735 2003-11-26  Miguel de Icaza  <miguel@ximian.com>
2736
2737         * DataSet.cs: Add a few more missing methods, code style updated
2738         to Mono style.
2739
2740 2003-11-26  Tim Coleman <tim@timcoleman.com>
2741         
2742         * ConflictOptions.cs DataAdapterException.cs DataTableReader.cs
2743         * DbMetaData.cs FillOptions.cs IDataReader2.cs IDataRecord2.cs
2744         * IDataUpdatableRecord.cs IDbAsyncCommand.cs IDbAsyncConnection.cs
2745         * IDbExecutionContext.cs IGetTypedData.cs ISetTypedData.cs
2746         * LoadOption.cs OperationAbortedException.cs ResultSetOptions.cs
2747         * ResultSetSensitivity.cs StatementCompletedEventArgs.cs 
2748         * StatementCompletedEventHandler.cs UpdateOptions.cs:
2749                 New classes added for NET_2_0
2750         * DBConcurrencyException.cs DataRelation.cs DataSet.cs DataTable.cs
2751         * DataTableCollection.cs DataView.cs ForeignKeyConstraint.cs:
2752                 Modifications to add new NET_2_0 functions
2753
2754 2003-11-25  Tim Coleman <tim@timcoleman.com>
2755         * IDataSources.cs:
2756                 New 1.2 class added
2757
2758 2003-11-21  Pedro Martínez Juliá  <yoros@wanadoo.es>
2759
2760         * DataRow.cs: Detached row can be accesible (new rows from data
2761         table are detached). Closes but #51263.
2762
2763 2003-11-19  Eran Domb  <erand@mainsoft.com>
2764         * DataRow.cs : Throw exceptions if Row is Detached. 
2765         (EndEdit) : Check that we are not in middle of ChangeEvent.
2766         (AcceptChanges) : Detach the row.
2767         
2768         * DataRelation.cs : throw correct exception.
2769         *UniqueConstraint.cs : throw correct exception.
2770         
2771
2772 2003-11-09  Pedro Martínez Juliá  <yoros@wanadoo.es>
2773
2774         * DataRow.cs: Use RemoveInternal instead of Remove because the last
2775         one uses Delete and AcceptChanges.
2776
2777         * DataRowCollection.cs: When removing, Delete and AcceptChanges
2778         method from the row are called. Added an internal method that will
2779         be used by DataRow to "physically" remove the row from the list.
2780
2781 2003-11-09  Pedro Martínez Juliá  <yoros@wanadoo.es>
2782
2783         * DataRowCollection.cs: To follow the specification: Remove and
2784         RemoveAt should remove the row. But needed to call DeletingDataRow
2785         to prepare the deleting.
2786
2787         * DataRow.cs: Don't call DeletingDataRow when it is called by the
2788         method Table.Rows.Remove.
2789
2790 2003-11-09  Pedro Martínez Juliá  <yoros@wanadoo.es>
2791
2792         * DataRowCollection.cs: Make the row be deleted by itself. If not,
2793         it fails because we need to call OnRowDeleting and OnRowDeleted. It
2794         is full implemented inside DataRow.
2795
2796 2003-11-05  Eran Domb  <erand@mainsoft.com>
2797         * DataView.cs (ctor) : Changing default RowStateFilter to CurrentRow.
2798
2799 2003-11-04  Eran Domb  <erand@mainsoft.com>
2800         * DataRow.cs (CheckChildRows) : Improving the implementation - checking child for all FK, and not
2801         on all Relations.
2802         (GetChildRows) : Adding some checks.
2803         (GetParentRows) : Adding some checks. Fix a bug in implementation.
2804         (SetParentRow) : Added implementation.
2805         
2806         * DataRowCollection.cs (Add) : Added more checks on the row added to the collection.
2807         * DataTable.cs (Copy) : Set the During Loading flag to save unnecessary assertions.
2808         * ForeignKeyConstraint.cs (AssertConstraint) : Fixing bugs in implementation. Checking for DBNull values in the row.
2809         * MergeManager.cs : Check that the target table is not null.
2810
2811 2003-10-27  Eran Domb  <erand@mainsoft.com>
2812         * DataColumn.cs (DefaultValue) : Changing null value to DBNull. Checking that the type of the new default value 
2813         can be converted to the column type.
2814         
2815         * DataRelationCollection.cs (AddCore) : Give the new FK the name of the relation.
2816         
2817         * DataRow.cs (EndEdit) : Check if we need to validate the constraints.
2818         (GetParentRows, GetChildRows) : Checking that the row has the wanted version, before accessing the row's value.
2819         
2820         * DataRowCollection.cs (Add) : Fixing a bug. 
2821         (Clear) : Before clearing the array check that there is no violation of FK constraint.
2822         
2823         * DataSet.cs (Prefix) : If value is null chage it to empty string.
2824         (GetXml) : Removing the Processing Instructions from the xml string as in MS ADO.NET.
2825         
2826         * ExpressionElement : Adding support for IN expresion.
2827         
2828         * DataTable (CopyConstraints) : New method that copy the tables constraints to the copy table.
2829         (Select) : Adding support for DataViewwRowState.
2830         
2831         * ForeignKeyConstraint.cs (AssertConstraint) : Adding implementation.
2832         
2833         * MergeManager.cs (MergeRow) : Fix bugs.
2834         
2835 2003-10-27  Eran Domb  <erand@mainsoft.com>
2836         * DataRow.cs (SetColumnValue): Donot check null value when in midle of loading data.
2837         check null values when ending loading data.
2838         
2839         * DataSet.cs (RejectChanges) : Imlementation.
2840         (Prefix) : If prefix was changed fire event. Check that the prefix is not null - if null, 
2841         change it to empty string.
2842         
2843         * DataTable.cs (BeginLoadData, EndLoadData) : Impemantation.
2844         
2845 2003-10-22  Eran Domb  <erand@mainsoft.com>
2846         * MergeManager.cs : Fixing bugs. Adding check for PrimaryKey matching.
2847         
2848         * ConstraintCollection.cs (RamoveAt): Change implemntation.
2849         
2850         * DataTableCollection (CanRemove): Removing cast to Constraint.
2851
2852 2003-10-22  Eran Domb  <erand@mainsoft.com>
2853         * DataRelationCollection.cs (AddCore): The unique constraint was added even if the createConstraints flag was false.
2854         (Clear): The collection was cleared without removing the relation from the parent and child tables.
2855         
2856         * DataSet.cs (Copy, Clone): The Relations of the DataSet were not copy.
2857         (HasChanges, Reset): Imlementation.
2858         
2859         * DataTable.cs (HasErrors): There is no flag for errors, instead the table ask her row if they have any errors.
2860         This is because the we do not no when to turn off the flag.
2861         (Locale): Changing implementation to behave like ADO.NET.
2862         (AcceptChanges): Fix bug.
2863         (Clear): Check that this table is not referenced from a foreign key constraint.
2864         (Copy): Do not try to access a deleted row.
2865         (CopyProperties): Copy the PrimaryKey.
2866         (GetChanges, ImportRow): Implementation.
2867         (LoadDataRow): Adding implementation if the table has PrimaryKey.
2868         (ToString): Changing implementation to behave like ADO.NET.
2869         
2870         * UniqueConstraint.cs (AssertConstraint): support for Multiple DataColumns in the constraint.
2871         
2872         * DataRow.cs (Ctor): In the constructor we initiate the current array, but we should initiate only the proposed array for new rows.
2873         (HasErrors): Implementation.
2874         (Delete): Added checking for child rows of the deleted row.
2875         (EndEdit): Added checking for child row and firing events.
2876         (GetColumnError): Added a check that the method will not return null, as in ADO.NET(an empty string is returned).
2877         (GetColumnsInError): Added a check for null values in column error.
2878         (HasVersion): Added special treatment for special RowState.
2879         (CollectionChanged): More checks to avoid NullReferenceException.
2880         
2881         * DataRowCollection.cs (Remove): Fix a bug.
2882
2883
2884 2003-10-01  Duncan Mak  <duncan@ximian.com>
2885
2886         More patches from Eran Domb <erand@mainsoft.com>.
2887
2888         * MergeManager.cs: New file.
2889
2890         * DataRelationCollection.cs (AddCore): Check that a
2891         UniqueConstraint is already exists. It loops over the Relations
2892         instead of the Constraints.
2893         (Add, AddCore): The relation was added twice.
2894
2895         * DataSet.cs (Merge, GetChanges, HasChanges): Implemented.      
2896
2897 2003-09-30  Duncan Mak  <duncan@ximian.com>        
2898
2899         Patches from Eran Domb <erand@mainsoft.com>.
2900
2901         * DataRelation.cs (constructor): When the name of the relation is
2902         null, it should return an empty, not "Relation".
2903         
2904         * DataRow.cs (AcceptChanges): Added special case for
2905         RowState.Detached.
2906         (CancelEdit): Set editing flag to false.
2907         (IsNull): Check that the value is DBNull.
2908
2909         * DataRowCollection.cs (Add): There was no check that the table of
2910         the collection is owned by a DataSet.
2911
2912         * DataSet.cs (OnMergeFailed): Added.    
2913
2914         * UniqueConstraint.cs (AssertConstraint): There was no check that
2915         values in the row are not null, where it is a primary key
2916         column. Also check that the row has a proposed version, if not,
2917         get the current version when we compare the rows.
2918
2919 2003-09-25  Duncan Mak  <duncan@ximian.com>
2920
2921         Patches from Eran Domb <erand@mainsoft.com>.
2922
2923         * DataColumn.cs (Unique): Implemented.
2924         
2925         * DataTable.cs:
2926         * ConstraintCollection.cs:
2927         * ForeignKeyConstraint.cs (_ensureUniqueConstraintExists): Fixes
2928         an Exception thrown. Details:
2929         http://lists.ximian.com/archives/public/mono-devel-list/2003-September/002130.html
2930         
2931         * DataRowCollection.cs (Add): There is no checking that there is
2932         no violation of the unique constrains.
2933
2934         * UniqueConstraint.cs (AssertConstraint): There is no checking on
2935         all columns in the constraint.
2936
2937         * DataTableCollection (Add): Correctly throw an Exception, more
2938         details here:
2939         http://lists.ximian.com/archives/public/mono-devel-list/2003-September/002117.html
2940         (Remove, RemoveAt): Implemented.
2941
2942 2003-07-31  Duncan Mak  <duncan@ximian.com>
2943
2944         * DBConcurrencyException.cs: Added new NET_1_1 no-param constructor.
2945
2946 2003-07-25  Ravi Pratap  <ravi@ximian.com>
2947
2948         * DataRelation.cs (OnPropertyChanging): Calling the 'Invoke'
2949         method on a delegate is disallowed - fix this.
2950
2951 2003-07-22  Lluis Sanchez Gual  <lluis@ximian.com>
2952
2953         * DataSet.cs: Implemented IXmlSerializable interface. Added basic support for
2954           xml serialization. Modified method of writing schema. Now it creates
2955           a XmlSchema object and serializes it using XmlSerializer.
2956         * XmlConstants.cs: Added constants for data type names.
2957         * XmlDataLoader.cs: Fixed deserialization of data. Now converts data to the
2958           type specified in the column.
2959
2960 2003-04-20  Alan Tam <Tam@SiuLung.com>
2961
2962         * DataRelationCollection.cs: Fix a bug that prevent relations
2963         from being added via DataSet.
2964
2965 2003-04-12  Ville Palo <vi64pa@kolumbus.fi>
2966
2967         * UniqueConstraint.cs: one tiny fix.
2968         
2969 2003-04-05  Ville Palo <vi64pa@kolumbus.fi>
2970
2971         * DataTable.cs: Remove UniqueConstraints when adding new ones
2972         
2973 2003-04-04  Ville Palo <vi64pa@kolumbus.fi>
2974
2975         * DataColumnCollection.cs: Little 'case sensitive' fix
2976         
2977 2003-04-04  Ville Palo <vi64pa@kolumbus.fi>
2978
2979         * DataRow.cs: AutoIncrement handling to Constructor
2980         * DataRowCollection.cs: This doesnt need anymore AutoIncrements
2981         
2982 2003-03-27  Ville Palo <vi64pa@kolumbus.fi>
2983
2984         * DataTable.cs: Some fixes to PrimaryKey etc...
2985         * UniqueConstraint.cs: Little clean up
2986         
2987 2003-03-27  Ville Palo <vi64pa@kolumbus.fi>
2988
2989         * DataTable.cs: Tiny fix to ToString () -method
2990         
2991 2003-03-27  Ville Palo <vi64pa@kolumbus.fi>
2992
2993         * ConstraintCollection.cs: Little fix.
2994         * DataColumn.cs: Added new internal method SetUnique()
2995         * UniqueConstraint.cs: some little fixes
2996         
2997 2003-03-26  Ville Palo <vi64pa@kolumbus.fi>
2998
2999         * DataRowCollection.cs: Bugfixes, implementation,...
3000         
3001 2003-03-26  Ville Palo <vi64pa@kolumbus.fi>
3002
3003         * DataColumn.cs: If DataType if set to something else than short, int
3004         or long and AutoIncrement is true, AutoIncrement is must set to false.
3005         
3006 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3007
3008         * DataRow.cs:
3009         (BeginEdit): fixed array bound problem when a column has been added.
3010         (EndEdit): just assign proposed to current as proposed is set to null.
3011         This also fixes another array boudn problem.
3012
3013 2003-03-21  Alan Tam <Tam@SiuLung.com>
3014
3015         * DataRow.cs: Fixed problems in accessers, BeginEdit, CancelEdit,
3016         EndEdit and AcceptChanges to act correctly according to DataRowState
3017         and DataRowVersion.
3018         * DataRowCollection.cs: Call AttachRow and DetachRow when a row is
3019         attached and detached from the collection.
3020
3021 2003-03-20  Alan Tam <Tam@SiuLung.com>
3022
3023         * DataColumn.cs: Store empty string for Expression when null is passed in.
3024         Classes generated by XSD.exe passes null by default.
3025
3026 2003-03-16  Ville Palo <vi64pa@kolumbus.fi>
3027
3028         * DataColumnCollection.cs: Tiny clean up
3029
3030 2003-03-16  Ville Palo <vi64pa@kolumbus.fi>
3031
3032         * DataColumn.cs: little fixes.
3033         * DataColumnCollection.cs: Lots of little fixes and improvments.
3034         
3035 2003-03-12  Alan Tam <Tam@SiuLung.com>
3036
3037         * DataSet.cs: Fixed a bug that the file written does not close correctly.
3038
3039 2003-03-08  Alan Tam <Tam@SiuLung.com>
3040
3041         * DataRelationCollection.cs: Removed the mis-overridden methods
3042         * DataRow.cs: Fixed an attribute
3043         * DataSet.cs: Fixed the modifiers
3044
3045 2003-03-06  Aleksey Demakov <avd@openlinksw.com>
3046
3047         * DataTableCollection.cs: The Contains (string name),
3048         IndexOf (string name) methods, and item[string name] indexer
3049         now behave more like .NET with respect to case-sensitivity.
3050         That is if there is an exactly matching item then this one is used.
3051         If there is only one item differing in case then it used.
3052         If there are more than one item differing in case then
3053         Contains returns false, IndexOf returns -1, and item[]
3054         throws an ArgumentException.
3055
3056 2003-02-28  Ville Palo <vi64pa@kolumbus.fi>
3057
3058         * ExpressionElement.cs: More implementation. 
3059         
3060 2003-02-28  Alan Tam <Tam@SiuLung.com>
3061         * DataSet.cs: Changed WriteTable so that it now calls the newly written
3062         WriteObjectXml to direct the call to the respective XmlConvert method.
3063         This fixes the wrong format written to XML files of bool, float,
3064         double, DateTime and TimeSpan types.
3065
3066 2003-02-25  Alan Tam <Tam@SiuLung.com>
3067
3068         * DataRelation.cs: Added SetDataSet for DataSetRelationCollection to use.
3069         * DataRelationCollection.cs: Implemented AddRange and Contains.
3070         Implemented AddRange, Clear, List and RemoveCore for DataSetRelationColletion.
3071         Implemented AddCore, List and RemoveCore for DataTableRelationCollection.
3072         Reimplemented most Add methods to eliminate duplicated checks.
3073         Centralized RelationName generation procedure in GetNextDefaultRelationName.
3074
3075 2003-02-25  Alan Tam <Tam@SiuLung.com>
3076
3077         * DataColumn.cs: Fixed wrong storage representation of Expression
3078         (using empty string instead of null) so that ToString() returns nothing.
3079         * DataColumnCollection.cs: Reimplemented GetNextDefaultColumnName so that
3080         auto column naming now works as expected. Reimplemented some Add methods
3081         to eliminate code duplication.
3082
3083 2003-02-19  Ville Palo <vi64pa@kolumbus.fi>
3084
3085         * DataTable.cs: DataTable.CaseSensitive follows parent 
3086         DataSet.CaseSensitive property if DataTable.CaseSensitive has never
3087         been changed directly from DataTable
3088         
3089 2003-02-19  Ville Palo <vi64pa@kolumbus.fi>
3090
3091         * DataSet.cs: When CaseSensitive property is changed all of the Tables
3092         of DataSet have to change too
3093         
3094 2003-02-19  Daniel Morgan <danmorg@sc.rr.com>
3095
3096         * InternalDataCollectionBase.cs: revert change to field
3097         to fix build
3098         
3099         * DataViewManager.cs
3100         * DataView.cs
3101         * DataTable.cs
3102         * DataSet.cs: commented use of DesignerAttribute
3103         because it broke the build.  According to MSDN,
3104         DesignerAttribute does not have a zero-argument constructor
3105
3106 2003-02-18  Ville Palo <vi64pa@kolumbus.fi>
3107
3108         * DataColumnCollectin.cs: Little fix for indexer and case sensitivity
3109         
3110 2003-02-18  Alan Tam <Tam@SiuLung.com>
3111
3112         * DataRow.cs: Implemented GetParentRow and GetParentRows.
3113         * DataSet.cs: Added stub for HasChanges, InferXmlSchema,
3114                       OnPropertyChanging, OnRemoveRelation, OnRemoveTable,
3115                       RaisePropertyChanging.
3116         * DataTable.cs: Implemented NewRowArray.
3117         * DataTablePropertyDescriptor: Fixed a modifier.
3118         * InternalDataCollectionBase.cs: Fixed modifiers. Implemented SyncRoot.
3119         * PropertyCollection.cs: Minor fix.
3120         * ConstraintCollection.cs DataColumn.cs DataColumnCollection.cs 
3121         * DataRelation.cs DataRelationCollection.cs DataRow.cs
3122         * DataRowCollection.cs DataRowState.cs DataSet.cs DataTable.cs
3123         * DataTableCollection.cs DataTablePropertyDescriptor.cs DataView.cs
3124         * DataViewManager.cs DataViewRowState.cs DataViewSettingCollection.cs
3125         * ForeignKeyConstraint.cs InternalDataCollectionBase.cs
3126         * PropertyCollection.cs UniqueConstraint.cs: Added missing attributes
3127         
3128 2003-02-08  Ville Palo <vi64pa@koti.soon.fi>
3129
3130         * ExpressionElement.cs: More implementation
3131         
3132 2003-02-05  Alan Tam <Tam@SiuLung.com>
3133
3134         * DataSet.cs: Added framework for DataSet.Update Implemented missing 
3135         methods GetSchemaSerializable, GetSerializationData, 
3136         ReadXmlSerializable, ShouldSerializeRelations and ShouldSerializeTables
3137         for DataSet
3138         * DataTable.cs: Implemented missing methods CreateInstance and 
3139         GetRowType for DataTable
3140         
3141 2003-02-03  Ville Palo <vi64pa@koti.soon.fi>
3142
3143         * DataSet.cs: Implemented private method MapType for 
3144         mapping datatypes for XmlSchema
3145         
3146 2003-02-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3147
3148         * DataView.cs: implemented Dispose.
3149
3150 2003-01-30  Ville Palo <vi64pa@koti.soon.fi>
3151
3152         * ExpressionElement.cs: Added new file. This file is for parsing
3153           and DataData.Select () -methods and DataColumn.Expression -property
3154         * DataTable.cs: Implemented Select(string) -method      
3155         
3156 2003-01-28  Ville Palo <vi64pa@koti.soon.fi>
3157
3158         * DataSet.cs: One little fix to writing xml
3159         
3160 2003-01-27  Ville Palo <vi64pa@koti.soon.fi>
3161
3162         * XmlSchemaMapper.cs: Some fixes.
3163         * DatSet.cs: Some XmlFixes and BeginInit ()/ EndInit () -fix
3164
3165                 
3166 2003-01-24  Ville Palo <vi64pa@koti.soon.fi>
3167
3168         * UniqueConstraint.cs: Do not set columns Unique property true 
3169         as a default.
3170         * ForeignKeyConstraint.cs: Add UniqueConstraint to parent Table
3171         
3172 2003-01-18  Ville Palo <vi64pa@koti.soon.fi>
3173
3174         * DataTableCollection.cs: Now names new DataTable if it doesn't 
3175         already have a name.
3176         
3177 2003-01-17  Ville Palo <vi64pa@koti.soon.fi>
3178
3179         * XmlSchemaMapper.cs: Improvments.
3180         * XmlConstaints.cs: Added more constants.
3181         * DataSet.cs: Improvments of reading and writing xml
3182         * DataColumn.cs: Added default values of properties.
3183                 
3184 2003-01-14  Ville Palo <vi64pa@koti.soon.fi>
3185
3186         * XmlSchemaMapper.cs: Some improvments
3187         
3188 2003-01-13  Ville Palo <vi64pa@koti.soon.fi>
3189
3190         * DataRowCollection.cs: Added IndexOutOfRangeException
3191         * DataTableCollection.cs: Added OnCollectionChanging and 
3192         OnCollectionChanged events.
3193         * DataSet.cs: Many fixes. Implemented Clone () and Copy () -methods
3194         * DataTable.cs: Implemented Copy () and Clone () methods.
3195         * XmlDataLoader.cs: some fixes.
3196         * XmlSchemaMapper.cs: comments.
3197         
3198 2003-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3199
3200         * DataColumnPropertyDescriptor.cs: store columnIndex in the .ctor.
3201
3202 2003-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3203
3204         * DataColumnPropertyDescriptor.cs: fixed typo.
3205         * DataViewManagerListItemTypeDescriptor.cs: added new internal property
3206         to get the DataViewManager and removed TablePD class.
3207         * DataTablePropertyDescriptor.cs: TablePD class is now this one as
3208         suggested by danmorg.
3209
3210 2003-01-06  Ville Palo <vi64pa@koti.soon.fi>
3211
3212         * XmlDataLoader.cs: Moved diffgram stuff to new internal class
3213         XmlDiffLoader.
3214         * XmlDiffLoader.cs: new class for diffgrams. Added handling of 
3215         diffgr:Errors and some fixes and changed XmlReader to XPathNavigator.
3216         
3217 2003-01-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3218
3219         * DataView.cs: made dataViewManager internal.
3220         * DataViewManager.cs: use ICustomTypeDescriptor. We don't want the
3221         properties of the object, but the values of the columns present in a
3222         row.
3223         
3224         * DataViewManagerListItemTypeDescriptor.cs: implemented GetProperties,
3225         which returns a PropertyDescriptorCollection. Created a new class
3226         derived from PropertyDescriptor that treats Table as an object whose
3227         properties are DataRowView.
3228
3229 2003-01-04  Ville Palo <vi64pa@koti.soon.fi>
3230
3231         * XmlSchemaMapper.cs: Added handling for Constraints, Attributes.
3232         
3233 2003-01-04  Ville Palo <vi64pa@koti.soon.fi>
3234
3235         * DataColumn.cs: ExtendedProperties is by default !null-
3236         
3237 2003-01-04  Ville Palo <vi64pa@koti.soon.fi>
3238
3239         * DataColumnCollection.cs: Add (DataColumn Column) -method didn't 
3240         set column's ordinal.
3241         
3242 2003-01-02  Ville Palo <vi64pa@koti.soon.fi>
3243
3244         * DataSet.cs: 
3245         * XmlDataLoader.cs: XmlReader closing fixes.
3246         * XmlSchemaReader.cs: Added support for ref=
3247         
3248 2003-01-01  Ville Palo <vi64pa@koti.soon.fi>
3249
3250         * DataSet.cs: 
3251           - Added XmlReader and XmlWriter Closing.
3252           - Moved ReadXmlSchema stuff to new internal class XmlSchemaMapper.
3253         * XmlSchemaMapper.cs
3254           - Much better way IMHO  to map xmlschema than the old one in 
3255             DataSet.cs. Its, more flexible, cleaner, ...
3256                         
3257 2002-12-29  Ville Palo <vi64pa@koti.soon.fi>
3258
3259         * XmlDataLoader.cs: Reading diffgrams.
3260         
3261 2002-12-29  Ville Palo <vi64pa@koti.soon.fi>
3262
3263         * DataRow.cs: Little fix to indexer and DataColumnCang* trigger fixes.
3264         * DataTable.cs: Added ChanginDataColumn () for triggering 
3265         DataColumnChanging event
3266         
3267 2002-12-28  Ville Palo <vi64pa@koti.soon.fi>
3268
3269         * DataSet.cs: Indentations to WriteXmlSchema () and one little fix
3270         
3271 2002-12-28  Ville Palo <vi64pa@koti.soon.fi>
3272
3273         * DataSet.cs: Indentations to WriteXml ()
3274         
3275 2002-12-27  Ville Palo <vi64pa@koti.soon.fi>
3276
3277         * DataSet.cs:
3278         * XmlDataLoader.cs: Moved ReadXml -stuff from DataSet.cs to new
3279         class XmlDataLoader.cs
3280         
3281 2002-12-19  Ville Palo <vi64pa@koti.soon.fi>
3282
3283         * DataSet.cs Implemented ReadXml with XmlReadMode.ReadSchema
3284         
3285 2002-12-18  Ville Palo <vi64pa@koti.soon.fi>
3286
3287         * DataSet.cs: Started to implement ReadXml-methods.
3288         
3289 2002-12-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3290
3291         * DataSet.cs: implemented DefaultViewManager and GetList.
3292
3293         * DataViewManager.cs: a bit of work on IList and ITypedList needed by
3294         DataList in System.Web.
3295
3296         * DataViewManagerListItemTypeDescriptor.cs: custom type descriptor for
3297         DataViewManager.
3298
3299 2002-12-16  Ville Palo <vi64pa@koti.soon.fi>
3300
3301         * DataRow.cs
3302         * DataTable.cs: Fixed NullException (rollback -event)
3303         * DataSet.cs: WriteXml -method does not anymore write <?xml... row.
3304         
3305 2002-12-15  Ville Palo <vi64pa@koti.soon.fi>
3306
3307         * DataRow.cs:
3308         * DataRowCollection.cs: Moved event triggering from DataRow to
3309         DataRowCollection.
3310         
3311 2002-12-09  Ville Palo <vi64pa@koti.soon.fi>
3312
3313         * DataSet.cs: Little fix to WriteTable () -method 
3314         and DoReadXmlSchema () -method.
3315         
3316 2002-12-06  Ville Palo <vi64pa@koti.soon.fi>
3317
3318         * DataSet.cs: Clean up to reading xmlschema. This looks much better 
3319         now (work better too), but it not working correctly yet.
3320         
3321 2002-12-04  Ville Palo <vi64pa@koti.soon.fi>
3322
3323         * DataRow.cs: 
3324         * DataRowCollection.cs: Added some event handlins stuff.
3325         * DataSet.cs: Some fixes.
3326         * DataTable.cs: Added event handlers.
3327         
3328 2002-11-30  Ville Palo <vi64pa@koti.soon.fi>
3329
3330         * DataRowChangeEventArgs.cs: Implemented Action and Row properties 
3331         
3332 2002-11-30  Ville Palo <vi64pa@koti.soon.fi>
3333
3334         * System.Data/DataRow.cs: Added internal property XmlDataID
3335         
3336 2002-11-29  Ville Palo <vi64pa@koti.soon.fi>
3337
3338         * DataSystem.Data.DataTableCollection.cs:
3339         Removed HashTable. There could be situations where DataTable
3340         is added to collection before it hava TableName. So using 
3341         HashTable is impossible.
3342         
3343 2002-11-19  Carlos Guzmán Álvarez <carlosga@telefonica.net>
3344
3345         * DataRow.cs: an object that is equal to null 
3346         should be allowed to be set in this indexer too
3347         to be like .NET
3348
3349 2002-11-06  Daniel Morgan <danmorg@sc.rr.com>
3350
3351         * DataColumnPropertyDescriptor.cs: added file
3352         
3353         * System.Data/DataRowView.cs: started implementation
3354         
3355         * DataTable.cs: stubbed more interfaces.  Implemented
3356         IListSource.GetList()
3357         
3358         * DataView.cs: stubbed more interfaces.  Implemented
3359         some properties and methods: GetEnumerator(), 
3360         ITypedList.GetItemProperties, Item indexer, CopyTo()
3361
3362 2002-05-18  Nick Drochak  <ndrochak@gol.com>
3363
3364         * DataRow.cs: Fix typo.