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