2006-03-05 Senganal T <tsenganal@novell.com>
[mono.git] / mcs / class / System.Data / TODO
index d9963545ba5f319db52bf99f7c0d2e0e4eab3737..b9f16964980fb7378a4443164fb95b9f56228022 100644 (file)
@@ -1,37 +1,23 @@
 System.Data TODO List
 =====================
 
-This TODO list last updated on 2002-04-23
-
 Update this file as needed...
 
 * To get ExecuteReader() in a SqlCommand object to return 
   a SqlDataReader object which can Read() data and get a String or
   Int32 from the database.  Other types can be done later.
-
-In order to do this, we need to compile 
-       SqlDataReader 
-       DataTable
+  
+  A class (SqlDataReader) that implements IDataReader/IDataRecord
+  only has one row in memory at a time.
+
+In order to do this, we need to compile and edit these classes:
+       SqlDataReader   DataTable       DataRowCollection               DataRow
+                                                               DataColumnCollection    DataColumn
+                                                               DataConstraintCollection DataConstraint
+                                                               DataRelationCollection  DataRelation
+                                                               DataTableCollection
        and dependencies...
 
-MSDN has the classes: 
-       DataRelation, DataRelationCollection, DataTable, DataTableCollection
-
-Mono has the classes:
-       DataRelationCollection, DataTable, DataTableRelationCollection
-
-Something is not right here:
-       maybe mono's DataTableRelationCollection 
-       was suppose to be DataTableCollection
-
-        This would mean that DataRelation is missing.
-
-Other classes missing:
-       * InternalDataCollectionBase - this is a public class despite its name
-       * DataRowBuilder
-       * Constraint
-       * ConstraintCollection
-
 System.Data.Common classes that need to be implemented:
  - implement DataAdapter.cs
  - implement DataColumnMapping.cs
@@ -48,28 +34,23 @@ The following classes implement InternalDataCollectionBase:
        * DataRowCollection
        * DataColumnCollection
        * DataTableCollection
-       * DataRelationCollection
-       * DataConstraintCollection
+       * DataRelationCollection - an abstract class used by DataTable and DataSet
+       * ConstraintCollection
+
+DataTableRelationCollection is an internal class that implements DataRelationCollection
+and is used by DataTable for parent/child relations.  Don't know if it will/will not
+be used by DataSet.
 
 Other classes, structs, etc. that are missing:
-       DataView
+       DataRowView
+       DataSysDescriptionAttribute
        DataViewManager
        DataViewSetting
-       DataViewSettingCollection
-       ForeignKeyConstraint
-       PropertyCollection
-       UniqueConstraint
+       FillErrorEventArgs
+       MergeFailedEventArgs
        TypedDataSetGenerator
-
-Exceptions that still need to be done:
-       (need to see what exceptions need to be done)
-       SyntaxErrorException
-       SqlNullValueException
-       SqlTruncateException
-       SqlTypeException
-       TypedDataSetGeneratorException
  
-The additional System.Data.SqlTypes classes need to be stubbed:
+The additional System.Data.SqlTypes classes need to be implemented:
        SqlByte
        SqlDataTime
        SqlDecimal
@@ -80,9 +61,21 @@ The additional System.Data.SqlTypes classes need to be stubbed:
        SqlMoney
        SqlSingle
 
+* provide a standard scheme for storing
+  connection string data
+
 * allow Execute methods in SqlCommand to
   call a stored procedure
 
+* Create a script for testing System.Data:
+  - calls script to create 
+    a test database named monotestdb
+  - set up nunit for testing System.Data
+  - set up System.Data.Config or some other 
+    file to hold connection strings and other
+    configuration settings for the testing System.Data
+  - any other stuff needed...
+
 * get SqlParameter/SqlParameterCollection
   working so you can:
   - for queries/commands that have parameters:
@@ -98,8 +91,8 @@ The additional System.Data.SqlTypes classes need to be stubbed:
 
 * get SqlDataAdapter/DataSet working
 
-* provide a standard scheme for stroring
-  connection string data
+* Create Library for PInvoking into libgda
+  This will be used by System.Data.OleDb classes
 
 * Begin System.Data.OleDb classes:
   - OleDbConnection
@@ -115,6 +108,8 @@ The additional System.Data.SqlTypes classes need to be stubbed:
 * Do more OleDb classes for DataSet:
   - OleDbDataAdapter
   - others...
+  
+* Security Audit of System.Data
 
 * Create a MySQL ADO.NET Provider
 
@@ -137,3 +132,67 @@ Integration
 * get System.Data to work with GUI
   System.Windows.Forms.DataGrid
 
+
+Provider Factoros (target: mono 1.2 PROFILE=net_2_0)
+====================================================
+
+* Create Configuration Class
+       DbProviderFactoriesConfigurationHandler - done
+       DbProviderConfigurationHandler - not much documents/use cases.
+       ConnectionStringsSection                - done
+       ConnectionStringSettingsCollection      - done
+       ConnectionStringSettings                - done
+
+       FIXME: Currently the test case for ConnectionStringsSection
+       fails as new configuration API is not yet implemented in
+       System.dll.
+
+       A temporary handler ConnectionStringSectionHandler is
+available in System.Data.dll.
+
+* Create Base class
+       DbProviderFactories - done
+       DbProviderFactory - done
+       DbConnectionFactory
+       
+       Add nunit test cases for these. - done
+       
+* Create Factory classes & methods for Providers.
+       Factory methods for SqlClient - done.
+       Factory methods for Odbc provider - done.
+       Factory methods for OleDb provider
+
+* DbConnectionStringBuilder - done
+
+Asynchronous Command Execution ((target: mono 1.2 PROFILE=net_2_0)
+==================================================================
+
+* Implement the following Asynchronous Execution Commands for SqlClient
+
+   - BeginExecuteNonQuery (2 overrides) - done
+   - BeginExecuteReader   (3 overrides) - done
+   - BegineExecuteXmlReader             - done
+
+   - Implement corresponding asynchronous methods in Tds driver - done
+
+* Pending
+   
+   - Provide Stand Alone test cases
+   - Check whether the result column is xml while doing
+     EndExecuteXmlReader.
+
+
+Test Cases
+==========
+
+* Provide a single consistent test fixture for all data providers
+   available in Test/ProviderTests
+
+* NUnit-ize Provider Tests
+
+* Make these tests to be able to run by command
+   make run-test PROVIDER=mysql   # to run tests marked for mysql & SQL92.
+
+* Provide SQL92 complaint scripts for shema & data, to be loaded
+   irrelevant of data providers.
+