Go to the source code of this file.
◆ TestDSMRegistryHashEntry
◆ TestDSMRegistryStruct
◆ get_val_in_hash()
Definition at line 132 of file test_dsm_registry.c.
133{
137
139
141 if (entry == NULL)
143
145
147
149}
#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, |
|
|
void * |
arg |
|
) |
| |
|
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 105 of file test_dsm_registry.c.
106{
110 bool found;
111
114 (
errmsg(
"key too long")));
115
117
119 if (found)
121
124
126
128}
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 59 of file test_dsm_registry.c.
60{
61 bool found;
62
66 &found, (void *) (intptr_t) 5432);
67
70
73}
dsa_area * GetNamedDSA(const char *name, bool *found)
void * GetNamedDSMSegment(const char *name, size_t size, void(*init_callback)(void *ptr, void *arg), bool *found, void *arg)
dshash_table * GetNamedDSHash(const char *name, const dshash_parameters *params, bool *found)
static void init_tdr_dsm(void *ptr, void *arg)
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