Skip to content

Commit 53692b5

Browse files
authored
Merge branch 'datafusion-contrib:main' into main
2 parents da4da6a + 0b710ee commit 53692b5

17 files changed

+29
-19
lines changed

Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
[package]
22
name = "datafusion-functions-json"
3-
version = "0.49.0"
3+
version = "0.50.0"
44
edition = "2021"
55
description = "JSON functions for DataFusion"
66
readme = "README.md"
77
license = "Apache-2.0"
88
keywords = ["datafusion", "JSON", "SQL"]
99
categories = ["database-implementations", "parsing"]
1010
repository = "https://github.com/datafusion-contrib/datafusion-functions-json/"
11-
rust-version = "1.85.1"
11+
rust-version = "1.86.0"
1212

1313
[dependencies]
14-
datafusion = { version = "49", default-features = false }
14+
datafusion = { version = "50", default-features = false }
1515
jiter = "0.10"
1616
log = "0.4"
1717
jsonpath-rust = "1.0.0"
1818
paste = "1"
1919

2020
[dev-dependencies]
2121
codspeed-criterion-compat = "2.6"
22-
datafusion = { version = "49", default-features = false, features = [
22+
datafusion = { version = "50", default-features = false, features = [
2323
"nested_expressions",
2424
] }
2525
tokio = { version = "1.43", features = ["full"] }

benches/main.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ fn bench_json_contains(b: &mut Bencher) {
3333
number_rows: 1,
3434
arg_fields: arg_fields.clone(),
3535
return_field: return_field.clone(),
36+
config_options: Arc::new(datafusion::config::ConfigOptions::default()),
3637
})
3738
.unwrap()
3839
});
@@ -63,6 +64,7 @@ fn bench_json_get_str_scalar(b: &mut Bencher) {
6364
arg_fields: arg_fields.clone(),
6465
number_rows: 1,
6566
return_field: return_field.clone(),
67+
config_options: Arc::new(datafusion::config::ConfigOptions::default()),
6668
})
6769
.unwrap();
6870
});
@@ -94,6 +96,7 @@ fn bench_json_get_str_array(b: &mut Bencher) {
9496
arg_fields: arg_fields.clone(),
9597
number_rows: 1,
9698
return_field: return_field.clone(),
99+
config_options: Arc::new(datafusion::config::ConfigOptions::default()),
97100
})
98101
.unwrap();
99102
});
@@ -125,6 +128,7 @@ fn bench_json_get_str_view_array(b: &mut Bencher) {
125128
arg_fields: arg_fields.clone(),
126129
number_rows: 1,
127130
return_field: return_field.clone(),
131+
config_options: Arc::new(datafusion::config::ConfigOptions::default()),
128132
})
129133
.unwrap();
130134
});

src/common_macros.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ macro_rules! make_udf_function {
3030
static [< STATIC_ $expr_fn_name:upper >]: std::sync::OnceLock<std::sync::Arc<datafusion::logical_expr::ScalarUDF>> =
3131
std::sync::OnceLock::new();
3232

33-
/// ScalarFunction that returns a [`ScalarUDF`] for [`$udf_impl`]
33+
/// `ScalarFunction` that returns a [`ScalarUDF`] for [`$udf_impl`]
3434
///
3535
/// [`ScalarUDF`]: datafusion::logical_expr::ScalarUDF
3636
pub fn [< $expr_fn_name _udf >]() -> std::sync::Arc<datafusion::logical_expr::ScalarUDF> {

src/common_union.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use std::collections::HashMap;
2-
use std::sync::{Arc, OnceLock};
2+
use std::sync::{Arc, LazyLock, OnceLock};
33

44
use datafusion::arrow::array::{
55
Array, ArrayRef, AsArray, BooleanArray, Float64Array, Int64Array, NullArray, StringArray, UnionArray,
@@ -48,6 +48,8 @@ pub(crate) fn json_from_union_scalar<'a>(
4848
None
4949
}
5050

51+
pub static JSON_UNION_DATA_TYPE: LazyLock<DataType> = LazyLock::new(JsonUnion::data_type);
52+
5153
#[derive(Debug)]
5254
pub(crate) struct JsonUnion {
5355
bools: Vec<Option<bool>>,
@@ -255,7 +257,7 @@ impl JsonUnionEncoder {
255257
///
256258
/// Panics if the idx is outside the union values or an invalid type id exists in the union.
257259
#[must_use]
258-
pub fn get_value(&self, idx: usize) -> JsonUnionValue {
260+
pub fn get_value(&self, idx: usize) -> JsonUnionValue<'_> {
259261
let type_id = self.type_ids[idx];
260262
match type_id {
261263
TYPE_ID_NULL => JsonUnionValue::JsonNull,

src/json_as_text.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ make_udf_function!(
1717
r#"Get any value from a JSON string by its "path", represented as a string"#
1818
);
1919

20-
#[derive(Debug)]
20+
#[derive(Debug, PartialEq, Eq, Hash)]
2121
pub(super) struct JsonAsText {
2222
signature: Signature,
2323
aliases: [String; 1],

src/json_contains.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ make_udf_function!(
1717
r#"Does the key/index exist within the JSON value as the specified "path"?"#
1818
);
1919

20-
#[derive(Debug)]
20+
#[derive(Debug, PartialEq, Eq, Hash)]
2121
pub(super) struct JsonContains {
2222
signature: Signature,
2323
aliases: [String; 1],

src/json_get.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ make_udf_function!(
2323

2424
// build_typed_get!(JsonGet, "json_get", Union, Float64Array, jiter_json_get_float);
2525

26-
#[derive(Debug)]
26+
#[derive(Debug, PartialEq, Eq, Hash)]
2727
pub(super) struct JsonGet {
2828
signature: Signature,
2929
aliases: [String; 1],

src/json_get_array.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ make_udf_function!(
1717
r#"Get an arrow array from a JSON string by its "path""#
1818
);
1919

20-
#[derive(Debug)]
20+
#[derive(Debug, PartialEq, Eq, Hash)]
2121
pub(super) struct JsonGetArray {
2222
signature: Signature,
2323
aliases: [String; 1],

src/json_get_bool.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ make_udf_function!(
1616
r#"Get an boolean value from a JSON string by its "path""#
1717
);
1818

19-
#[derive(Debug)]
19+
#[derive(Debug, PartialEq, Eq, Hash)]
2020
pub(super) struct JsonGetBool {
2121
signature: Signature,
2222
aliases: [String; 1],

src/json_get_float.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ make_udf_function!(
1717
r#"Get a float value from a JSON string by its "path""#
1818
);
1919

20-
#[derive(Debug)]
20+
#[derive(Debug, PartialEq, Eq, Hash)]
2121
pub(super) struct JsonGetFloat {
2222
signature: Signature,
2323
aliases: [String; 1],

0 commit comments

Comments
 (0)