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

Lars Hofhansl edited comment on PHOENIX-5550 at 11/2/19 12:18 AM:
------------------------------------------------------------------

This is undoing part of PHOENIX-5486 and I think this will break old clients, 
no?

I think we need to bite the bullet and do the right thing based on the config 
setting. If it's false we should create indexes with Shorts and make sure that 
metadata is honored.


was (Author: lhofhansl):
I think this will break old clients, no?

I think we need to bite the bullet and do the right thing based on the config 
setting. If it's false we should create indexes with Shorts and make sure that 
metadata is honored.

> Scan after local index creation on table having data giving wrong results 
> when long view index id disabled
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-5550
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5550
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Rajeshbabu Chintaguntla
>            Assignee: Rajeshbabu Chintaguntla
>            Priority: Blocker
>             Fix For: 4.15.0, 5.1.0
>
>         Attachments: PHOENIX-5550.patch
>
>
> After PHOENIX-3547 and PHOENIX-5104 querying after local index creation on 
> the table having data is failing because of the view index id type mismatches.
> The client is sending the SMALLINT as view index id data type.
> {noformat}
>     private PDataType getViewIndexDataType() throws SQLException {
>         boolean supportsLongViewIndexId = 
> connection.getQueryServices().getProps().getBoolean(
>                                 QueryServices.LONG_VIEW_INDEX_ENABLED_ATTRIB,
>                                 
> QueryServicesOptions.DEFAULT_LONG_VIEW_INDEX_ENABLED);
>         return supportsLongViewIndexId ? 
> MetaDataUtil.getViewIndexIdDataType() : 
> MetaDataUtil.getLegacyViewIndexIdDataType();
>     }
> {noformat}
> But in the  create index api in endpoint impl is considering LONG as view 
> index id data type.
> {noformat}
>                         PDataType dataType = 
> MetaDataUtil.getViewIndexIdDataType();
>                         Object val = dataType.toObject(seqValue, 
> PLong.INSTANCE);
>                         byte[] bytes = new byte[dataType.getByteSize() + 1];
>                         dataType.toBytes(val, bytes, 0);
>                         Cell indexIdCell =
>                                 
> PhoenixKeyValueUtil.newKeyValue(cell.getRowArray(),
>                                     cell.getRowOffset(), cell.getRowLength(),
>                                     cell.getFamilyArray(), 
> cell.getFamilyOffset(),
>                                     cell.getFamilyLength(), 
> VIEW_INDEX_ID_BYTES, 0,
>                                     VIEW_INDEX_ID_BYTES.length, 
> cell.getTimestamp(), bytes, 0,
>                                     bytes.length, cell.getType());
> {noformat}
> {noformat}
>                 if (indexId != null) {
>                     builder.setViewIndexId(indexId);
>                     builder.setViewIndexIdType(PLong.INSTANCE.getSqlType());
>                 }
> {noformat}
>  
> Most of the local index tests failing If we set false value to the following 
> configuration.
>   <property>
>     <!--
>     We have some hardcoded viewIndex ids in the IT tests which assumes 
> viewIndexId is of type Long.
>     However the default viewIndexId type is set to "short" by default until 
> we upgrade all clients to support
>     long viewIndex ids.
>     -->
>     <name>phoenix.index.longViewIndex.enabled</name>
>     <value>false</value>
>   </property>



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to