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