Hello Senga,

> can cache the column ordinal instead of the column. we only 
> need a way to index the row.

Caching column ordinal and caching column reference both have the same
level of implementation "complexity and care".
We want to store the following information "this expression relates to
those column", so it looks more natural to store the reference to actual
column than a column ordinal. The same is truth for cached relation as
well.

> hmm..instead of explicitly calling initialize, should invoke 
> it from within the class on first use of the expression.
> that way,  we don't have to remember to explicitly call init 
> everytime the expression is modfied/reset..
> seems to be a cleaner way. also, values are cached only if required.

Yes, you're right. I've removed Initialize() method and changed the
cached column and reference to become lazy evaluated inside
ColumnReference class.  

Attached is the reworked patch.

If no one objects, I'll commit

--
Boris Kirzner
Mono R&D team, Mainsoft Corporation.
Blogging at http://boriskirzner.blogspot.com/  


> > Attached is a proposed patch for ColumnExpression. 
> > The main idea is caching the column and relations used by the 
> > object instead of searching in the data column and relation 
> > collections each time we access ColumnExpression for Eval.
> > 
> > The patch brings slight performance improvement.

Attachment: system.data.columnreference.diff
Description: system.data.columnreference.diff

_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to