db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] [Created] (DERBY-6003) Create row templates outside of the generated code
Date Fri, 23 Nov 2012 07:02:59 GMT
Knut Anders Hatlen created DERBY-6003:

             Summary: Create row templates outside of the generated code
                 Key: DERBY-6003
                 URL: https://issues.apache.org/jira/browse/DERBY-6003
             Project: Derby
          Issue Type: Improvement
          Components: SQL
    Affects Versions:
            Reporter: Knut Anders Hatlen
            Assignee: Knut Anders Hatlen
            Priority: Minor

The constructors for many of the result set classes take GeneratedMethod parameters that create
row templates (an ExecRow of a certain size and column types, each column initialized to an
SQL null value).

As an alternative, the compiler could produce an ExecRow instance and put it into the savedObjects
field of GenericPreparedStatement, and the constructors could take parameter that points to
the object in savedObjects. Where the result sets currently invoke the generated method to
produce a fresh template, they could instead clone the saved object.

Advantages with the suggested approach would be:

- Reduce the size of the code generator, which should reduce total code complexity.

- Reduce the amount of generated code, which makes it easier for tools (profilers, static
code analyzers, IDEs) to map executable code to source code.

- Reduce the actual number of generated methods, which makes it less likely that queries need
to use reflection to invoke the remaining generated methods (there's a switchover from DirectCall
to ReflectCall when the number of generated methods exceeds 10).

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message