You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@phoenix.apache.org by "Lars Hofhansl (Jira)" <ji...@apache.org> on 2019/11/01 05:08:00 UTC

[jira] [Commented] (PHOENIX-5550) Scan after local index creation on table having data giving wrong results when long view index id disabled

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

Lars Hofhansl commented on PHOENIX-5550:
----------------------------------------

I'm pretty sure I tested that.

[~rajeshbabu] can you list exact steps to reproduce?

> 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: Major
>             Fix For: 4.15.0, 5.1.0
>
>
> 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)