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

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new 21c6b854f79 [fix](explode-json-object)fix explode json object (#37956)
21c6b854f79 is described below

commit 21c6b854f796eac3836a9cce074a0abcffbd8d6e
Author: amory <[email protected]>
AuthorDate: Wed Jul 17 01:03:07 2024 +0800

    [fix](explode-json-object)fix explode json object (#37956)
    
    ## Proposed changes
    
    Issue Number: close #xxx
    
    <!--Describe your changes.-->
---
 .../table_function/table_function_factory.cpp      |   2 +
 .../data/jsonb_p0/test_jsonb_load_and_function.out | 114 ---------------------
 .../jsonb_p0/test_jsonb_load_and_function.out      |  47 +++------
 3 files changed, 16 insertions(+), 147 deletions(-)

diff --git a/be/src/vec/exprs/table_function/table_function_factory.cpp 
b/be/src/vec/exprs/table_function/table_function_factory.cpp
index 9e3a532b528..c72a897305a 100644
--- a/be/src/vec/exprs/table_function/table_function_factory.cpp
+++ b/be/src/vec/exprs/table_function/table_function_factory.cpp
@@ -28,6 +28,7 @@
 #include "vec/exprs/table_function/vexplode.h"
 #include "vec/exprs/table_function/vexplode_bitmap.h"
 #include "vec/exprs/table_function/vexplode_json_array.h"
+#include "vec/exprs/table_function/vexplode_json_object.h"
 #include "vec/exprs/table_function/vexplode_map.h"
 #include "vec/exprs/table_function/vexplode_numbers.h"
 #include "vec/exprs/table_function/vexplode_split.h"
@@ -57,6 +58,7 @@ const std::unordered_map<std::string, 
std::function<std::unique_ptr<TableFunctio
                 {"explode_json_array_json", 
VExplodeJsonArrayCreator<ParsedDataJSON>()},
                 {"explode_bitmap", 
TableFunctionCreator<VExplodeBitmapTableFunction>()},
                 {"explode_map", TableFunctionCreator<VExplodeMapTableFunction> 
{}},
+                {"explode_json_object", 
TableFunctionCreator<VExplodeJsonObjectTableFunction> {}},
                 {"explode", TableFunctionCreator<VExplodeTableFunction> {}}};
 
 Status TableFunctionFactory::get_fn(const std::string& fn_name_raw, 
ObjectPool* pool,
diff --git a/regression-test/data/jsonb_p0/test_jsonb_load_and_function.out 
b/regression-test/data/jsonb_p0/test_jsonb_load_and_function.out
index 271083fbeba..aaaea0d4e1b 100644
--- a/regression-test/data/jsonb_p0/test_jsonb_load_and_function.out
+++ b/regression-test/data/jsonb_p0/test_jsonb_load_and_function.out
@@ -8613,117 +8613,3 @@ true
 -- !sql_json_parse --
 {"":1,"ab":"v1","":"v1","":2}
 
--- !sql_json_keys --
-["k1", "k2"]
-
--- !sql_json_keys --
-["a.b.c", "a"]
-
--- !sql_json_keys --
-["k1.a1", "k2"]
-
--- !sql_json_keys --
-\N
-
--- !sql_json_keys --
-\N
-
--- !sql_json_keys --
-\N
-
--- !sql_json_keys --
-\N
-
--- !select_json_keys --
-1      \N      \N
-2      null    \N
-3      true    \N
-4      false   \N
-5      100     \N
-6      10000   \N
-7      1000000000      \N
-8      1152921504606846976     \N
-9      6.18    \N
-10     "abcd"  \N
-11     {}      []
-12     {"k1":"v31","k2":300}   ["k1", "k2"]
-13     []      \N
-14     [123,456]       \N
-15     ["abc","def"]   \N
-16     [null,true,false,100,6.18,"abc"]        \N
-17     [{"k1":"v41","k2":400},1,"a",3.14]      \N
-18     {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}   ["k1", 
"k2", "a1"]
-26     \N      \N
-27     {"k1":"v1","k2":200}    ["k1", "k2"]
-28     {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}    ["a.b.c", "a"]
-29     12524337771678448270    \N
-30     -9223372036854775808    \N
-31     18446744073709551615    \N
-32     {"":"v1"}       [""]
-33     {"":1,"":"v1"}  ["", ""]
-34     {"":1,"ab":"v1","":"v1","":2}   ["", "ab", "", ""]
-
--- !select_json_keys --
-1      \N      \N
-2      null    \N
-3      true    \N
-4      false   \N
-5      100     \N
-6      10000   \N
-7      1000000000      \N
-8      1152921504606846976     \N
-9      6.18    \N
-10     "abcd"  \N
-11     {}      \N
-12     {"k1":"v31","k2":300}   \N
-13     []      \N
-14     [123,456]       \N
-15     ["abc","def"]   \N
-16     [null,true,false,100,6.18,"abc"]        \N
-17     [{"k1":"v41","k2":400},1,"a",3.14]      \N
-18     {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}   \N
-26     \N      \N
-27     {"k1":"v1","k2":200}    \N
-28     {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}    \N
-29     12524337771678448270    \N
-30     -9223372036854775808    \N
-31     18446744073709551615    \N
-32     {"":"v1"}       \N
-33     {"":1,"":"v1"}  \N
-34     {"":1,"ab":"v1","":"v1","":2}   \N
-
--- !select_json_keys --
-1      \N      \N
-2      null    \N
-3      true    \N
-4      false   \N
-5      100     \N
-6      10000   \N
-7      1000000000      \N
-8      1152921504606846976     \N
-9      6.18    \N
-10     "abcd"  \N
-11     {}      \N
-12     {"k1":"v31","k2":300}   \N
-13     []      \N
-14     [123,456]       \N
-15     ["abc","def"]   \N
-16     [null,true,false,100,6.18,"abc"]        \N
-17     [{"k1":"v41","k2":400},1,"a",3.14]      \N
-18     {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}   \N
-26     \N      \N
-27     {"k1":"v1","k2":200}    \N
-28     {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}    \N
-29     12524337771678448270    \N
-30     -9223372036854775808    \N
-31     18446744073709551615    \N
-32     {"":"v1"}       \N
-33     {"":1,"":"v1"}  \N
-34     {"":1,"ab":"v1","":"v1","":2}   \N
-
--- !select_json_keys --
-{"a.b.c":{"k1.a1":"v31","k2":300},"a":{}}      $.a     []
-{"a.b.c":{"k1.a1":"v31","k2":300}}     $.a.b.c \N
-{"a.b.c":{"k1.a1":"v31","k2":300},"a":{"k1.a1":1}}     $.a     ["k1.a1"]
-["a","b"]      $.a     \N
-
diff --git 
a/regression-test/data/nereids_p0/jsonb_p0/test_jsonb_load_and_function.out 
b/regression-test/data/nereids_p0/jsonb_p0/test_jsonb_load_and_function.out
index 0d33127ad20..71fe88a8492 100644
--- a/regression-test/data/nereids_p0/jsonb_p0/test_jsonb_load_and_function.out
+++ b/regression-test/data/nereids_p0/jsonb_p0/test_jsonb_load_and_function.out
@@ -8316,53 +8316,25 @@ false
 34     {"":1,"ab":"v1","":"v1","":2}   [null,null,null]
 
 -- !order_select_explode_json_object --
-1      \N      \N      \N
-2      null    \N      \N
-3      true    \N      \N
-4      false   \N      \N
-5      100     \N      \N
-6      10000   \N      \N
-7      1000000000      \N      \N
-8      1152921504606846976     \N      \N
-9      6.18    \N      \N
-10     "abcd"  \N      \N
-11     {}      \N      \N
 12     {"k1":"v31","k2":300}   k1      "v31"
 12     {"k1":"v31","k2":300}   k2      300
-13     []      \N      \N
-14     [123,456]       \N      \N
-15     ["abc","def"]   \N      \N
-16     [null,true,false,100,6.18,"abc"]        \N      \N
-17     [{"k1":"v41","k2":400},1,"a",3.14]      \N      \N
 18     {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}   a1      
[{"k1":"v41","k2":400},1,"a",3.14]
 18     {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}   k1      
"v31"
 18     {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}   k2      
300
-26     \N      \N      \N
 27     {"k1":"v1","k2":200}    k1      "v1"
 27     {"k1":"v1","k2":200}    k2      200
 28     {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}    a       "niu"
 28     {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}    a.b.c   
{"k1.a1":"v31","k2":300}
-29     12524337771678448270    \N      \N
-30     -9223372036854775808    \N      \N
-31     18446744073709551615    \N      \N
 32     {"":"v1"}               "v1"
-33     {"":1,"":"v1"}          1
 33     {"":1,"":"v1"}          "v1"
-34     {"":1,"ab":"v1","":"v1","":2}           1
+33     {"":1,"":"v1"}          1
 34     {"":1,"ab":"v1","":"v1","":2}           "v1"
+34     {"":1,"ab":"v1","":"v1","":2}           1
 34     {"":1,"ab":"v1","":"v1","":2}           2
 34     {"":1,"ab":"v1","":"v1","":2}   ab      "v1"
 
 -- !order_select_explode_json_object_out --
 1      \N      \N      \N
-2      null    \N      \N
-3      true    \N      \N
-4      false   \N      \N
-5      100     \N      \N
-6      10000   \N      \N
-7      1000000000      \N      \N
-8      1152921504606846976     \N      \N
-9      6.18    \N      \N
 10     "abcd"  \N      \N
 11     {}      \N      \N
 12     {"k1":"v31","k2":300}   k1      "v31"
@@ -8375,21 +8347,29 @@ false
 18     {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}   a1      
[{"k1":"v41","k2":400},1,"a",3.14]
 18     {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}   k1      
"v31"
 18     {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}   k2      
300
+2      null    \N      \N
 26     \N      \N      \N
 27     {"k1":"v1","k2":200}    k1      "v1"
 27     {"k1":"v1","k2":200}    k2      200
 28     {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}    a       "niu"
 28     {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}    a.b.c   
{"k1.a1":"v31","k2":300}
 29     12524337771678448270    \N      \N
+3      true    \N      \N
 30     -9223372036854775808    \N      \N
 31     18446744073709551615    \N      \N
 32     {"":"v1"}               "v1"
-33     {"":1,"":"v1"}          1
 33     {"":1,"":"v1"}          "v1"
-34     {"":1,"ab":"v1","":"v1","":2}           1
+33     {"":1,"":"v1"}          1
 34     {"":1,"ab":"v1","":"v1","":2}           "v1"
+34     {"":1,"ab":"v1","":"v1","":2}           1
 34     {"":1,"ab":"v1","":"v1","":2}           2
 34     {"":1,"ab":"v1","":"v1","":2}   ab      "v1"
+4      false   \N      \N
+5      100     \N      \N
+6      10000   \N      \N
+7      1000000000      \N      \N
+8      1152921504606846976     \N      \N
+9      6.18    \N      \N
 
 -- !sql_json_parse --
 {"":"v1"}
@@ -8398,4 +8378,5 @@ false
 {"":1,"":"v1"}
 
 -- !sql_json_parse --
-{"":1,"ab":"v1","":"v1","":2}
\ No newline at end of file
+{"":1,"ab":"v1","":"v1","":2}
+


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to