1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! The catalog-scope selector for a query session.
//!
//! Mint a session, then filter server-side: catalog scoping (not row
//! rewriting) registers only the `CatalogProvider`/`SchemaProvider` covering
//! the partitions a session's participation set already authorizes.
//! [`QueryScope`] is that
//! selector — the value a caller passes to
//! [`crate::engine::QueryEngine::build`] to say which partitions a session's
//! catalog may register; building and holding the `SessionContext` itself is
//! [`QueryEngine`](crate::engine::QueryEngine)'s job, not this module's.
/// Which partitions a query session's catalog may register.
///
/// Sealed: [`crate::authority::QueryAuthority::scope_for`]
/// is the only place a [`QueryScope`] value is derived, from an already-verified
/// [`crate::authority::Principal`] — never a caller-supplied value from outside
/// this crate.
/// `Debug` reports the shape and the conversation count. A conversation id
/// names a real person's conversation, so the ids never reach a log line
/// through this type.
pub