[Xapian-devel] docid type redifine

Pronichev Alexander dyker at agava.com
Wed Jul 20 09:11:06 BST 2005


Hello all.
I need to redefine a docid type (and all dependent types) like this: typedef unsigned long long docid;
I think it would be enough to edit "include/xapian/types.h", but it isn't so.
1) I've added :

string
om_tostring(unsigned long long val)
{
    CONVERT_TO_STRING("%llu")
}
in common/utils.{h,cc}

2) In include/enquire.h (line 438) I've found the following declaration:
ESetIterator operator[](Xapian::doccount i) const;
but I think it would be 
ESetIterator operator[](Xapian::termcount i) const;
isn't it?

3)
Then I have the following errors while compiling backends:

quartz_postlist.cc: In constructor `
   QuartzPostList::QuartzPostList(Xapian::Internal::RefCntPtr<const 
   Xapian::Database::Internal>, const Btree*, const Btree*, const std::string&)
   ':
quartz_postlist.cc:673: error: cannot convert `doccount*' to `termcount*' for 
   argument `3' to `docid read_start_of_first_chunk(const char**, const char*, 
   termcount*, termcount*)'

so I have a question: what is function static Xapian::docid read_start_of_first_chunk(...) for? (actually I don't understand what is "posting list"). Must the 3rd parameter be Xapian::doccount instead of Xapian::termcount? Or maybe QuartzPostList::number_of_entries class property must be Xapian::termcount instead of Xapian::doccount?

-- 
WBR dyker
Agava Software




More information about the Xapian-devel mailing list