[ https://issues.apache.org/jira/browse/PHOENIX-1705?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14352422#comment-14352422 ]
Dumindu Buddhika commented on PHOENIX-1705: ------------------------------------------- [~jamestaylor], [~sergey.b] Thank you very much for the feedback. Hi, I think ARRAY_APPEND should not handle the case where the appending element itself is an array. If you look at PostgreSQL array functions They have a separate function for concatenating two arrays called ARRAY_CAT, http://www.postgresql.org/docs/9.2/static/functions-array.html If we concatenate two arrays in the ARRAY_APPEND function it carries a wrong meaning, For example if someone use the function in the following way, {code:sql} ARRAY_APPEND(array[1,2,3], array [4,5]) {code} He is expecting a result like this, {code:sql} ARRAY[1,2,3,ARRAY[4,5]] {code} But since we do not support multi-dimensional arrays(to my knowledge) we shouldn't handle this case here. I think a separate ARRAY_CAT built in function should be implemented for concatenation of arrays. What do you think about that? [~jamestaylor] I will remove the copying of bytes to a new array and improve the function to support variable length arrays. Thanks for the info on coerceBytes :). I am not very clear about the third point. So should we check types in the constructor of ArrayAppendFunction class? at here, {code:java} public ArrayAppendFunction(List<Expression> children) throws SQLException { super(children); } {code} Thanks. > 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 > > -- This message was sent by Atlassian JIRA (v6.3.4#6332)