Re: Is there anyway to create a TupleDesc with uint32 attribute easily?
От | Heikki Linnakangas |
---|---|
Тема | Re: Is there anyway to create a TupleDesc with uint32 attribute easily? |
Дата | |
Msg-id | 487C9240.5090900@enterprisedb.com обсуждение исходный текст |
Ответ на | Is there anyway to create a TupleDesc with uint32 attribute easily? ("Xiao Meng" <mx.cogito@gmail.com>) |
Ответы |
Re: Is there anyway to create a TupleDesc with uint32 attribute easily?
Re: Is there anyway to create a TupleDesc with uint32 attribute easily? |
Список | pgsql-hackers |
Xiao Meng wrote: > Hi, hackers. > I'm working on my gsoc project - improving hash index. > I need to create a TupldeDesc with uint32 attribute. > Here is the reason why I need it - > If we store hash code only in the tuple, then the TupleDesc's > attribute should be uint32 Something along the lines of: TupleDesc tupdesc = CreateTemplateTupleDesc(1, false); TupleDescInitEntry(tupdesc, 1, "hashcode", INT4OID, -1, 0); > In this way, we can use index_form_tuple() to create a tuple and > needn't write a function for hash specially. I would actually suggest ditching the normal page layout with line pointers and IndexTuples altogether. All the entries are fixed size, so you can get away with a much simpler structure, and store more entries per page. Storing an IndexTuple with one int32 column takes (sizeof(IndexTupleData) + sizeof(uint32) + sizeof(ItemIdData)) = 16 bytes, but you only need a pointer to the heap tuple, and the hash code, which is just 10 bytes in total. Or 12 if you have to align the hash code to 4 byte boundary. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: