pub struct PostgresAdapter { /* private fields */ }Expand description
A PostgreSQL database, materialized as an arbor.
Implementations§
Source§impl PostgresAdapter
impl PostgresAdapter
Sourcepub fn connect(config: &str) -> Result<Self, PostgresError>
pub fn connect(config: &str) -> Result<Self, PostgresError>
Connect and materialize the public schema. config is a
tokio-postgres connection string — URL form
(postgres://user@host:port/db) or keyword form
(host=/run/postgresql user=me dbname=db).
Sourcepub fn connect_filtered(
config: &str,
table: &str,
where_sql: &str,
) -> Result<Self, PostgresError>
pub fn connect_filtered( config: &str, table: &str, where_sql: &str, ) -> Result<Self, PostgresError>
[connect], with one table’s fetch filtered by a WHERE
clause (partial pushdown; the engine re-applies the
predicates).
Trait Implementations§
Source§impl AstAdapter for PostgresAdapter
impl AstAdapter for PostgresAdapter
Source§fn children(&self, node: NodeId) -> Vec<NodeId>
fn children(&self, node: NodeId) -> Vec<NodeId>
The tree children of
node, in document order. Read moreSource§fn name(&self, node: NodeId) -> Option<String>
fn name(&self, node: NodeId) -> Option<String>
The name of
node — the label of its incoming tree edge. Read moreSource§fn property(&self, node: NodeId, name: &str) -> Option<Value>
fn property(&self, node: NodeId, name: &str) -> Option<Value>
A named property of
node — ::prop. None if absent.Source§fn default_value(&self, node: NodeId) -> Option<Value>
fn default_value(&self, node: NodeId) -> Option<Value>
The default projection of
node — bare ::, adapter-specific
(a filesystem adapter returns file content).Source§fn metadata(&self, node: NodeId, key: &str) -> Option<Value>
fn metadata(&self, node: NodeId, key: &str) -> Option<Value>
Adapter-defined metadata —
;;;key (a filesystem adapter’s
size, modified, permissions, …). None if absent.Source§fn resolve(
&self,
node: NodeId,
property: &str,
hint: Option<&str>,
) -> Option<NodeId>
fn resolve( &self, node: NodeId, property: &str, hint: Option<&str>, ) -> Option<NodeId>
Resolve a cross-reference:
::property~>hint maps node’s
property (a value that references another node) to its target,
with an optional adapter-specific relation hint. A JSON
adapter resolves a $ref JSON Pointer; None if unresolvable.Source§fn links(&self, node: NodeId) -> Vec<(String, NodeId)>
fn links(&self, node: NodeId) -> Vec<(String, NodeId)>
Outgoing crosslinks from
node, as (label, target) pairs,
for -> navigation (a filesystem adapter’s symlinks).Source§fn backlinks(&self, node: NodeId) -> Vec<(String, NodeId)>
fn backlinks(&self, node: NodeId) -> Vec<(String, NodeId)>
Incoming crosslinks to
node, as (label, source) pairs, for
<- navigation. May be expensive (an adapter that does not
precompute edges must search for referrers).Source§fn traits(&self, _node: NodeId) -> Vec<String>
fn traits(&self, _node: NodeId) -> Vec<String>
The traits of
node — its adapter-defined classifications,
used by <trait> navigation filters (e.g. a filesystem
adapter’s <dir>, <code>, <image>).Source§fn children_named(&self, node: NodeId, name: &str) -> Vec<NodeId>
fn children_named(&self, node: NodeId, name: &str) -> Vec<NodeId>
The children of
node whose edge name is exactly name —
the engine’s fast path for name-matcher child hops. The
default filters children; an adapter
whose containers cannot be enumerated (permission-scoped or
unbounded remote trees) overrides this with a direct,
name-addressed lookup. Must be observationally identical to
the default wherever enumeration works. The adapter owns the
name test: it may deliberately alias — resolve a name to a
node whose edge name differs (git revision syntax landing on
a hash-named commit) — and the engine will not re-filter.Source§fn link_property(
&self,
_source: NodeId,
_label: &str,
_target: NodeId,
_name: &str,
) -> Option<Value>
fn link_property( &self, _source: NodeId, _label: &str, _target: NodeId, _name: &str, ) -> Option<Value>
A property of the crosslink
source --label--> target — the
$-::prop read. Adapters whose edges carry data (a property
graph’s relationship properties) override this; None if the
edge is bare or unknown. Where parallel edges share source,
label, and target, the adapter answers for one of them,
consistently.Source§fn quantifier_bound(&self) -> usize
fn quantifier_bound(&self) -> usize
The quantifier bound N_max: the depth to which open-ended path
quantifiers (
+, *, {m,}) expand, and the ceiling of any
explicit {m,n} (the effective upper bound is min(n, N_max)).
An adapter whose natural structures run deep may raise it; the
CLI overrides it per run (qua --quantifier-bound).Source§fn allow_shell(&self) -> bool
fn allow_shell(&self) -> bool
Whether the
sh(...) pipeline stage may run external
commands. False by default — query text stays inert data —
and enabled per run by the CLI (qua --allow-shell) through
the AllowShell wrapper.Source§fn invocation_instant(&self) -> Option<(i64, u32)>
fn invocation_instant(&self) -> Option<(i64, u32)>
The invocation instant
now() denotes (spec: The Temporal
Fragment, Determinism): one UTC timeline point bound by the
runner BEFORE evaluation begins — evaluation itself never
reads a clock. None by default (a library run is fully
deterministic; now() reads as null); the CLI binds it at
startup — pinnable with qua --now — through the
WithNow wrapper.Source§fn unit_scale(&self, expr: &str) -> Option<(f64, String)>
fn unit_scale(&self, expr: &str) -> Option<(f64, String)>
The scale of a unit expression — (factor, canonical SI-base
expansion) — for the unital reading’s criterion text (spec:
The Quantital Fragment). The default answers from the
engine’s frozen built-in table; a unit-aware adapter (kaiv)
overrides it to include the mounted document’s own custom
units, so
[::range < '50kellicam'] resolves through the
document’s .!units imports.Auto Trait Implementations§
impl !RefUnwindSafe for PostgresAdapter
impl !Send for PostgresAdapter
impl !Sync for PostgresAdapter
impl !UnwindSafe for PostgresAdapter
impl Freeze for PostgresAdapter
impl Unpin for PostgresAdapter
impl UnsafeUnpin for PostgresAdapter
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