[ https://issues.apache.org/jira/browse/PHOENIX-1705?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dumindu Buddhika updated PHOENIX-1705: -------------------------------------- Attachment: PHOENIX-1705_implement_ARRAY_APPEND_built_in_function.patch Patch for ARRAY_APPEND. Hi [~jamestaylor], I have written code to append elements to variable length arrays as well and created some tests. Can you review the code :)? I have used coerceBytes method with castible datatypes as you mentioned earlier.I have tested the code with varchar, int, double, bigint arrays. Tests run properly for them. However there is a problem I couldn't properly solve with fixed length char arrays. Since in a Char array, every element has a previously defined fixed length, ex {code} CHAR(15)[] {code} When an element appended to this kind of an array, second argument(element to be appended) comes as a varchar. So I need to convert this varchar to a byte array with a length of expression.getMaxLength()(in above example it would be 15). I tried to use baseType.coerceBytes method with expression.getMaxLength() as desiredMaxLength. But it only gives a byte array with only the varchar(not of the expression.getMaxLength()). I can create an array of expression.getMaxLength() and fill the extra bytes in the Char array case. But I am not sure it is the best way to do it. Is there a way to achieve this? I have done type checking in the constructor, it throws an IllegalArgumentException if type validation fails. Testcase for the char arrays fails due to the problem I mentioned. > 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 > > -- This message was sent by Atlassian JIRA (v6.3.4#6332)