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