pub struct Executed {
pub rows: Vec<Value>,
pub project: Vec<Col>,
pub has_rows: bool,
pub tag: String,
pub tag_counts_rows: bool,
}Expand description
One executed statement, held apart from any wire encoding.
This type is why the simple and extended protocols share an execution path
rather than growing two copies of the SQL→NEDB semantics. The simple path
encodes it immediately; the extended path parks it in a portal and dribbles
the rows out across successive Execute messages. Both get identical
answers because both call execute_stmt.
Fields§
§rows: Vec<Value>The rows the client gets — a SELECT’s result, or a write’s RETURNING.
project: Vec<Col>How to project them (empty = every key in the row).
has_rows: boolWhether the client asked for rows at all. Distinct from rows.is_empty():
a SELECT matching nothing still owes a RowDescription, while an
UPDATE without RETURNING owes NoData.
tag: StringThe command tag, already rendered — except for a SELECT, where the row count is only known once the rows have actually been sent.
tag_counts_rows: boolTrue when tag is a SELECT-shaped tag whose count is the rows sent.
Auto Trait Implementations§
impl Freeze for Executed
impl RefUnwindSafe for Executed
impl Send for Executed
impl Sync for Executed
impl Unpin for Executed
impl UnsafeUnpin for Executed
impl UnwindSafe for Executed
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
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> ⓘ
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> ⓘ
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