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