Re: cleanup patches for dshash
От | Andy Fan |
---|---|
Тема | Re: cleanup patches for dshash |
Дата | |
Msg-id | 87sf2qw0wf.fsf@163.com обсуждение исходный текст |
Ответ на | cleanup patches for dshash (Nathan Bossart <nathandbossart@gmail.com>) |
Ответы |
Re: cleanup patches for dshash
|
Список | 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 по дате отправления: