Struct diesel::sql_types::Jsonb

source ·
pub struct Jsonb;
Available on crate feature postgres_backend only.
Expand description

The jsonb SQL type. This type can only be used with feature = "serde_json"

jsonb offers several advantages over regular JSON:

There are two JSON data types: json and jsonb. They accept almost identical sets of values as input. The major practical difference is one of efficiency. The json data type stores an exact copy of the input text, which processing functions must reparse on each execution; while jsonb data is stored in a decomposed binary format that makes it slightly slower to input due to added conversion overhead, but significantly faster to process, since no reparsing is needed. jsonb also supports indexing, which can be a significant advantage.

…In general, most applications should prefer to store JSON data as jsonb, unless there are quite specialized needs, such as legacy assumptions about ordering of object keys.

ToSql impls

FromSql impls

Examples

table! {
    contacts {
        id -> Integer,
        name -> VarChar,
        address -> Jsonb,
    }
}

let santas_address: serde_json::Value = serde_json::from_str(r#"{
    "street": "Article Circle Expressway 1",
    "city": "North Pole",
    "postcode": "99705",
    "state": "Alaska"
}"#)?;
let inserted_address = insert_into(contacts)
    .values((name.eq("Claus"), address.eq(&santas_address)))
    .returning(address)
    .get_result::<serde_json::Value>(connection)?;
assert_eq!(santas_address, inserted_address);

Trait Implementations§

The expression being returned
Perform the conversion
The expression being returned
Perform the conversion
The expression being returned
Perform the conversion
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
See the trait documentation.
A specialized variant of from_sql for handling null values. Read more
Fetch the metadata for the given type Read more
A type which uniquely represents Self in a SQL query. Read more
Can the SQL generated by Self be uniquely identified by its type? Read more
Returns the type id of Self::QueryId if Self::HAS_STATIC_QUERY_ID. Returns None otherwise. Read more
Is this type nullable? Read more
See the trait documentation.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The not nullable representation of this type. Read more
The nullable representation of this type. Read more
Convert self to an expression for Diesel’s query builder. Read more
Convert &self to an expression for Diesel’s query builder. Read more
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.