db-torque-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Fox (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TORQUE-168) Use Objects instead of Strings for Column constants in Peers and Criteria
Date Mon, 03 Oct 2011 05:43:33 GMT

    [ https://issues.apache.org/jira/browse/TORQUE-168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13119141#comment-13119141
] 

Thomas Fox commented on TORQUE-168:
-----------------------------------

The column maps will be accessed as follows:
- Each generated tableMapBuilder will have constants exposing the column maps. The names for
the constants will be the same as the names for the column constants in the peer classes.
- Each generated tableMapBuilder will have a static initializer block to initialize the column
constants (i.e builds the database map). This removes the need for caching the map builders
in the TorqueInstance.

Further implementation details:
- remove the getMapBuilder, getMapBuilders and registerMapBuilder methods from the Torque
and TorqueInstance classes because they are no longer needed.
- For the ease of exception handling in the static initializer block, remove the "throws TorqueException"
from the two methods TorqueInstance.getDatabaseMap(String) and the delegate method in Torque.
Replace the Torque Exception which is thrown on passing null in TorqueInstance.getDatabaseMap(String)
by a NullPointerException.
- Currently the primaryKeyMethodInfo in the TableMap is set by querying the id method type
from the database adapter. This is problematic since this needs Torque to be initialized to
perform the query. The solution is to put a map of id method types to primaryKeyMethodInfos
into the Table map, so querying the id method type can be done when it is really necessary.
- create a DatabaseMapBuilder for each database which contains all tables in the database
- implement an "append" strategy for exsiting target files in the generator for building the
DatabaseMapBuilder from more than one schema file
- the table map builders do no longer implement the MapBuilder interface
- remove the MapBuilder interface since it is no longer needed
                
> Use Objects instead of Strings for Column constants in Peers and Criteria
> -------------------------------------------------------------------------
>
>                 Key: TORQUE-168
>                 URL: https://issues.apache.org/jira/browse/TORQUE-168
>             Project: Torque
>          Issue Type: Improvement
>            Reporter: Thomas Fox
>             Fix For: 4.0
>
>
> Currently, column constants in Peers are Strings, and Criterias are constructed by using
String column names.
> This means that code to parse column information (remove/add database/schema name, table
name, remove SQL functions etc) is distributed across the code which is not very maintainable.
> Instead, column constants should be objects, which hold at least the following information
> - unqualified column name
> - table name (or reference to table)
> - database/schema name, if any, or reference to default database/schema name, if any
> - sql expression (in case it is different from [database/schema.]tableName.columnName,
e.g. "cast id as varchar2(30)" in oracle)
> There should be a constructor taking a string input, which then tries to parse the given
tsring and extract the above information from the string.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org


Mime
View raw message