* DataColumn.cs: In Expression setter, set the expression member even if
[mono.git] / mcs / class / System.Data / System.Data / ChangeLog
1 2004-03-30 Lluis Sanchez Gual <lluis@ximian.com>
2
3         * DataColumn.cs: In Expression setter, set the expression member even if 
4           it is an empty string.
5         * DataSet.cs: Support serialization of byte[] columns.
6         * XmlDataLoader.cs: Support deserialization  of Guid columns. 
7           Set MappingType.Attribute to columns infered from attributes.
8
9 2004-03-29  Juraj Skripsky <juraj@hotfeet.ch>
10
11         * ExpressionElements.cs : remove
12         * DataColumn.cs, DataRelationCollection.cs, DataTable.cs :
13         Integration of new Mono.Data.SqlExpressions classes used in
14         DataTable.{Select, Compute}.
15         Fixes bug #55503 and lots of failures in DataTableTest.cs.
16
17 2004-03-28  Juraj Skripsky <juraj@hotfeet.ch>
18
19         * Index.cs: Simple fix in ComparePartialRowNonUnique.
20         This fixes bugs #56129 and #56014.
21
22 2004-03-25 Lluis Sanchez Gual <lluis@ximian.com>
23
24         * DataSet.cs: In WriteXml (string filename, XmlWriteMode mode), close the
25           stream after writing the dataset. This fixes bug #52581.
26           Also added several writer.Close into finally blocks, so writers are properly
27           closed in case of an exception.
28
29 2004-03-12  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
30
31         * Constraint.cs: DO NOT USE the consts scheme if types can be referenced directly!
32         * DataColumn.cs: DO NOT USE the consts scheme if types can be referenced directly!
33         * ColumnTypeConverter.cs: Added stub
34         * DefaultValueTypeConverter: Added stub
35         * ConstraintConverter.cs: Added stub
36
37 2004-03-04 Eran Domb <erand@mainsoft.com>
38
39         * XmlDataLoader.cs : Xml reading reviewed. Added support for additional xml formats as described
40         in MS.NET documentation (missing DataSet element etc).
41
42 2004-03-04 Eran Domb <erand@mainsoft.com>
43
44         * Node.cs : Added.
45         * Index.cs : Rollback last changes.
46         
47 2004-03-03  Atsushi Enomoto <atsushi@ximian.com>
48
49         * Index.cs : justa build fix.
50
51 2004-03-03 Eran Domb <erand@mainsoft.com>
52         
53         * Index.cs : Added.
54         * Constraint.cs, ForeignKeyConstraint.cs, UniqueConstraint, ConstraintCollection.cs, DataColumn.cs,
55         DataRow.cs, DataRowCollection.cs, DataSet.cs, DataTable.cs : Changes made for using indexes on tables.
56         This changes made for performance improvement.
57
58 2004-02-08 Eran Domb <erand@mainsoft.com>
59
60         * XmlSchemaMapper.cs : Read columns is they were written as SimpleContent or as Attributes.
61
62 2004-02-08 Eran Domb <erand@mainsoft.com>
63
64         * DataSet.cs: Fix some bugs in ReadXml().
65
66 2004-02-04 Lluis Sanchez Gual <lluis@ximian.com>
67
68         * DataSet.cs: Added missing method that broke the build.
69
70 2004-02-04 Eran Domb <erand@mainsoft.com>
71
72         * DataRowCollection.cs (InsertAt): Add a check for null row. Replace check of IndexOf with RowId for
73         better performance.
74         * DataSet.cs (GetTableSchema) : Add supprot for simple content columns. Change the condition for a case
75         when all column are attributes (elements count is 0), we still want to add the relations. No relations
76         can be on simple contents.
77         (AddUniqueConstraints) Check that the column of the constraint are not hidden.
78         (AddForeignKeys) Check that the relation has constraints attach to it.
79         * XmlConstants.cs : Added constant.
80
81 2004-02-04 Eran Domb <erand@mainsoft.com>
82         
83         * DataSet.cs : GetSchemaSerializable() return null and not BuildSchema().
84         DoWriteXmlSchema calls BuildSchema ().
85
86 2004-02-04 Lluis Sanchez Gual <lluis@ximian.com>
87
88         * DataRow.cs: Added SetOriginalValue(), which is used to set the original
89           value of a column.
90         * DataRowCollection.cs: In InsertAt(), perform the correct checks and
91           attach the row.
92         * DataSet.cs: Fixed method GetChanges(): Parent rows of modified rows must
93           also be added to the dataset.
94           In WriteTable(), do not write unchanged rows when writing the original
95           version of the table.
96           Added WriteIndividualTableContent(), for writing the contents of a single
97           table.
98           Changed BuildSchema and related methods, so it can generate a schema for
99           any set of tables, not just the tables of the dataset (needed for 
100           single datatable serialization).
101         * DataTable.cs: Implemented serialization constructor and GetObjectData method.
102           Also implemented some ReadXmlSchema methods.
103         * XmlDiffLoader.cs: Read and process the xml document directly from XmlReader,
104           instead of loading the full dataset in an XmlDocument. It is faster and
105           saves memory. Also fixed several problems when generating the changes.
106         * XmlSchemaMapper.cs: Support reading schemas for single tables (used by
107           table serialization).
108
109 2004-02-02 Eran Domb <erand@mainsoft.com>
110
111         * DataSet.cs : Add indentation to the xml serialization only if we create the XmlWriter.
112         Add the namespace attribute even if namespace is an empty string for inteoperability with MS.NET.
113         * DataTable.cs (NewRow): Create only one DataRowBuilder.
114         Initiate new row with row id -1.
115         * DataRow.cs : Add RowId property.
116         * DataRowBuilder.cs : Add _rowId member.
117         * DataRowCollection.cs (Add) : Use the RowId property of the new row to check if it is already exists in the collection.
118
119 2004-01-26 Eran Domb <erand@mainsoft.com>
120
121         * XmlConstants.cs : Added some constants.
122         * DataColumn.cs : Added a method to retrive AutoIncrement value.
123         * XmlDataLoader.cs : Set the value of the foriegn key column, according to the value of the
124         parent table column.
125         * XmlDiffLoader.cs : Convert the value comming from the xml.
126         * XmlSchemaMapper.cs (Read) : Set the DataSet namespace.
127          (ReadXmlSchemaSequence) : Change the logic that decides if this element is a column or a table.
128          (ReadXmlSchemaElement) : Set the locale of the dataset.
129          (ReadColumn) : Set the column type. Find if the column is AutoIncrement.
130          (GetColumnType) : New method to get the column type from the attribute value.
131          (ReadXmlSchemaUnique) : Improve parsing of XPath. Set the constraint as a PK if needed,
132          and add the constraint to the table.
133          (ReadXmlSchemaKeyref) : Improve parsing of XPath. Create the FK constraint and add it to
134          the table.
135         * DataSet.cs : Improving writing of unique constraints, and foriegn key constraint. Givving them the correct names.
136          Writing more information to the schema for interoperability with ms.net.
137          Improve diffgarm writing mode.
138          
139
140 2004-01-21 Atsushi Enomoto <atsushi@ximian.com>
141
142         * TypedDataSetGenerator.cs : Implemented GenerateIdName().
143
144 2004-01-21 Eran Domb <erand@mainsoft.com>
145
146         * XmlDataLoader.cs (AddRowToTable) : Give thre new relation correct name.
147         Do not set the child column to be AutoIncrement.
148         Create the new column for the relation as MappingType.Hidden so they will not be serialized
149         when writing the dataset to xml.
150
151 2004-01-20 Atsushi Enomoto <atsushi@ximian.com>
152
153         * Added missing TypedDataSetGenerator.cs.
154
155 2004-01-08 Eran Domb <erand@mainsoft.com>
156
157         * XmlSchemaMapper.cs : Fix a bug. Check if table already in DataSet before adding it.
158         * DataSet.cs (ReadXml) : Fix bugs. Read correctly the xml file with XmlReadMode of DiffGram, 
159         InferSchema, ReadSchema and IgnoreSchema.
160         * XmlDataLoader.cs : All modes use the same logic.
161         * XmlDiffLoader.cs : Adding BuildXmlDocument method to the class.
162
163 2004-01-06 Eran Domb <erand@mainsoft.com>
164
165         * DataRelationCollection.cs : Use IndexOf in indexer.
166         * DataSet.cs : Adding support for WriteXml with diffgram. Code style changes.
167         * XmlDataLoader.cs : Set the DataSet.enforceConstraints to false before loading the tables.
168         * XmlDiffLoader.cs : Reading nested tables.
169         * XmlSchemaMapper.cs : Reading the relation.
170         * XmlConstants.cs : Adding some constants.
171
172 2004-01-05  Jackson Harper <jackson@ximian.com>
173
174         * DataView.cs: Set readonly property of property descriptor. This
175         fixes bug #52598.
176         
177 2004-01-01  Sanjay Gupta <gsanjay@novell.com>
178
179         * DataRelationCollection.cs : Fixed incorrect generation of default 
180           Relation name.
181         * DataSet.cs : Added missing functionality in WriteXml().
182         * XmlConstants.cs : Added new constants.
183  
184 2003-12-27  Atsushi Enomoto <atsushi@ximian.com>
185
186         * DataSet.cs : Fixed incorrect WriteXml() signature.
187
188 2003-12-18  Jackson Harper <jackson@ximian.com>
189
190         * DataView.cs: Implement AddNew, Delete, and OnListChanged.
191         
192 2003-12-17  Atsushi Enomoto <atsushi@ximian.com>
193
194         * DataSet.cs, XmlDataLoader.cs : Table name should be encoded before
195           they take shape of xml. This fixed bug #52240
196
197 2003-12-16  Tim Coleman <tim@timcoleman.com>
198         * KeyRestrictionBehavior.cs:
199                 New stubs added for .NET 1.2
200         * DataTable.cs:
201                 Changes for 1.2
202
203 2003-12-08 Eran Domb <erand@mainsoft.com>
204         * DataColumn.cs (Expression) : Validate the expression.
205         
206         * DataRelationCollection.cs (IndexOf) : Added new method sensetive to case differences in relation name.
207         (Contains, IndexOf, this[], Add) : Call new IndexOf when needed.
208         
209         * DataRow.cs (this[]) : Fix the condition for throwing RowNotInTableException.
210         (RejectChanges) : Detach row when state was Added.
211         (CollectionChanged) : Fix a bug.
212         
213         * ExpressionElement (ValidateExpression) : Fix a bug.
214         
215         * ForeignKeyConstraint.cs (AssertConstraint) : Added implementation. Check all rows from child table have
216         a parent row in the parent table.
217         (_validateColumns) : Fix bugs.
218         
219         * MergeManager.cs (AdjustSchema) : Fix a bug.
220         
221         * XmlDataLoader.cs (ReadModeInferSchema) : Change implementation. Now we can read nested xml, and we generate the relations
222         between the tables.
223
224 2003-11-30 Eran Domb <erand@mainsoft.com>
225         * DataColumnCollection.cs (this[string name]) : Use IndexOf to find the column.
226         (Add) : Find if the new column name is the same as the one found in IndexOf.
227         (IndexOf) : New method.
228         (Contains) : Use new IndexOf.
229         (IndexOf) : Use new IndexOf.
230         
231         * DataRelationCollection.cs (DataRelationCollection.AddCore) : Add The Relation to the collection.
232         (DataSetRelationCollection.AddCore) : First add the UniqueConstraint.
233         
234         * DataRow.cs (this[int columnIndex, DataRowVersion version]) : Change exceptions.
235         (Delete) : Detach row if the RowState was Added.
236         (GetChildRows) : Get the array form the ChildTable.
237         (GetParentRows) : Get the array from the ParenTable.
238         
239         * DataRowCollection.cs (Remove) : Check if row state is Detached to avoid exception.
240         
241         * DataSet.cs (IXmlSerializable.ReadXml) : Do not call MoveToContent and ReadEndElement - the XmlSerializationReader does it.
242         
243         * DataTable.cs (PrimaryKey) : Fix bugs.
244         (Compute) : First call Select. Then create ExpressionAggregate to aggregate the Select result.
245         
246         * DataTableCollection.cs (Add) : Fix a bug.
247         
248         * ExpressionElement.cs (ValidateExpression) : Turning ValidateExpression to static.
249         (Result) : Added new interface to AggregateExpression that get DataRow[] as a param.
250         Some code style changes (tab instead of whit spaces, alignment, etc...).
251         
252         * ForeignKeyConstraint.cs (_validateColumns) : Throw correct exception.
253         
254         * MergeManager.cs (AdjustSchema) : Fix a bug.
255         
256         
257
258 2003-11-26  Miguel de Icaza  <miguel@ximian.com>
259
260         * DataSet.cs: Add a few more missing methods, code style updated
261         to Mono style.
262
263 2003-11-26  Tim Coleman <tim@timcoleman.com>
264         
265         * ConflictOptions.cs DataAdapterException.cs DataTableReader.cs
266         * DbMetaData.cs FillOptions.cs IDataReader2.cs IDataRecord2.cs
267         * IDataUpdatableRecord.cs IDbAsyncCommand.cs IDbAsyncConnection.cs
268         * IDbExecutionContext.cs IGetTypedData.cs ISetTypedData.cs
269         * LoadOption.cs OperationAbortedException.cs ResultSetOptions.cs
270         * ResultSetSensitivity.cs StatementCompletedEventArgs.cs 
271         * StatementCompletedEventHandler.cs UpdateOptions.cs:
272                 New classes added for NET_1_2
273         * DBConcurrencyException.cs DataRelation.cs DataSet.cs DataTable.cs
274         * DataTableCollection.cs DataView.cs ForeignKeyConstraint.cs:
275                 Modifications to add new NET_1_2 functions
276
277 2003-11-25  Tim Coleman <tim@timcoleman.com>
278         * IDataSources.cs:
279                 New 1.2 class added
280
281 2003-11-21  Pedro Martínez Juliá  <yoros@wanadoo.es>
282
283         * DataRow.cs: Detached row can be accesible (new rows from data
284         table are detached). Closes but #51263.
285
286 2003-11-19  Eran Domb  <erand@mainsoft.com>
287         * DataRow.cs : Throw exceptions if Row is Detached. 
288         (EndEdit) : Check that we are not in middle of ChangeEvent.
289         (AcceptChanges) : Detach the row.
290         
291         * DataRelation.cs : throw correct exception.
292         *UniqueConstraint.cs : throw correct exception.
293         
294
295 2003-11-09  Pedro Martínez Juliá  <yoros@wanadoo.es>
296
297         * DataRow.cs: Use RemoveInternal instead of Remove because the last
298         one uses Delete and AcceptChanges.
299
300         * DataRowCollection.cs: When removing, Delete and AcceptChanges
301         method from the row are called. Added an internal method that will
302         be used by DataRow to "physically" remove the row from the list.
303
304 2003-11-09  Pedro Martínez Juliá  <yoros@wanadoo.es>
305
306         * DataRowCollection.cs: To follow the specification: Remove and
307         RemoveAt should remove the row. But needed to call DeletingDataRow
308         to prepare the deleting.
309
310         * DataRow.cs: Don't call DeletingDataRow when it is called by the
311         method Table.Rows.Remove.
312
313 2003-11-09  Pedro Martínez Juliá  <yoros@wanadoo.es>
314
315         * DataRowCollection.cs: Make the row be deleted by itself. If not,
316         it fails because we need to call OnRowDeleting and OnRowDeleted. It
317         is full implemented inside DataRow.
318
319 2003-11-05  Eran Domb  <erand@mainsoft.com>
320         * DataView.cs (ctor) : Changing default RowStateFilter to CurrentRow.
321
322 2003-11-04  Eran Domb  <erand@mainsoft.com>
323         * DataRow.cs (CheckChildRows) : Improving the implementation - checking child for all FK, and not
324         on all Relations.
325         (GetChildRows) : Adding some checks.
326         (GetParentRows) : Adding some checks. Fix a bug in implementation.
327         (SetParentRow) : Added implementation.
328         
329         * DataRowCollection.cs (Add) : Added more checks on the row added to the collection.
330         * DataTable.cs (Copy) : Set the During Loading flag to save unnecessary assertions.
331         * ForeignKeyConstraint.cs (AssertConstraint) : Fixing bugs in implementation. Checking for DBNull values in the row.
332         * MergeManager.cs : Check that the target table is not null.
333
334 2003-10-27  Eran Domb  <erand@mainsoft.com>
335         * DataColumn.cs (DefaultValue) : Changing null value to DBNull. Checking that the type of the new default value 
336         can be converted to the column type.
337         
338         * DataRelationCollection.cs (AddCore) : Give the new FK the name of the relation.
339         
340         * DataRow.cs (EndEdit) : Check if we need to validate the constraints.
341         (GetParentRows, GetChildRows) : Checking that the row has the wanted version, before accessing the row's value.
342         
343         * DataRowCollection.cs (Add) : Fixing a bug. 
344         (Clear) : Before clearing the array check that there is no violation of FK constraint.
345         
346         * DataSet.cs (Prefix) : If value is null chage it to empty string.
347         (GetXml) : Removing the Processing Instructions from the xml string as in MS ADO.NET.
348         
349         * ExpressionElement : Adding support for IN expresion.
350         
351         * DataTable (CopyConstraints) : New method that copy the tables constraints to the copy table.
352         (Select) : Adding support for DataViewwRowState.
353         
354         * ForeignKeyConstraint.cs (AssertConstraint) : Adding implementation.
355         
356         * MergeManager.cs (MergeRow) : Fix bugs.
357         
358 2003-10-27  Eran Domb  <erand@mainsoft.com>
359         * DataRow.cs (SetColumnValue): Donot check null value when in midle of loading data.
360         check null values when ending loading data.
361         
362         * DataSet.cs (RejectChanges) : Imlementation.
363         (Prefix) : If prefix was changed fire event. Check that the prefix is not null - if null, 
364         change it to empty string.
365         
366         * DataTable.cs (BeginLoadData, EndLoadData) : Impemantation.
367         
368 2003-10-22  Eran Domb  <erand@mainsoft.com>
369         * MergeManager.cs : Fixing bugs. Adding check for PrimaryKey matching.
370         
371         * ConstraintCollection.cs (RamoveAt): Change implemntation.
372         
373         * DataTableCollection (CanRemove): Removing cast to Constraint.
374
375 2003-10-22  Eran Domb  <erand@mainsoft.com>
376         * DataRelationCollection.cs (AddCore): The unique constraint was added even if the createConstraints flag was false.
377         (Clear): The collection was cleared without removing the relation from the parent and child tables.
378         
379         * DataSet.cs (Copy, Clone): The Relations of the DataSet were not copy.
380         (HasChanges, Reset): Imlementation.
381         
382         * DataTable.cs (HasErrors): There is no flag for errors, instead the table ask her row if they have any errors.\r
383         This is because the we do not no when to turn off the flag.
384         (Locale): Changing implementation to behave like ADO.NET.
385         (AcceptChanges): Fix bug.
386         (Clear): Check that this table is not referenced from a foreign key constraint.
387         (Copy): Do not try to access a deleted row.
388         (CopyProperties): Copy the PrimaryKey.
389         (GetChanges, ImportRow): Implementation.
390         (LoadDataRow): Adding implementation if the table has PrimaryKey.
391         (ToString): Changing implementation to behave like ADO.NET.
392         
393         * UniqueConstraint.cs (AssertConstraint): support for Multiple DataColumns in the constraint.
394         
395         * DataRow.cs (Ctor): In the constructor we initiate the current array, but we should initiate only the proposed array for new rows.
396         (HasErrors): Implementation.
397         (Delete): Added checking for child rows of the deleted row.
398         (EndEdit): Added checking for child row and firing events.
399         (GetColumnError): Added a check that the method will not return null, as in ADO.NET(an empty string is returned).
400         (GetColumnsInError): Added a check for null values in column error.
401         (HasVersion): Added special treatment for special RowState.
402         (CollectionChanged): More checks to avoid NullReferenceException.
403         
404         * DataRowCollection.cs (Remove): Fix a bug.\r
405
406
407 2003-10-01  Duncan Mak  <duncan@ximian.com>
408
409         More patches from Eran Domb <erand@mainsoft.com>.
410
411         * MergeManager.cs: New file.
412
413         * DataRelationCollection.cs (AddCore): Check that a
414         UniqueConstraint is already exists. It loops over the Relations
415         instead of the Constraints.
416         (Add, AddCore): The relation was added twice.
417
418         * DataSet.cs (Merge, GetChanges, HasChanges): Implemented.      
419
420 2003-09-30  Duncan Mak  <duncan@ximian.com>        
421
422         Patches from Eran Domb <erand@mainsoft.com>.
423
424         * DataRelation.cs (constructor): When the name of the relation is
425         null, it should return an empty, not "Relation".
426         
427         * DataRow.cs (AcceptChanges): Added special case for
428         RowState.Detached.
429         (CancelEdit): Set editing flag to false.
430         (IsNull): Check that the value is DBNull.
431
432         * DataRowCollection.cs (Add): There was no check that the table of
433         the collection is owned by a DataSet.
434
435         * DataSet.cs (OnMergeFailed): Added.    
436
437         * UniqueConstraint.cs (AssertConstraint): There was no check that
438         values in the row are not null, where it is a primary key
439         column. Also check that the row has a proposed version, if not,
440         get the current version when we compare the rows.
441
442 2003-09-25  Duncan Mak  <duncan@ximian.com>
443
444         Patches from Eran Domb <erand@mainsoft.com>.
445
446         * DataColumn.cs (Unique): Implemented.
447         
448         * DataTable.cs:
449         * ConstraintCollection.cs:
450         * ForeignKeyConstraint.cs (_ensureUniqueConstraintExists): Fixes
451         an Exception thrown. Details:
452         http://lists.ximian.com/archives/public/mono-devel-list/2003-September/002130.html
453         
454         * DataRowCollection.cs (Add): There is no checking that there is
455         no violation of the unique constrains.
456
457         * UniqueConstraint.cs (AssertConstraint): There is no checking on
458         all columns in the constraint.
459
460         * DataTableCollection (Add): Correctly throw an Exception, more
461         details here:
462         http://lists.ximian.com/archives/public/mono-devel-list/2003-September/002117.html
463         (Remove, RemoveAt): Implemented.
464
465 2003-07-31  Duncan Mak  <duncan@ximian.com>
466
467         * DBConcurrencyException.cs: Added new NET_1_1 no-param constructor.
468
469 2003-07-25  Ravi Pratap  <ravi@ximian.com>
470
471         * DataRelation.cs (OnPropertyChanging): Calling the 'Invoke'
472         method on a delegate is disallowed - fix this.
473
474 2003-07-22  Lluis Sanchez Gual  <lluis@ximian.com>
475
476         * DataSet.cs: Implemented IXmlSerializable interface. Added basic support for
477           xml serialization. Modified method of writing schema. Now it creates
478           a XmlSchema object and serializes it using XmlSerializer.
479         * XmlConstants.cs: Added constants for data type names.
480         * XmlDataLoader.cs: Fixed deserialization of data. Now converts data to the
481           type specified in the column.
482
483 2003-04-20  Alan Tam <Tam@SiuLung.com>
484
485         * DataRelationCollection.cs: Fix a bug that prevent relations
486         from being added via DataSet.
487
488 2003-04-12  Ville Palo <vi64pa@kolumbus.fi>
489
490         * UniqueConstraint.cs: one tiny fix.
491         
492 2003-04-05  Ville Palo <vi64pa@kolumbus.fi>
493
494         * DataTable.cs: Remove UniqueConstraints when adding new ones
495         
496 2003-04-04  Ville Palo <vi64pa@kolumbus.fi>
497
498         * DataColumnCollection.cs: Little 'case sensitive' fix
499         
500 2003-04-04  Ville Palo <vi64pa@kolumbus.fi>
501
502         * DataRow.cs: AutoIncrement handling to Constructor
503         * DataRowCollection.cs: This doesnt need anymore AutoIncrements
504         
505 2003-03-27  Ville Palo <vi64pa@kolumbus.fi>
506
507         * DataTable.cs: Some fixes to PrimaryKey etc...
508         * UniqueConstraint.cs: Little clean up
509         
510 2003-03-27  Ville Palo <vi64pa@kolumbus.fi>
511
512         * DataTable.cs: Tiny fix to ToString () -method
513         
514 2003-03-27  Ville Palo <vi64pa@kolumbus.fi>
515
516         * ConstraintCollection.cs: Little fix.
517         * DataColumn.cs: Added new internal method SetUnique()
518         * UniqueConstraint.cs: some little fixes
519         
520 2003-03-26  Ville Palo <vi64pa@kolumbus.fi>
521
522         * DataRowCollection.cs: Bugfixes, implementation,...
523         
524 2003-03-26  Ville Palo <vi64pa@kolumbus.fi>
525
526         * DataColumn.cs: If DataType if set to something else than short, int
527         or long and AutoIncrement is true, AutoIncrement is must set to false.
528         
529 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
530
531         * DataRow.cs:
532         (BeginEdit): fixed array bound problem when a column has been added.
533         (EndEdit): just assign proposed to current as proposed is set to null.
534         This also fixes another array boudn problem.
535
536 2003-03-21  Alan Tam <Tam@SiuLung.com>
537
538         * DataRow.cs: Fixed problems in accessers, BeginEdit, CancelEdit,
539         EndEdit and AcceptChanges to act correctly according to DataRowState
540         and DataRowVersion.
541         * DataRowCollection.cs: Call AttachRow and DetachRow when a row is
542         attached and detached from the collection.
543
544 2003-03-20  Alan Tam <Tam@SiuLung.com>
545
546         * DataColumn.cs: Store empty string for Expression when null is passed in.
547         Classes generated by XSD.exe passes null by default.
548
549 2003-03-16  Ville Palo <vi64pa@kolumbus.fi>
550
551         * DataColumnCollection.cs: Tiny clean up
552
553 2003-03-16  Ville Palo <vi64pa@kolumbus.fi>
554
555         * DataColumn.cs: little fixes.
556         * DataColumnCollection.cs: Lots of little fixes and improvments.
557         
558 2003-03-12  Alan Tam <Tam@SiuLung.com>
559
560         * DataSet.cs: Fixed a bug that the file written does not close correctly.
561
562 2003-03-08  Alan Tam <Tam@SiuLung.com>
563
564         * DataRelationCollection.cs: Removed the mis-overridden methods
565         * DataRow.cs: Fixed an attribute
566         * DataSet.cs: Fixed the modifiers
567
568 2003-03-06  Aleksey Demakov <avd@openlinksw.com>
569
570         * DataTableCollection.cs: The Contains (string name),
571         IndexOf (string name) methods, and item[string name] indexer
572         now behave more like .NET with respect to case-sensitivity.
573         That is if there is an exactly matching item then this one is used.
574         If there is only one item differing in case then it used.
575         If there are more than one item differing in case then
576         Contains returns false, IndexOf returns -1, and item[]
577         throws an ArgumentException.
578
579 2003-02-28  Ville Palo <vi64pa@kolumbus.fi>
580
581         * ExpressionElement.cs: More implementation. 
582         
583 2003-02-28  Alan Tam <Tam@SiuLung.com>
584         * DataSet.cs: Changed WriteTable so that it now calls the newly written
585         WriteObjectXml to direct the call to the respective XmlConvert method.
586         This fixes the wrong format written to XML files of bool, float,
587         double, DateTime and TimeSpan types.
588
589 2003-02-25  Alan Tam <Tam@SiuLung.com>
590
591         * DataRelation.cs: Added SetDataSet for DataSetRelationCollection to use.
592         * DataRelationCollection.cs: Implemented AddRange and Contains.
593         Implemented AddRange, Clear, List and RemoveCore for DataSetRelationColletion.
594         Implemented AddCore, List and RemoveCore for DataTableRelationCollection.
595         Reimplemented most Add methods to eliminate duplicated checks.
596         Centralized RelationName generation procedure in GetNextDefaultRelationName.
597
598 2003-02-25  Alan Tam <Tam@SiuLung.com>
599
600         * DataColumn.cs: Fixed wrong storage representation of Expression
601         (using empty string instead of null) so that ToString() returns nothing.
602         * DataColumnCollection.cs: Reimplemented GetNextDefaultColumnName so that
603         auto column naming now works as expected. Reimplemented some Add methods
604         to eliminate code duplication.
605
606 2003-02-19  Ville Palo <vi64pa@kolumbus.fi>
607
608         * DataTable.cs: DataTable.CaseSensitive follows parent 
609         DataSet.CaseSensitive property if DataTable.CaseSensitive has never
610         been changed directly from DataTable
611         
612 2003-02-19  Ville Palo <vi64pa@kolumbus.fi>
613
614         * DataSet.cs: When CaseSensitive property is changed all of the Tables
615         of DataSet have to change too
616         
617 2003-02-19  Daniel Morgan <danmorg@sc.rr.com>
618
619         * InternalDataCollectionBase.cs: revert change to field
620         to fix build
621         
622         * DataViewManager.cs
623         * DataView.cs
624         * DataTable.cs
625         * DataSet.cs: commented use of DesignerAttribute
626         because it broke the build.  According to MSDN,
627         DesignerAttribute does not have a zero-argument constructor
628
629 2003-02-18  Ville Palo <vi64pa@kolumbus.fi>
630
631         * DataColumnCollectin.cs: Little fix for indexer and case sensitivity
632         
633 2003-02-18  Alan Tam <Tam@SiuLung.com>
634
635         * DataRow.cs: Implemented GetParentRow and GetParentRows.
636         * DataSet.cs: Added stub for HasChanges, InferXmlSchema,
637                       OnPropertyChanging, OnRemoveRelation, OnRemoveTable,
638                       RaisePropertyChanging.
639         * DataTable.cs: Implemented NewRowArray.
640         * DataTablePropertyDescriptor: Fixed a modifier.
641         * InternalDataCollectionBase.cs: Fixed modifiers. Implemented SyncRoot.
642         * PropertyCollection.cs: Minor fix.
643         * ConstraintCollection.cs DataColumn.cs DataColumnCollection.cs 
644         * DataRelation.cs DataRelationCollection.cs DataRow.cs
645         * DataRowCollection.cs DataRowState.cs DataSet.cs DataTable.cs
646         * DataTableCollection.cs DataTablePropertyDescriptor.cs DataView.cs
647         * DataViewManager.cs DataViewRowState.cs DataViewSettingCollection.cs
648         * ForeignKeyConstraint.cs InternalDataCollectionBase.cs
649         * PropertyCollection.cs UniqueConstraint.cs: Added missing attributes
650         
651 2003-02-08  Ville Palo <vi64pa@koti.soon.fi>
652
653         * ExpressionElement.cs: More implementation
654         
655 2003-02-05  Alan Tam <Tam@SiuLung.com>
656
657         * DataSet.cs: Added framework for DataSet.Update Implemented missing 
658         methods GetSchemaSerializable, GetSerializationData, 
659         ReadXmlSerializable, ShouldSerializeRelations and ShouldSerializeTables
660         for DataSet
661         * DataTable.cs: Implemented missing methods CreateInstance and 
662         GetRowType for DataTable
663         
664 2003-02-03  Ville Palo <vi64pa@koti.soon.fi>
665
666         * DataSet.cs: Implemented private method MapType for 
667         mapping datatypes for XmlSchema
668         
669 2003-02-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
670
671         * DataView.cs: implemented Dispose.
672
673 2003-01-30  Ville Palo <vi64pa@koti.soon.fi>
674
675         * ExpressionElement.cs: Added new file. This file is for parsing
676           and DataData.Select () -methods and DataColumn.Expression -property
677         * DataTable.cs: Implemented Select(string) -method      
678         
679 2003-01-28  Ville Palo <vi64pa@koti.soon.fi>
680
681         * DataSet.cs: One little fix to writing xml
682         
683 2003-01-27  Ville Palo <vi64pa@koti.soon.fi>
684
685         * XmlSchemaMapper.cs: Some fixes.
686         * DatSet.cs: Some XmlFixes and BeginInit ()/ EndInit () -fix
687
688                 
689 2003-01-24  Ville Palo <vi64pa@koti.soon.fi>
690
691         * UniqueConstraint.cs: Do not set columns Unique property true 
692         as a default.
693         * ForeignKeyConstraint.cs: Add UniqueConstraint to parent Table
694         
695 2003-01-18  Ville Palo <vi64pa@koti.soon.fi>
696
697         * DataTableCollection.cs: Now names new DataTable if it doesn't 
698         already have a name.
699         
700 2003-01-17  Ville Palo <vi64pa@koti.soon.fi>
701
702         * XmlSchemaMapper.cs: Improvments.
703         * XmlConstaints.cs: Added more constants.
704         * DataSet.cs: Improvments of reading and writing xml
705         * DataColumn.cs: Added default values of properties.
706                 
707 2003-01-14  Ville Palo <vi64pa@koti.soon.fi>
708
709         * XmlSchemaMapper.cs: Some improvments
710         
711 2003-01-13  Ville Palo <vi64pa@koti.soon.fi>
712
713         * DataRowCollection.cs: Added IndexOutOfRangeException
714         * DataTableCollection.cs: Added OnCollectionChanging and 
715         OnCollectionChanged events.
716         * DataSet.cs: Many fixes. Implemented Clone () and Copy () -methods
717         * DataTable.cs: Implemented Copy () and Clone () methods.
718         * XmlDataLoader.cs: some fixes.
719         * XmlSchemaMapper.cs: comments.
720         
721 2003-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
722
723         * DataColumnPropertyDescriptor.cs: store columnIndex in the .ctor.
724
725 2003-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
726
727         * DataColumnPropertyDescriptor.cs: fixed typo.
728         * DataViewManagerListItemTypeDescriptor.cs: added new internal property
729         to get the DataViewManager and removed TablePD class.
730         * DataTablePropertyDescriptor.cs: TablePD class is now this one as
731         suggested by danmorg.
732
733 2003-01-06  Ville Palo <vi64pa@koti.soon.fi>
734
735         * XmlDataLoader.cs: Moved diffgram stuff to new internal class
736         XmlDiffLoader.
737         * XmlDiffLoader.cs: new class for diffgrams. Added handling of 
738         diffgr:Errors and some fixes and changed XmlReader to XPathNavigator.
739         
740 2003-01-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
741
742         * DataView.cs: made dataViewManager internal.
743         * DataViewManager.cs: use ICustomTypeDescriptor. We don't want the
744         properties of the object, but the values of the columns present in a
745         row.
746         
747         * DataViewManagerListItemTypeDescriptor.cs: implemented GetProperties,
748         which returns a PropertyDescriptorCollection. Created a new class
749         derived from PropertyDescriptor that treats Table as an object whose
750         properties are DataRowView.
751
752 2003-01-04  Ville Palo <vi64pa@koti.soon.fi>
753
754         * XmlSchemaMapper.cs: Added handling for Constraints, Attributes.
755         
756 2003-01-04  Ville Palo <vi64pa@koti.soon.fi>
757
758         * DataColumn.cs: ExtendedProperties is by default !null-
759         
760 2003-01-04  Ville Palo <vi64pa@koti.soon.fi>
761
762         * DataColumnCollection.cs: Add (DataColumn Column) -method didn't 
763         set column's ordinal.
764         
765 2003-01-02  Ville Palo <vi64pa@koti.soon.fi>
766
767         * DataSet.cs: 
768         * XmlDataLoader.cs: XmlReader closing fixes.
769         * XmlSchemaReader.cs: Added support for ref=
770         
771 2003-01-01  Ville Palo <vi64pa@koti.soon.fi>
772
773         * DataSet.cs: 
774           - Added XmlReader and XmlWriter Closing.
775           - Moved ReadXmlSchema stuff to new internal class XmlSchemaMapper.
776         * XmlSchemaMapper.cs
777           - Much better way IMHO  to map xmlschema than the old one in 
778             DataSet.cs. Its, more flexible, cleaner, ...
779                         
780 2002-12-29  Ville Palo <vi64pa@koti.soon.fi>
781
782         * XmlDataLoader.cs: Reading diffgrams.
783         
784 2002-12-29  Ville Palo <vi64pa@koti.soon.fi>
785
786         * DataRow.cs: Little fix to indexer and DataColumnCang* trigger fixes.
787         * DataTable.cs: Added ChanginDataColumn () for triggering 
788         DataColumnChanging event
789         
790 2002-12-28  Ville Palo <vi64pa@koti.soon.fi>
791
792         * DataSet.cs: Indentations to WriteXmlSchema () and one little fix
793         
794 2002-12-28  Ville Palo <vi64pa@koti.soon.fi>
795
796         * DataSet.cs: Indentations to WriteXml ()
797         
798 2002-12-27  Ville Palo <vi64pa@koti.soon.fi>
799
800         * DataSet.cs:
801         * XmlDataLoader.cs: Moved ReadXml -stuff from DataSet.cs to new
802         class XmlDataLoader.cs
803         
804 2002-12-19  Ville Palo <vi64pa@koti.soon.fi>
805
806         * DataSet.cs Implemented ReadXml with XmlReadMode.ReadSchema
807         
808 2002-12-18  Ville Palo <vi64pa@koti.soon.fi>
809
810         * DataSet.cs: Started to implement ReadXml-methods.
811         
812 2002-12-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
813
814         * DataSet.cs: implemented DefaultViewManager and GetList.
815
816         * DataViewManager.cs: a bit of work on IList and ITypedList needed by
817         DataList in System.Web.
818
819         * DataViewManagerListItemTypeDescriptor.cs: custom type descriptor for
820         DataViewManager.
821
822 2002-12-16  Ville Palo <vi64pa@koti.soon.fi>
823
824         * DataRow.cs
825         * DataTable.cs: Fixed NullException (rollback -event)
826         * DataSet.cs: WriteXml -method does not anymore write <?xml... row.
827         
828 2002-12-15  Ville Palo <vi64pa@koti.soon.fi>
829
830         * DataRow.cs:
831         * DataRowCollection.cs: Moved event triggering from DataRow to
832         DataRowCollection.
833         
834 2002-12-09  Ville Palo <vi64pa@koti.soon.fi>
835
836         * DataSet.cs: Little fix to WriteTable () -method 
837         and DoReadXmlSchema () -method.
838         
839 2002-12-06  Ville Palo <vi64pa@koti.soon.fi>
840
841         * DataSet.cs: Clean up to reading xmlschema. This looks much better 
842         now (work better too), but it not working correctly yet.
843         
844 2002-12-04  Ville Palo <vi64pa@koti.soon.fi>
845
846         * DataRow.cs: 
847         * DataRowCollection.cs: Added some event handlins stuff.
848         * DataSet.cs: Some fixes.
849         * DataTable.cs: Added event handlers.
850         
851 2002-11-30  Ville Palo <vi64pa@koti.soon.fi>
852
853         * DataRowChangeEventArgs.cs: Implemented Action and Row properties 
854         
855 2002-11-30  Ville Palo <vi64pa@koti.soon.fi>
856
857         * System.Data/DataRow.cs: Added internal property XmlDataID
858         
859 2002-11-29  Ville Palo <vi64pa@koti.soon.fi>
860
861         * DataSystem.Data.DataTableCollection.cs:
862         Removed HashTable. There could be situations where DataTable
863         is added to collection before it hava TableName. So using 
864         HashTable is impossible.
865         
866 2002-11-19  Carlos Guzmán Álvarez <carlosga@telefonica.net>
867
868         * DataRow.cs: an object that is equal to null 
869         should be allowed to be set in this indexer too
870         to be like .NET
871
872 2002-11-06  Daniel Morgan <danmorg@sc.rr.com>
873
874         * DataColumnPropertyDescriptor.cs: added file
875         
876         * System.Data/DataRowView.cs: started implementation
877         
878         * DataTable.cs: stubbed more interfaces.  Implemented
879         IListSource.GetList()
880         
881         * DataView.cs: stubbed more interfaces.  Implemented
882         some properties and methods: GetEnumerator(), 
883         ITypedList.GetItemProperties, Item indexer, CopyTo()
884
885 2002-05-18  Nick Drochak  <ndrochak@gol.com>
886
887         * DataRow.cs: Fix typo.