Re: cleanup patches for dshash - Mailing list pgsql-hackers

From Andy Fan
Subject Re: cleanup patches for dshash
Date
Msg-id 87sf2qw0wf.fsf@163.com
Whole thread Raw
In response to cleanup patches for dshash  (Nathan Bossart <nathandbossart@gmail.com>)
Responses Re: cleanup patches for dshash
List pgsql-hackers
Nathan Bossart <nathandbossart@gmail.com> writes:

> While working on the dynamic shared memory registry, I noticed a couple of
> potential improvements for code that uses dshash tables.
>
> * A couple of dshash_create() callers pass in 0 for the "void *arg"
>   parameter, which seemed weird.  I incorrectly assumed this was some sort
>   of flags parameter until I actually looked at the function signature.
>   IMHO we should specify NULL here if arg is not used.  0001 makes this
>   change.  This is admittedly a nitpick.
>
> * There are no dshash compare/hash functions for string keys.  0002
>   introduces some that simply forward to strcmp()/string_hash(), and it
>   uses them for the DSM registry's dshash table.  This allows us to remove
>   the hacky key padding code for lookups on this table.
>
> Thoughts?

Both LGTM.

+dshash_strcmp(const void *a, const void *b, size_t size, void *arg)
+{
+    Assert(strlen((const char *) a) < size);
+    Assert(strlen((const char *) b) < size);
+

Do you think the below change will be more explicitly?

#define DSMRegistryNameSize 64

DSMRegistryEntry
{
        char name[DSMRegistryNameSize];
        
}

Assert(strlen((const char *) a) < DSMRegistryNameSize);


-- 
Best Regards
Andy Fan




pgsql-hackers by date:

Previous
From: Peter Smith
Date:
Subject: Re: ALTER TABLE SET ACCESS METHOD on partitioned tables
Next
From: Peter Smith
Date:
Subject: Re: Remove unused fields in ReorderBufferTupleBuf