Go to the source code of this file.
◆ TestDSMRegistryHashEntry
◆ TestDSMRegistryStruct
◆ get_val_in_hash()
Definition at line 129 of file test_dsm_registry.c.
130{
134
136
138 if (entry == NULL)
140
142
144
146}
#define TextDatumGetCString(d)
void * dsa_get_address(dsa_area *area, dsa_pointer dp)
void dshash_release_lock(dshash_table *hash_table, void *entry)
void * dshash_find(dshash_table *hash_table, const void *key, bool exclusive)
#define PG_GETARG_DATUM(n)
#define PG_RETURN_TEXT_P(x)
static dshash_table * tdr_hash
static void tdr_attach_shmem(void)
static dsa_area * tdr_dsa
text * cstring_to_text(const char *s)
References cstring_to_text(), dsa_get_address(), dshash_find(), dshash_release_lock(), sort-test::key, PG_GETARG_DATUM, PG_RETURN_NULL, PG_RETURN_TEXT_P, tdr_attach_shmem(), tdr_dsa, tdr_hash, TextDatumGetCString, val, and TestDSMRegistryHashEntry::val.
◆ get_val_in_shmem()
◆ init_tdr_dsm()
| static void init_tdr_dsm |
( |
void * |
ptr | ) |
|
|
static |
◆ PG_FUNCTION_INFO_V1() [1/4]
◆ PG_FUNCTION_INFO_V1() [2/4]
◆ PG_FUNCTION_INFO_V1() [3/4]
◆ PG_FUNCTION_INFO_V1() [4/4]
◆ set_val_in_hash()
Definition at line 102 of file test_dsm_registry.c.
103{
107 bool found;
108
111 (
errmsg(
"key too long")));
112
114
116 if (found)
118
121
123
125}
void dsa_free(dsa_area *area, dsa_pointer dp)
#define dsa_allocate(area, size)
void * dshash_find_or_insert(dshash_table *hash_table, const void *key, bool *found)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
References dsa_allocate, dsa_free(), dsa_get_address(), dshash_find_or_insert(), dshash_release_lock(), ereport, errmsg(), ERROR, sort-test::key, PG_GETARG_DATUM, PG_RETURN_VOID, tdr_attach_shmem(), tdr_dsa, tdr_hash, TextDatumGetCString, val, and TestDSMRegistryHashEntry::val.
◆ set_val_in_shmem()
◆ tdr_attach_shmem()
| static void tdr_attach_shmem |
( |
void |
| ) |
|
|
static |
Definition at line 56 of file test_dsm_registry.c.
57{
58 bool found;
59
63 &found);
64
67
70}
dsa_area * GetNamedDSA(const char *name, bool *found)
dshash_table * GetNamedDSHash(const char *name, const dshash_parameters *params, bool *found)
void * GetNamedDSMSegment(const char *name, size_t size, void(*init_callback)(void *ptr), bool *found)
static void init_tdr_dsm(void *ptr)
static const dshash_parameters dsh_params
References dsh_params, GetNamedDSA(), GetNamedDSHash(), GetNamedDSMSegment(), init_tdr_dsm(), tdr_dsa, tdr_dsm, and tdr_hash.
Referenced by get_val_in_hash(), get_val_in_shmem(), set_val_in_hash(), and set_val_in_shmem().
◆ dsh_params
Initial value:= {
}
void dshash_strcpy(void *dest, const void *src, size_t size, void *arg)
dshash_hash dshash_strhash(const void *v, size_t size, void *arg)
int dshash_strcmp(const void *a, const void *b, size_t size, void *arg)
struct TestDSMRegistryHashEntry TestDSMRegistryHashEntry
Definition at line 38 of file test_dsm_registry.c.
Referenced by tdr_attach_shmem().
◆ PG_MODULE_MAGIC
◆ tdr_dsa
◆ tdr_dsm
◆ tdr_hash