pub struct Jsonb;
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
andjsonb
. They accept almost identical sets of values as input. The major practical difference is one of efficiency. Thejson
data type stores an exact copy of the input text, which processing functions must reparse on each execution; whilejsonb
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
sourceimpl<'expr> AsExpression<Jsonb> for &'expr Value
impl<'expr> AsExpression<Jsonb> for &'expr Value
type Expression = Bound<Jsonb, &'expr Value>
type Expression = Bound<Jsonb, &'expr Value>
The expression being returned
sourcefn as_expression(self) -> Self::Expression
fn as_expression(self) -> Self::Expression
Perform the conversion
sourceimpl<'expr2, 'expr> AsExpression<Jsonb> for &'expr2 &'expr Value
impl<'expr2, 'expr> AsExpression<Jsonb> for &'expr2 &'expr Value
type Expression = Bound<Jsonb, &'expr2 &'expr Value>
type Expression = Bound<Jsonb, &'expr2 &'expr Value>
The expression being returned
sourcefn as_expression(self) -> Self::Expression
fn as_expression(self) -> Self::Expression
Perform the conversion
sourceimpl AsExpression<Jsonb> for Value
impl AsExpression<Jsonb> for Value
type Expression = Bound<Jsonb, Value>
type Expression = Bound<Jsonb, Value>
The expression being returned
sourcefn as_expression(self) -> Self::Expression
fn as_expression(self) -> Self::Expression
Perform the conversion
sourceimpl HasSqlType<Jsonb> for Pg
impl HasSqlType<Jsonb> for Pg
sourcefn metadata(_: &mut Self::MetadataLookup) -> PgTypeMetadata
fn metadata(_: &mut Self::MetadataLookup) -> PgTypeMetadata
Fetch the metadata for the given type Read more
sourceimpl QueryId for Jsonb
impl QueryId for Jsonb
sourceconst HAS_STATIC_QUERY_ID: bool = true
const HAS_STATIC_QUERY_ID: bool = true
Can the SQL generated by Self
be uniquely identified by its type? Read more
impl Copy for Jsonb
impl SingleValue for Jsonb
Auto Trait Implementations
impl RefUnwindSafe for Jsonb
impl Send for Jsonb
impl Sync for Jsonb
impl Unpin for Jsonb
impl UnwindSafe for Jsonb
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> IntoNotNullable for T where
T: SqlType<IsNull = NotNull>,
impl<T> IntoNotNullable for T where
T: SqlType<IsNull = NotNull>,
type NotNullable = T
type NotNullable = T
The not nullable representation of this type. Read more
sourceimpl<T> IntoNullable for T where
T: SqlType<IsNull = NotNull> + SingleValue,
impl<T> IntoNullable for T where
T: SqlType<IsNull = NotNull> + SingleValue,
sourceimpl<T> IntoSql for T
impl<T> IntoSql for T
sourcefn into_sql<T>(self) -> AsExprOf<Self, T> where
Self: AsExpression<T> + Sized,
T: SqlType + TypedExpressionType,
fn into_sql<T>(self) -> AsExprOf<Self, T> where
Self: AsExpression<T> + Sized,
T: SqlType + TypedExpressionType,
Convert self
to an expression for Diesel’s query builder. Read more
sourcefn as_sql<'a, T>(&'a self) -> AsExprOf<&'a Self, T> where
&'a Self: AsExpression<T>,
T: SqlType + TypedExpressionType,
fn as_sql<'a, T>(&'a self) -> AsExprOf<&'a Self, T> where
&'a Self: AsExpression<T>,
T: SqlType + TypedExpressionType,
Convert &self
to an expression for Diesel’s query builder. Read more