use uqa_sql::catalog::temporary_namespace::TemporaryNamespaceOids;
use uqa_sql::SQLError;
use super::ReservedCatalogIdentityAllocator;
impl ReservedCatalogIdentityAllocator<'_> {
pub fn allocate_temporary_namespace_oids(
&mut self,
mut namespace_in_use: impl FnMut(i64) -> Result<bool, SQLError>,
) -> Result<TemporaryNamespaceOids, SQLError> {
let namespace = self.allocate_namespace_oid(&mut namespace_in_use)?;
let toast_namespace = self.allocate_namespace_oid(|oid| {
Ok(oid == i64::from(namespace) || namespace_in_use(oid)?)
})?;
Ok(TemporaryNamespaceOids {
namespace,
toast_namespace,
})
}
}