Skip to main content

DynamicQuery

Struct DynamicQuery 

Source
pub struct DynamicQuery { /* private fields */ }
Expand description

DynamicQuery

Entity-name-driven structural read request. The session resolves fields, ordering, indexes, and projection against the accepted schema; no generated entity descriptor participates. Preparation admits at most 128 input levels, 4,096 input nodes and 2 MiB of variable payload across the request, before cloning or lowering it. These limits also apply to trusted reads. Construction and explicit cloning of caller-owned input are not admission operations.

Implementations§

Source§

impl DynamicQuery

Source

pub fn new(entity: impl Into<String>) -> DynamicQuery

Start one dynamic read for an accepted entity name.

Source

pub fn filter(self, filter: impl Into<FilterExpr>) -> DynamicQuery

Add one filter expression, joined with prior filters by AND.

Source

pub fn order_by(self, order: OrderTerm) -> DynamicQuery

Append one deterministic ordering term.

Source

pub fn select<I, S>(self, fields: I) -> DynamicQuery
where I: IntoIterator<Item = S>, S: Into<String>,

Select explicit fields in scalar output order.

Grouped execution rejects an explicit scalar selection because group keys and aggregates define its output contract.

Source

pub const fn limit(self, limit: u32) -> DynamicQuery

Bound scalar traversal totals or the number of groups in one grouped page.

Scalar resumed pages subtract previously emitted rows from this limit; reaching it ends traversal even when more matching rows exist. The public read envelope independently bounds each scalar page. Grouped continuation reapplies this limit on each page, so following its cursor can return more groups in total than the limit.

Source

pub fn group_by(self, field: impl Into<String>) -> DynamicQuery

Append one accepted field to the grouped key in declaration order.

Source

pub fn aggregate(self, aggregate: AggregateExpr) -> DynamicQuery

Append one grouped aggregate in declaration order.

Source

pub const fn grouped_limits( self, max_groups: u32, max_group_bytes: u32, ) -> DynamicQuery

Set explicit hard limits for grouped execution.

Ordinary public reads additionally enforce their built-in admission ceilings. Zero values are rejected before execution.

Source

pub fn cursor(self, cursor: impl Into<String>) -> DynamicQuery

Continue a grouped page from one opaque cursor returned by IcyDB.

Trait Implementations§

Source§

impl Clone for DynamicQuery

Source§

fn clone(&self) -> DynamicQuery

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DynamicQuery

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Drop for DynamicQuery

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V