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

Hongze Zhang commented on CALCITE-2985:
---------------------------------------

Thanks, [~x1q1j1]. And we should reorganize built-in / MySQL's JSON functions 
in the fix of CALCITE-2846 or just after it get resolved. Currently the size of 
related classes such as {{StdOperatorTable}}, {{SqlFunctions}}, and test 
classes are expanding due to the adding of these functions. We should anyway do 
something to keep them easy to maintain (in future).

> Add the JSON_STORAGE_SIZE function
> ----------------------------------
>
>                 Key: CALCITE-2985
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2985
>             Project: Calcite
>          Issue Type: Sub-task
>            Reporter: Forward Xu
>            Assignee: Forward Xu
>            Priority: Major
>
> JSON_STORAGE_SIZE(json_val)
> This function returns the number of bytes used to store the binary 
> representation of a JSON document. When the argument is a JSON column, this 
> is the space used to store the JSON document. json_val must be a valid JSON 
> document or a string which can be parsed as one. In the case where it is 
> string, the function returns the amount of storage space in the JSON binary 
> representation that is created by parsing the string as JSON and converting 
> it to binary. It returns NULL if the argument is NULL.
> An error results when json_val is not NULL, and is not—or cannot be 
> successfully parsed as—a JSON document.
> To illustrate this function's behavior when used with a JSON column as its 
> argument, we create a table named jtable containing a JSON column jcol, 
> insert a JSON value into the table, then obtain the storage space used by 
> this column with JSON_STORAGE_SIZE(), as shown here:
> {code:java}
> SELECT
> JSON_STORAGE_SIZE('[100, "sakila", [1, 3, 5], 425.05]') AS A,
> JSON_STORAGE_SIZE('{"a": 1000, "b": "a", "c": "[1, 3, 5, 7]"}') AS B,
> JSON_STORAGE_SIZE('{"a": 1000, "b": "wxyz", "c": "[1, 3, 5, 7]"}') AS C,
> JSON_STORAGE_SIZE('[100, "json", [[10, 20, 30], 3, 5], 425.05]') AS D;
> {code}
> | A  | B  | C  | D  |
> | 29 | 37 | 40 | 36 |



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to