pub struct OrderByClause {
pub field: String,
pub direction: OrderDirection,
}Expand description
ORDER BY clause
§Numeric field sorting
When sorting on a JSONB field via relay pagination, the value is
extracted as text using data->>'field'. This means numeric
JSON fields sort lexicographically ("9" > "10"), which is
incorrect for integer and float data.
Workaround: expose integer sort keys as a dedicated typed column in the database view. String and ISO-8601 date/time fields sort correctly without this workaround.
Fields§
§field: StringField to order by (can be dimension, aggregate, or temporal bucket)
direction: OrderDirectionSort direction
Implementations§
Source§impl OrderByClause
impl OrderByClause
Sourcepub fn from_graphql_json(value: &Value) -> Result<Vec<Self>>
pub fn from_graphql_json(value: &Value) -> Result<Vec<Self>>
Parse orderBy from a GraphQL variables JSON value.
Accepts two formats:
- Object:
{ "name": "DESC", "created_at": "ASC" } - Array:
[{ "field": "name", "direction": "DESC" }]
Direction strings are case-insensitive.
§Errors
Returns FraiseQLError::Validation for invalid structure or direction values.
Trait Implementations§
Source§impl Clone for OrderByClause
impl Clone for OrderByClause
Source§fn clone(&self) -> OrderByClause
fn clone(&self) -> OrderByClause
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for OrderByClause
impl Debug for OrderByClause
Source§impl<'de> Deserialize<'de> for OrderByClause
impl<'de> Deserialize<'de> for OrderByClause
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for OrderByClause
impl PartialEq for OrderByClause
Source§impl Serialize for OrderByClause
impl Serialize for OrderByClause
impl Eq for OrderByClause
impl StructuralPartialEq for OrderByClause
Auto Trait Implementations§
impl Freeze for OrderByClause
impl RefUnwindSafe for OrderByClause
impl Send for OrderByClause
impl Sync for OrderByClause
impl Unpin for OrderByClause
impl UnsafeUnpin for OrderByClause
impl UnwindSafe for OrderByClause
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more