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.
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);
A type which uniquely represents Self
in a SQL query. Read more
HAS_STATIC_QUERY_ID: bool = true
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
Fetch the metadata for the given type Read more
Formats the value using the given formatter. Read more
Performs copy-assignment from source
. Read more
Returns the "default value" for a type. Read more