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