13 static constexpr ::SysCacheIdentifier cache_id = TYPEOID;
17 static constexpr ::SysCacheIdentifier cache_id = PROCOID;
23 { syscache_traits<T>::cache_id } -> std::same_as<const ::SysCacheIdentifier &>;
28 syscache(::SysCacheIdentifier cache_id,
const D &...key)
29 requires(
sizeof...(key) > 0 &&
sizeof...(key) < 5)
32 tuple = ffi_guarded(::SearchSysCache)(cache_id, keys[0], keys[1], keys[2], keys[3]);
34 if (!HeapTupleIsValid(tuple)) {
35 throw std::runtime_error(
"invalid tuple");
41 decltype(*std::declval<T>()) &
operator*() {
return *
reinterpret_cast<T
>(GETSTRUCT(tuple)); }
42 const decltype(*std::declval<T>()) &
operator*()
const {
43 return *
reinterpret_cast<T
>(GETSTRUCT(tuple));
Definition: datum.hpp:104
Definition: syscache.hpp:21
static datum into_datum(const T &d)=delete
Convert datum into a type.
Definition: syscache.hpp:9
Definition: syscache.hpp:26