uqa-sql 0.3.5

PostgreSQL-compatible SQL compiler built on libpg_query
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//
// Unified Query Algebra
//
// Copyright (c) 2023-2026 Cognica, Inc.
//

//! Retained read guards for role and membership catalogs during authorization and publication.
use super::{RoleDefinition, RoleMembership, RoleMembershipKey};
use std::{collections::BTreeMap, ops::Deref};
pub type RoleDefinitionRead<'a> = Box<dyn Deref<Target = BTreeMap<String, RoleDefinition>> + 'a>;
pub type RoleMembershipRead<'a> =
    Box<dyn Deref<Target = BTreeMap<RoleMembershipKey, RoleMembership>> + 'a>;
/// Roles and memberships are acquired separately so validation can retain its original error and lock order.
pub trait RoleCatalogGuards {
    fn role_definitions(&self) -> RoleDefinitionRead<'_>;
    fn role_memberships(&self) -> RoleMembershipRead<'_>;
}