Hi, Jong, You can modify the function fb_count_hits in carraysearch.cpp to return this list of positions (row ids). The function fb_count_hits generates an object of class ibis::countQuery to generate the the count. You can ask the same countQuery object to return these row ids by calling ibis::countQuery::getHitRows <http://lbl.gov/~kwu/fastbit/doc/html/classibis_1_1countQuery.html#a8091ce0c46b2a897c3a0c58230149946>.
John On 3/22/13 1:52 PM, Jong Choi wrote: > Hi John, > > It works like a charm :) > > I have another question. I am wondering if there is any good way to > get row number (index or id) as a query result. For example, some DB > returns corresponding row ids (or index) with the following statement: > SELECT rowid, * FROM value1 > > I haven't tried yet but I think I may get such information by creating > a cursor. But, I am wondering if there is a function to do the same > thing. > > Thanks, > Jong > > > > On Fri, Mar 22, 2013 at 12:13 PM, K. John Wu <[email protected]> wrote: >> Hi, Jong, >> >> Please do a 'svn update.' You should be getting SVN revision 617. >> There is a quick fix to the problem with incorrect index size. Let me >> know if it works for you. >> >> Thanks. >> >> John >> >> >> On 3/19/13 1:28 PM, Jong Choi wrote: >>> Hi, >>> >>> I am trying to verify if an index is there before querying but haven't >>> found a good solution yet. So far, I tried to see >>> ibis::column::indexSize() but I got "-1". Is there any good way to >>> check such thing? >>> >>> Just for your reference, here is part of my code: >>> >>> std::auto_ptr<ibis::tablex> ta(ibis::tablex::create()); >>> int buf[] = {10, -21, 32, -43, 54, -65, 76, -87, 98, -127}; >>> >>> ta->addColumn("col1", ibis::INT); >>> ta->append("col1", 0, 10, buf); >>> >>> std::auto_ptr<ibis::table> tb(ta->toTable()); >>> tb->buildIndex("col1"); >>> >>> ibis::constPartList parts; >>> int ierr = tb->getPartitions(parts); >>> assert(ierr > 0); >>> >>> for (ibis::constPartList::const_iterator it = parts.begin(); it != >>> parts.end(); ++it) >>> { >>> ibis::part::info *info = (*it)->getInfo(); >>> std::clog << "name :" << info->name << std::endl; >>> >>> int nColumns = (*it)->nColumns(); >>> for (int i = 0; i < nColumns; i++) >>> { >>> ibis::column * col = (*it)->getColumn(i); >>> std::clog << "size :" << col->indexSize() << std::endl; >>> } >>> } >>> >>> // Query >>> ibis::table* res = tb->select("val", "val > 0"); >>> ... >>> >>> I will appreciate any advice or help. >>> >>> Thanks, >>> >>> Jong >>> _______________________________________________ >>> FastBit-users mailing list >>> [email protected] >>> https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users >>> > > > _______________________________________________ FastBit-users mailing list [email protected] https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users
