[Mono-devel-list] [Fwd: Re: Review of system.data]

S Umadevi sUmadevi at novell.com
Wed May 11 02:18:02 EDT 2005

Summary of IRC discussion.

1.AbstractDataContainer and related classes - are really provider
implemenation, was later on moved to provider namespace. The code drop
that we got had it in the common namespace.
2. IsafeRecord interface - to take care of conversion. can be
implemented by any provider.
There is a mail on this from mainsoft to the mailing list. Interesting
if we can use it in the base class rather than with the provider
3. the numeric.cs - tosametype returns dbnull and in every expression
evaluation we are having a default of dbnull. is there a better way to
deal with this?
5. catching base exception lots of places , will be difficult to figure
out the exact exception if we just catch the base exception. Should try
and catch only the specific exceptions. Debugging code will be very
difficult because we will not be able to even catch code errors.
6. object obj1 = expr1.Eval (row);

			if (obj1 == DBNull.Value)

				return obj1;
This code is all around the place in mono.data.sqlexpression. will need
to put it in some base class /common place.
7. internal classes having public methods, we will need to change
8. Array for indices
  Relocation of the elements will be costly. Even though array seems to
be a good enuf datastructure, the relocations may prove costly. Since
there can be multiple dataviews on the same datatable , we can end up
potentially doing many relocations.
9. in future we will look at removing the rowcache from the dataview
totally..since the index cache and the related classes almost serve the
same purpose.
10. synchronizing while doing relocations on the array holding the
indices. While operating from different views, it is possible that we
are relocating the indices in the array from different threads, and
hence there could be potential issues.

11. merging the code - will compile with 2.0 profile and resolve any
12. connected mode testing - will make it work with sqlclient. incase
there are bugs with sqlclient  then we fix it..
13. will make test cases nunit style. have a script that can be run on
the database for setup..

9,11 are issues, but the design seems to be flexible to accomodate any
datastructure with minimal effort, so incase any of us have a solution
we wil change it then..

Please add/modify incase I have missed anything..


>>> Konstantin Triger <kostat at mainsoft.com> 04/27/05 6:36 PM >>>

Hello Uma,

I'm CCing mono-devel-list to this email, so anyone who wants to review

the code can find it at 

1. There are 2 efforts made in the code: design improvements related to

indices and bug fixes. Attached a brief design document of the indices

redesign (questions are welcome). Regarding the bug fixes, I will
a relevant changelog.
2. The testsuite we have sent is nunit compatible. To run it, one need

to enter the System.Data/Test/System.Data.Tests.Mainsoft directory and

issue "make" command. After this, the following command should be
(from the System.Data root):
MONO_PATH="../../class/lib/default;;$MONO_PATH" mono  --debug 

Currently there are 36 failures in the HEAD branch and 7 failures in
Mainsoft branch.
 From the other side there are 4 regressions running the standard mono

testsuite in the Mainsoft branch.

I'm analysing all this now and will provide resolution/explanation for

each one of the above.

3. Will send later today.

Konstantin Triger

S Umadevi wrote:

>  We see that you have checked in the code in SVN under a different
>branch. You had agreed to send us the following (around 2 weeks
>that the code can be reviewed effectively.
>1. Design document explaining the changes and why the changes are
>2. Testcases that are failing and what are the testcases that pass
>the new code. The testcases that you have sent us are the complete
>and as I had mentioned in my previous mails, the testcases that are
>in your set needs to be identified to us.(since many  are already
>existing in nunit style)
>3. Since we have implemented the indices using arrays there would be
>some amount of performance degradation. In your mail, you had agreed
>share the performance data/tests with us.. Please can you send them..
>We have been spending lot of time trying to review/understand the new
>code, since we will have to take it forward from here for the .net
>features, the above would be very useful..
>Also there have been code fixes after you had branched out, we would
>need to merge them too..along with merging the testcases to nunit
>Thanks & Regards

Konstantin Triger

More information about the Mono-devel-list mailing list