Hi, Steven, Yes, you can simple give query::setRIDs something of your own. FastBit query evaluation procedure will attempt to match them up.
Looks like your data does not have explicit RIDs, therefore, the RIDs are simply values going from 0, 1, 2... The value starts from 0 for each data partition, so they are not unique across data partitions. -- John Wu On Aug 28, 2013, at 11:37 AM, "Enns, Steven" <[email protected]> wrote: > Thanks John, > > I've implemented row sampling after calling query::getQualifiedLongs() > instead of using RIDs. However, I noticed that > ibis::part::getRIDs().size() == 0, and that in ibis::part() there is a > check for readonly == false and a config key called <table name>.fillRIDs > before the rids are filled. I figured one of these conditions were not > met. But are you suggesting to simply call ibis::query::setRIDs() on a > vector of RIDs of my own choosing, without calling ibis::part::getRIDs(), > and assuming they are numbered 0..nRows()-1? > > On 8/28/13 10:53 AM, "K. John Wu" <[email protected]> wrote: > >> Hi, Steven, >> >> The function ibis::part::hasRIDs is badly named. It is meant to >> determine if there is an explicit RID column for the data partition. >> It is absolutely fine for a data partition to not have an explicit RID >> column, the implicit values of [0, 1, 2, ...] will be used. This is >> what happens when you ask for RIDs through getRIDs. The same >> assumption is also used in answering queries. So if you simply ignore >> what ibis::part::hadRIDs return to you and go ahead ask the query >> object to evaluate itself, you should get the right answers. >> >> Let us know if the answers are not what you've expected. >> >> Good luck. >> >> John >> >> PS: I am changing hasRIDs to explicitRIDs. It appears to be one of >> those functions not actually used in FastBit itself.. >> >> >> On 8/21/13 2:26 PM, Enns, Steven wrote: >>> Hi John, >>> >>> I'm looking to sample rows in ibis::part. The best way that I can >>> think to do so is to call ibis::part::getRIDs(), sample the RIDs, then >>> call ibis::query::setRIDs() to filter the rows. >>> >>> The problem is that ibis::part::hasRIDs() is false, despite readOnly >>> being false and <tableName>.fillRIDs=T in my ~/.ibisrc file. >>> >>> Is there some way to write the rids when creating the table? >>> >>> Thanks, >>> Steve >>> >>> >>> _______________________________________________ >>> 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
