db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Nielsen <Thomas.Niel...@Sun.COM>
Subject Re: Getting the LangaugeConnectionContext
Date Sun, 20 Jan 2008 12:37:58 GMT
Hi Jazarine,

I'm assuming you need to get the LCC once you are in the execute phase, 
and in a class implementing ResultSet. All the different ResultSet 
implementations in org.apache.derby.impl.sql.execute get an activation 
supplied to their constructor either directly, or through its 
source/child ResultSet. It should hence be available either:
- as a member of the given ResultSet class
- though the ResultSets source/child ResultSet
- through getLanguageConnectionContext()
- or through getActivation().getLanguageConnectionContext()
depending on the ResultSet class implementation you are in.

It could be beneficial to have a look around 
ProjectRestrictNodeResultSet, the top-most ResultSet for a SELECT qry, 
and see how it's fetched/used?

Activations are created/built with an ActivationClassBuilder and is 
populated during the bytecode generation phase. You can see one example 
of how the ActivationClassBuilder is used in 
ProjectRestrictNode.generateMinion() in 
org.apache.derby.impl.sql.compile. ProjectRestrictNode is the node 
generating the ProjectRestrictNodeResultSet (and a few others for the 
sake of correctness).
Generally we push objects to the stack, then call to 
ActivationClassBuilder to push generation of the correct type of 
ResultSet on the stack. This is where the actual Activation object is 
created, and as previously stated it's often pushed as a parameter to 
the ResultSet constructor. Once code generation is completed, we start 
executing the generated bytecode. Someone with a little more knowledge 
of the details may want to explain this further, or correct me, if 
necessary? :)

Hope this helps you figure it out :)

Thomas

Jazarine Jamal wrote:
> I need to get the langaugeconnectioncontext.
> I presume it can be done through this:
>
>     LangaugeConnectionContext=activation.getLangaugeConnectionContext()
>
>  
>  
> But How do I create an Activation object? Are there any implemented 
> classes for Activation interface..??
> I am doing this since it forms a part of the code to get the type of 
> an object.
>  
>  
> Please get me some help as soon as possible..


Mime
View raw message