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