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