Jazarine Jamal wrote:
Really thanks for the reply...



Is it possible to get the LCC at some later point of execution : in the JDBCDisplayUtil?

I have got the Connection object in the function that i need. I want to if its possible to get the activation object related to the current connection.

By the way, why is that getCurrentLCC() throws an error when used in JDBCDisplayUtil but not when it is used in classes such as ConsistencyChecker, etc..?
Hi Jazarine,

The LanguageConnectionContext is the root of the SQL interpreter's state variable for a session. That is, the LCC is used to cache all sorts of information needed to parse, optimize, and execute queries. The LCC is a structure which only exists in the Derby engine layer, that is, it is only visible to code that is running on the server side of a JDBC connection.

JDBCDisplayUtil is tools code which runs outside the engine on the client side of a JDBC connection. JDBCDisplayUtil can run across the network in a remote client. In that remote layer, the LCC does not exist. In contrast, ConsistencyChecker runs inside the engine.

Hope this helps,
-Rick



On Jan 20, 2008 6:07 PM, Thomas Nielsen < [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    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..



Reply via email to