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:48:00 UTC
[jira] [Comment Edited] (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 edited comment on PHOENIX-5550 at 11/1/19 5:47 AM:
-----------------------------------------------------------------
I'm pretty sure I tested that.
[~rajeshbabu] can you list exact steps to reproduce?
Edit: OK. Not hard to reproduce:
# Create a table.
# Insert some data.
# Create an index.
# Use some query that uses the index.
Meh.
was (Author: lhofhansl):
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)