FYI, Most people had success with the duckies branch.  So, to avoid fragmentation of the codebase I merged duckies into the trunk today. 

 

I also had an interesting idea on how to speed up oo queries (at least after their first run).  First off, any given query is unique.  That is to say “Select * from User” is always “Select * from User” and is never “Select * from FooBar”.  So, given that, I could hash the data used to create the query and use that as a unique identifier for that query.  This would allow me to cache the query for reuse.

 

Let me try to clarify.  Right now, as you create your query Reactor does a lot of processing to check relationships, etc.  Then, when the Query is passed to the gateway the gateway transforms the query into a real query.  The lookups and the transformation are expensive.  But, it’s not strictly necessary to do that each time because the results will always be the same.

 

So, what I’m thinking is that 1) rather than validating the query as you create it, reactor would validate it when it was first run as a part of the transformation into a query.  2) The transformed query would be cached somehow.  The next time you use that query or a different query which is exactly the same Reactor would recognize it, not need to validate it and would be able to use the cached transformed query.  This should cut down on a lot of the overhead of these objects.

 

Then, Peter Farrell had a reasonably good idea about changing the string-evaluating cfcases to cfif/elseifs.  Either that, or I might make a constant integer value for each of the cases.  Anyhow, this should help too.

 

Thoughts?  Opinions?  Rants?  Flames?

 

Doug


-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Reply via email to