[][src]Struct diesel::pg::types::sql_types::Jsonb

pub struct Jsonb;

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

extern crate serde_json;
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"
}"#).unwrap();
let inserted_address = insert_into(contacts)
    .values((name.eq("Claus"), address.eq(&santas_address)))
    .returning(address)
    .get_result(&connection);
assert_eq!(Ok(santas_address), inserted_address);

Trait Implementations

impl FromSql<Jsonb, Pg> for Value[src]

impl<'expr> AsExpression<Jsonb> for &'expr Value[src]

type Expression = Bound<Jsonb, Self>

The expression being returned

impl<'expr2, 'expr> AsExpression<Jsonb> for &'expr2 &'expr Value[src]

type Expression = Bound<Jsonb, Self>

The expression being returned

impl AsExpression<Jsonb> for Value[src]

type Expression = Bound<Jsonb, Self>

The expression being returned

impl QueryId for Jsonb[src]

type QueryId = Jsonb

A type which uniquely represents Self in a SQL query. Read more

impl ToSql<Jsonb, Pg> for Value[src]

impl HasSqlType<Jsonb> for Pg[src]

impl NotNull for Jsonb[src]

impl SingleValue for Jsonb[src]

impl Default for Jsonb[src]

impl Clone for Jsonb[src]

impl Copy for Jsonb[src]

impl Debug for Jsonb[src]

Auto Trait Implementations

impl Send for Jsonb

impl Unpin for Jsonb

impl Sync for Jsonb

impl UnwindSafe for Jsonb

impl RefUnwindSafe for Jsonb

Blanket Implementations

impl<T> IntoSql for T[src]

impl<T> IntoNullable for T where
    T: NotNull
[src]

type Nullable = Nullable<T>

The nullable representation of this type. Read more

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]