This is an automated email from the ASF dual-hosted git repository.

lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/master by this push:
     new 9bcc10b  [FLINK-24271][docs] Add document for special char in 
JSON_VALUE
9bcc10b is described below

commit 9bcc10bd6360e816e093d251ec622d6f48cea553
Author: liliwei <[email protected]>
AuthorDate: Sun Sep 26 10:35:46 2021 +0800

    [FLINK-24271][docs] Add document for special char in JSON_VALUE
    
    This closes #17275
---
 docs/data/sql_functions.yml                               | 15 +++++++++++----
 docs/data/sql_functions_zh.yml                            | 15 +++++++++++----
 flink-python/pyflink/table/expression.py                  |  2 ++
 .../apache/flink/table/api/internal/BaseExpressions.java  |  3 +++
 4 files changed, 27 insertions(+), 8 deletions(-)

diff --git a/docs/data/sql_functions.yml b/docs/data/sql_functions.yml
index a28f362..b3ddb15 100644
--- a/docs/data/sql_functions.yml
+++ b/docs/data/sql_functions.yml
@@ -666,19 +666,23 @@ json:
       behavior for `ON EMPTY`, and raises an error for `ON ERROR`.
 
       ```
-      // STRING: "true"
+      -- "true"
       JSON_VALUE('{"a": true}', '$.a')
 
-      // BOOLEAN: true
+      -- TRUE
       JSON_VALUE('{"a": true}', '$.a' RETURNING BOOLEAN)
 
-      // STRING: "false"
+      -- "false"
       JSON_VALUE('{"a": true}', 'lax $.b'
           DEFAULT FALSE ON EMPTY)
 
-      // STRING: "false"
+      -- "false"
       JSON_VALUE('{"a": true}', 'strict $.b'
           DEFAULT FALSE ON ERROR)
+
+      -- 0.998D
+      JSON_VALUE('{"a.b": [0.998,0.996]}','$.["a.b"][0]' 
+          RETURNING DOUBLE)
       ```
   - sql: JSON_QUERY(jsonValue, path [ { WITHOUT | WITH CONDITIONAL | WITH 
UNCONDITIONAL } [ ARRAY ] WRAPPER ] [ { NULL | EMPTY ARRAY | EMPTY OBJECT | 
ERROR } ON EMPTY ] [ { NULL | EMPTY ARRAY | EMPTY OBJECT | ERROR } ON ERROR ])
     table: STRING.jsonQuery(path [, JsonQueryWrapper [, 
JsonQueryOnEmptyOrError, JsonQueryOnEmptyOrError ] ])
@@ -701,6 +705,9 @@ json:
       JSON_QUERY('[1, 2]', '$')
       -- NULL
       JSON_QUERY(CAST(NULL AS STRING), '$')
+      -- '["c1","c2"]'
+      JSON_QUERY('{"a":[{"c":"c1"},{"c":"c2"}]}',
+          'lax $.a[*].c')
 
       -- Wrap result into an array
       -- '[{}]'
diff --git a/docs/data/sql_functions_zh.yml b/docs/data/sql_functions_zh.yml
index ecf8b69..f0fa6b4 100644
--- a/docs/data/sql_functions_zh.yml
+++ b/docs/data/sql_functions_zh.yml
@@ -784,19 +784,23 @@ json:
       behavior for `ON EMPTY`, and raises an error for `ON ERROR`.
 
       ```
-      // STRING: "true"
+      -- "true"
       JSON_VALUE('{"a": true}', '$.a')
 
-      // BOOLEAN: true
+      -- TRUE
       JSON_VALUE('{"a": true}', '$.a' RETURNING BOOLEAN)
 
-      // STRING: "false"
+      -- "false"
       JSON_VALUE('{"a": true}', 'lax $.b'
           DEFAULT FALSE ON EMPTY)
 
-      // STRING: "false"
+      -- "false"
       JSON_VALUE('{"a": true}', 'strict $.b'
           DEFAULT FALSE ON ERROR)
+
+      -- 0.998D
+      JSON_VALUE('{"a.b": [0.998,0.996]}','$.["a.b"][0]' 
+          RETURNING DOUBLE)
       ```
   - sql: JSON_QUERY(jsonValue, path [ { WITHOUT | WITH CONDITIONAL | WITH 
UNCONDITIONAL } [ ARRAY ] WRAPPER ] [ { NULL | EMPTY ARRAY | EMPTY OBJECT | 
ERROR } ON EMPTY ] [ { NULL | EMPTY ARRAY | EMPTY OBJECT | ERROR } ON ERROR ])
     table: STRING.jsonQuery(path [, JsonQueryWrapper [, 
JsonQueryOnEmptyOrError, JsonQueryOnEmptyOrError ] ])
@@ -819,6 +823,9 @@ json:
       JSON_QUERY('[1, 2]', '$')
       -- NULL
       JSON_QUERY(CAST(NULL AS STRING), '$')
+      -- '["c1","c2"]'
+      JSON_QUERY('{"a":[{"c":"c1"},{"c":"c2"}]}',
+          'lax $.a[*].c')
 
       -- Wrap result into an array
       -- '[{}]'
diff --git a/flink-python/pyflink/table/expression.py 
b/flink-python/pyflink/table/expression.py
index 2f26233..aa3b3f3 100644
--- a/flink-python/pyflink/table/expression.py
+++ b/flink-python/pyflink/table/expression.py
@@ -1547,6 +1547,8 @@ class Expression(Generic[T]):
         ::
 
             >>> lit('{"a": true}').json_value('$.a') # STRING: 'true'
+            >>> lit('{"a.b": [0.998,0.996]}').json_value("$.['a.b'][0]", \
+                    DataTypes.DOUBLE()) # DOUBLE: 0.998
             >>> lit('{"a": true}').json_value('$.a', DataTypes.BOOLEAN()) # 
BOOLEAN: True
             >>> lit('{"a": true}').json_value('lax $.b', \
                     JsonValueOnEmptyOrError.DEFAULT, False) # BOOLEAN: False
diff --git 
a/flink-table/flink-table-api-java/src/main/java/org/apache/flink/table/api/internal/BaseExpressions.java
 
b/flink-table/flink-table-api-java/src/main/java/org/apache/flink/table/api/internal/BaseExpressions.java
index cd8ea7c..4e2666e 100644
--- 
a/flink-table/flink-table-api-java/src/main/java/org/apache/flink/table/api/internal/BaseExpressions.java
+++ 
b/flink-table/flink-table-api-java/src/main/java/org/apache/flink/table/api/internal/BaseExpressions.java
@@ -1426,6 +1426,9 @@ public abstract class BaseExpressions<InType, OutType> {
      * // STRING: "true"
      * lit("{\"a\": true}").jsonValue("$.a")
      *
+     * // DOUBLE: 0.998
+     * lit("{\"a.b\": [0.998,0.996]}").jsonValue("$.['a.b'][0]", 
DataTypes.DOUBLE())
+     *
      * // BOOLEAN: true
      * lit("{\"a\": true}").jsonValue("$.a", DataTypes.BOOLEAN())
      *

Reply via email to