jsonb_patch

Function jsonb_patch 

Source
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());