blob: f9e14b9d1a8e43d495733ceda4e578b7ff4ce6bf [file]
/* -------------------------------------------------------------------------
*
* relation_cache.h
*
* Copyright (c) 2020-Present VMware, Inc. or its affiliates
*
* IDENTIFICATION
* diskquota/relation_cache.h
*
* -------------------------------------------------------------------------
*/
#ifndef RELATION_CACHE_H
#define RELATION_CACHE_H
#include "c.h"
#include "utils/hsearch.h"
#include "storage/relfilenode.h"
typedef struct DiskQuotaRelationCacheEntry
{
Oid relid;
Oid primary_table_relid;
Oid auxrel_oid[10];
Oid auxrel_num;
Oid owneroid;
Oid namespaceoid;
char relstorage;
Oid relam;
RelFileNodeBackend rnode;
} DiskQuotaRelationCacheEntry;
typedef struct DiskQuotaRelidCacheEntry
{
Oid relfilenode;
Oid relid;
} DiskQuotaRelidCacheEntry;
extern HTAB *relation_cache;
extern void init_shm_worker_relation_cache(void);
extern Oid get_relid_by_relfilenode(RelFileNode relfilenode);
extern void remove_cache_entry(Oid relid, Oid relfilenode);
extern Oid get_uncommitted_table_relid(Oid relfilenode);
extern void update_relation_cache(Oid relid);
extern Oid get_primary_table_oid(Oid relid, bool on_bgworker);
extern void remove_committed_relation_from_cache(void);
extern Size calculate_table_size(Oid relid);
#endif