fix: correct unicode representation for jsonb_to_string (#7810)

* fix: correct unicode representation for jsonb_to_string

* refactor: correct function name and behavior

* fix: fix json_to_string and provide tests
This commit is contained in:
Ning Sun
2026-03-16 11:01:02 +08:00
committed by GitHub
parent 0dfbba0b3f
commit 306e8398cf
4 changed files with 119 additions and 124 deletions

View File

@@ -19,6 +19,7 @@ use datafusion_common::DataFusionError;
use datafusion_common::arrow::array::{Array, AsArray, StringViewBuilder};
use datafusion_common::arrow::datatypes::DataType;
use datafusion_expr::{ColumnarValue, ScalarFunctionArgs, Signature, Volatility};
use datatypes::types::jsonb_to_string;
use crate::function::{Function, extract_args};
@@ -74,7 +75,7 @@ impl Function for JsonToStringFunction {
for i in 0..size {
let json = jsons.is_valid(i).then(|| jsons.value(i));
let result = json
.map(|json| jsonb::from_slice(json).map(|x| x.to_string()))
.map(jsonb_to_string)
.transpose()
.map_err(|e| DataFusionError::Execution(format!("invalid json binary: {e}")))?;