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

Dumindu Buddhika commented on PHOENIX-1705:
-------------------------------------------

Thanks for the pointers [~jamestaylor].
I have followed the guidelines.
There are two problems.

{code}
// If the base type of an element is fixed width, make sure the element being 
appended will fit
        if (getBaseType().isFixedWidth() && getArrayExpr().getMaxLength() != 
null &&
                getElementExpr().getMaxLength() != null && 
getElementExpr().getMaxLength() > getArrayExpr().getMaxLength()) {
            throw new DataExceedsCapacityException("");
        }
{code}
with this condition, the problem I mentioned above occurs. If the following 
query is run.
{code}SELECT region_name FROM regions WHERE 
ARRAY[2,3,4]=ARRAY_APPEND(ARRAY[2,3],4){code}
code throws a DataExceedsCapacityException. The reason is 
getElementExpr().getMaxLength()  returns 10 and getArrayExpr().getMaxLength() 
returns 4. 



{code}
SELECT ARRAY_APPEND(chars,NULL) FROM regions WHERE region_name = 'SF Bay Area'
{code}
When the above query is run, it fails at the coercion check at the constructor. 
The reason is, in this example elementType comes as "PVarbinary" so the 
coercion check fails(That's why I have left out "PVarbinary" in coercion check 
earlier to support this case) . But the expected behavior is this function call 
should returns the array itself. 

May be these kind of queries are not practically used. So should we ignore them?



> implement ARRAY_APPEND built in function
> ----------------------------------------
>
>                 Key: PHOENIX-1705
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1705
>             Project: Phoenix
>          Issue Type: Sub-task
>            Reporter: Dumindu Buddhika
>            Assignee: Dumindu Buddhika
>         Attachments: 
> PHOENIX-1705_implement_ARRAY_APPEND_built_in_function.patch, 
> PHOENIX-1705_implement_ARRAY_APPEND_built_in_function.patch, 
> PHOENIX-1705_implement_ARRAY_APPEND_built_in_function1.patch, 
> PHOENIX-1705_implement_ARRAY_APPEND_built_in_function10.patch, 
> PHOENIX-1705_implement_ARRAY_APPEND_built_in_function2.patch, 
> PHOENIX-1705_implement_ARRAY_APPEND_built_in_function3.patch, 
> PHOENIX-1705_implement_ARRAY_APPEND_built_in_function4.patch, 
> PHOENIX-1705_implement_ARRAY_APPEND_built_in_function5.patch, 
> PHOENIX-1705_implement_ARRAY_APPEND_built_in_function6.patch, 
> PHOENIX-1705_implement_ARRAY_APPEND_built_in_function7.patch, 
> PHOENIX-1705_implement_ARRAY_APPEND_built_in_function8.patch, 
> PHOENIX-1705_implement_ARRAY_APPEND_built_in_function9.patch
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to