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