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