[
https://issues.apache.org/jira/browse/PHOENIX-1875?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14532164#comment-14532164
]
ramkrishna.s.vasudevan commented on PHOENIX-1875:
-------------------------------------------------
Looks good to me.
A big fat comment would be needed here to know what we are doing.
{code}
lengthIncrease = nRemainingNulls == 1 ? (nMultiplesOver255 == 0
? 2 * Bytes.SIZEOF_BYTE : Bytes.SIZEOF_BYTE) : 0;
{code}
Will there be a case of nRemainingNulls does not change but nMultipliesOVer255
changes? I don't think it would be possible.
One important question, when I was trying to debug for NULLs in upsert i found
that when we UPSERT null into a float array we return the result as 0.0, for eg,
{code}
("CREATE TABLE t ( k VARCHAR PRIMARY KEY, a Float ARRAY[])");
......
stmt = conn.prepareStatement("UPSERT INTO t VALUES('a',ARRAY[2.0,null])");
{code}
The returning array is 2.0, 0.0. Which means we are allowing nulls.
Now when we prepend/append a null I think we just don't add any new element for
the primitive case. Is that behaviour in sync with postgre?
[~giacomotaylor]
Your thoughts on this?
> implement ARRAY_PREPEND built in function
> -----------------------------------------
>
> Key: PHOENIX-1875
> URL: https://issues.apache.org/jira/browse/PHOENIX-1875
> Project: Phoenix
> Issue Type: Sub-task
> Reporter: Dumindu Buddhika
> Assignee: Dumindu Buddhika
> Attachments: PHOENIX-1875-v2.patch, PHOENIX-1875-v3.patch,
> PHOENIX-1875-v4.patch
>
>
> ARRAY_PREPEND(1, ARRAY[2, 3]) = ARRAY[1, 2, 3]
> ARRAY_PREPEND("a", ARRAY["b", "c"]) = ARRAY["a", "b", "c"]
> ARRAY_PREPEND(null, ARRAY["b", "c"]) = ARRAY[null, "b", "c"]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)