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