gustavodemorais commented on code in PR #28688:
URL: https://github.com/apache/flink/pull/28688#discussion_r3630790690


##########
docs/data/sql_functions.yml:
##########
@@ -1223,7 +1218,51 @@ json:
       -- [{"nested_json":{"value":42}}]
       JSON_ARRAY(JSON('{"nested_json": {"value": 42}}'))
       ```
-
+  - sql: JSON_LENGTH(json_doc[, path])
+    table: jsonLength(jsonObject[, path])
+    description: |
+      Returns the number of elements in a JSON document, or the length of the 
value at the specified path if one is provided. 
+      Returns NULL if the argument is NULL, the json is invalid, or the path 
does not locate a value.
+      eg. 
+        -- 2
+        JSON_LENGTH('{"1": "hello", "2": "bye bye"}')
+      
+        -- 5
+        JSON_LENGTH('[1,2,3,4,5]')
+      
+        -- 1
+        JSON_LENGTH('"hello"')
+      
+        -- 1
+        JSON_LENGTH('{"1": "hello", "2": "bye bye"}', '$.2')
+      
+        -- NULL
+        JSON_LENGTH('{"1": "hello", "2": "BAD SYNTAX ->"', '$.2')
+      
+      
+      The length is determined as follows:
+      
+        - Scalar values (number, string, boolean): has length 1.
+        - Array: has a length equal to the number of its elements.
+        - Object: has a length equal to the number of its key-value pairs.
+      
+        The path argument uses the form:                                       
                                                                                
                                                  
+      
+          path  ::= '$' ( '.' `field` | '[' `index` ']' )*                     
                                                                                
                                                
+          field ::= a key in a JSON object                                     
                                                                                
                                                
+          index ::= a zero-based position in a JSON array                      
                                                                                
                                                
+      
+        For example: `$.author.address` or `$.metadata.tags[0]`.

Review Comment:
   Path is reused in multiple json functions and not specific for this 
function. Just checked the docs and we already have some documentation on it at 
the top `The special character $ denotes the root node in a JSON path. Paths 
can access properties ($.a), array elements ($.a[0].b), or branch over all 
elements in an array ($.a[*].b).`
   
   If you want to improve that, change it there so it's visible for all 
functions. Otherwise, just delete it from here
   
   ```suggestion
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to