[ 
https://issues.apache.org/jira/browse/DERBY-2336?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12478638
 ] 

Mike Matrigali commented on DERBY-2336:
---------------------------------------

The reality is that there isn't really "recovery" code involved.   It is just 
store code that happens to be running at recovery time (one of the
good things about derby is that redo recovery path is really the same path 
through the code as forward running recovery).  The problem
comes in that with the old system of pulling the collation info off the context 
stack is that the setup of the info onto the context stack can't
be from some code "above" store as at recovery time there is no code "above" 
store.

To answer dan's question about the meta data:
Store currently maintains an array of format id's per table, one for each 
table/index.  Many of the store interfaces the store never needs to
create an object  to read or write data to/from disk.   Most of the interfaces 
include an empty or a full object passed in from the caller.  But
in some cases store goes ahead and creates empty objects using format id's.   
The Monitor currently provides some interfaces to 
generate empty datatype objects based on  format id's. 

For example  the code in 
java/engine/org/apache/derby/impl/store/access/conglomerate/TemplateRow.java 
uses the following to generate an object of the correct
type given a format id:
 Monitor.newInstanceFromIdentifier(format_ids[i]) 

So if we want to "pass" in the info into the datatype, rather than have the 
datatype pull it from a context then one option would be to 
create something like Monitor.newInstanceFromIdentifier(format_id, 
collation_info);  And similar changes to any other Monitor supported
interface to create a datatype.  Then the problem just turns into getting the 
correct info into the various monitor calls.  Above the store
maybe the compiler could generate 1 arg calls when it knew there was no 
collation info.  In the store I think it would be least ugly to 
always generate 2 arg calls, but it is extra overhead for the non-collation 
path.



> Enable collation based ordering for CHAR data type.
> ---------------------------------------------------
>
>                 Key: DERBY-2336
>                 URL: https://issues.apache.org/jira/browse/DERBY-2336
>             Project: Derby
>          Issue Type: Sub-task
>          Components: SQL
>    Affects Versions: 10.3.0.0
>            Reporter: Mamta A. Satoor
>         Attachments: DERBY_LocalFinder_CodeCleanup_diff_V01.txt, 
> DERBY_LocalFinder_CodeCleanup_stat_V01.txt
>
>
> I am breaking down the Parent task DERBY-1478 (Add built in language based 
> ordering and like processing to Derby) into multiple sub tasks. One of them 
> is to concentrate on enabling the collation based ordering on (hopefully the 
> simplest of all the character data types) CHAR data type. This task in itself 
> might need subtasks if it is later found that it can be subdivided into 
> multiple smaller steps.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to