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

Biju Nair commented on PHOENIX-3917:
------------------------------------

Looking through the code for {{ProjectionCompiler#compile}} where the 
projection size is calculated, looks the [logic to calculate the 
size|https://github.com/apache/phoenix/blob/e7629ca39224e7cbc49e8a7740ed96877a16df76/phoenix-core/src/main/java/org/apache/phoenix/compile/ProjectionCompiler.java#L471-L491]
 need to be moved a bit further after
{code}
    if (isWildcard) {
            projectAllColumnFamilies(table, scan);
        } else {
            isProjectEmptyKeyValue = where == null || 
LiteralExpression.isTrue(where) || where.requiresFinalEvaluation();
            for (byte[] family : projectedFamilies) {
                projectColumnFamily(table, scan, family);
            }
        }
{code}

Also if the column projected in the query is only the key column, the size of 
the key column need to be set to the estimated size of the {{RowProjector}}. 
After making the changes the size returned are 4 and 72 respectively for the 
queries mentioned in the description of this issue where both the columns 
{{A_ID}} and {{A_DATA}} are of the {{int}}. If this fix is correct let me know 
and I can provide a patch.

> RowProjector#getEstimatedRowByteSize() returns incorrect value
> --------------------------------------------------------------
>
>                 Key: PHOENIX-3917
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3917
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Biju Nair
>            Priority: Minor
>
> {{queryPlan..getProjector().getEstimatedRowByteSize()}} returns "0" for a 
> query {{SELECT A_ID FROM TABLE}} where {{A_ID}} is Primary Key. Same is the 
> case for the query {{SELECT A_ID, A_DATA FROM TABLE}} where {{A_DATA}} is a 
> non key column. Assuming that the method is meant to return the estimated 
> number of bytes from the query projection the returned value of 0 is 
> incorrect.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to