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