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