phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Taylor (JIRA)" <>
Subject [jira] [Commented] (PHOENIX-1705) implement ARRAY_APPEND built in function
Date Mon, 09 Mar 2015 00:54:38 GMT


James Taylor commented on PHOENIX-1705:

Good start, [~Dumindux], and good feedback, [~sergey.b]. Besides these things, you'll also
want to handle arrays with variable length. In general, don't allocate new byte arrays or
other objects during evaluate unless absolutely necessary. For example:
+        byte[] elementBytes = Arrays.copyOfRange(source,elementOffset,elementOffset+elementLength);
No need for this copy. You'll basically want to allocate a new array of the correct size,
copy the existing bytes into it and then copy the new element into it.

Things you'll need to handle:
- If the element is an array, copy all the elements of the array to the end of the existing
- If the type of the array element doesn't match the type of the element being appended, you'll
need to coerce (use PDataType.coerceBytes) the type to match if sourceType.isCastableTo(targetType)
is true.
- We know the types at compile time (which is basically when the constructor is called), so
any type checking should be done there, as opposed to during evaluate (which gets called once
per row as a query is being evaluated).

> implement ARRAY_APPEND built in function
> ----------------------------------------
>                 Key: PHOENIX-1705
>                 URL:
>             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

View raw message