pub fn jsonb_patch<T: JsonOrNullableJsonOrJsonbOrNullableJsonb + SingleValue, P: JsonOrNullableJsonOrJsonbOrNullableJsonb + SingleValue + CombinedNullableValue<T, Jsonb>, target, patch>(
target: target,
patch: patch,
) -> jsonb_patch<T, P, target, patch>where
target: AsExpression<T>,
patch: AsExpression<P>,
Available on crate feature
sqlite
only.Expand description
Applies an RFC 7396 MergePatch patch
to the input JSON target
and
returns the patched JSON value in SQLite’s binary JSONB format.
See json_patch
for details about the MergePatch semantics.
§Examples
let result = diesel::select(jsonb_patch::<Jsonb, Jsonb, _, _>(
json!( {"a":1,"b":2} ),
json!( {"c":3,"d":4} ),
))
.get_result::<Value>(connection)?;
assert_eq!(json!({"a":1,"b":2,"c":3,"d":4}), result);
// Nullable input yields nullable output
let result = diesel::select(jsonb_patch::<Nullable<Jsonb>, Jsonb, _, _>(
None::<Value>,
json!({}),
))
.get_result::<Option<Value>>(connection)?;
assert!(result.is_none());