insert default when json array parse failed (#25447)
insert default when json array parse failed
This commit is contained in:
@ -215,7 +215,7 @@ Status VExplodeJsonArrayTableFunction::process_close() {
|
||||
}
|
||||
|
||||
void VExplodeJsonArrayTableFunction::get_value(MutableColumnPtr& column) {
|
||||
if (current_empty()) {
|
||||
if (current_empty() || _parsed_data.get_value(_type, _cur_offset, true) == nullptr) {
|
||||
column->insert_default();
|
||||
} else {
|
||||
column->insert_data((char*)_parsed_data.get_value(_type, _cur_offset, true),
|
||||
|
||||
@ -21,6 +21,10 @@
|
||||
30 8
|
||||
60 8
|
||||
|
||||
-- !explode_json_array_8_invalid --
|
||||
0 8
|
||||
60 8
|
||||
|
||||
-- !explode_json_array9 --
|
||||
|
||||
-- !explode_json_array10 --
|
||||
|
||||
@ -45,6 +45,11 @@ suite("explode_json_array") {
|
||||
LATERAL VIEW EXPLODE_JSON_ARRAY_INT('[40, 80]') t2 as d_age
|
||||
GROUP BY c_age ORDER BY c_age """
|
||||
|
||||
qt_explode_json_array_8_invalid """ SELECT c_age, COUNT(1) FROM ${tableName}
|
||||
LATERAL VIEW EXPLODE_JSON_ARRAY_INT('["1", 60]') t1 as c_age
|
||||
LATERAL VIEW EXPLODE_JSON_ARRAY_INT('["b", "c"]') t2 as d_age
|
||||
GROUP BY c_age ORDER BY c_age """
|
||||
|
||||
qt_explode_json_array9 """ SELECT * FROM ${tableName}
|
||||
LATERAL VIEW EXPLODE_JSON_ARRAY_INT('[]') t1 AS c_age
|
||||
ORDER BY id, c_age """
|
||||
|
||||
Reference in New Issue
Block a user