FastBit In-memory Natual Join. More...
#include <joinin.h>
Classes | |
class | result |
Public Member Functions | |
virtual void | estimate (uint64_t &nmin, uint64_t &nmax) |
Provide an estimate of the number of results. More... | |
virtual int64_t | evaluate () |
Compute the number of results. More... | |
joinIN (const ibis::part &partr, const ibis::part &parts, const char *colname, const char *condr, const char *conds) | |
virtual ibis::join::result * | select (const std::vector< const char * > &colnames) |
Produce a projection of the joined table. More... | |
Static Protected Member Functions | |
static void | freeBuffer (void *buffer, ibis::TYPE_T type) |
Protected Attributes | |
const ibis::column * | colR_ |
const ibis::column * | colS_ |
std::string | desc_ |
ibis::bitvector | maskR_ |
ibis::bitvector | maskS_ |
int64_t | nrows |
array_t< uint32_t > * | orderR_ |
array_t< uint32_t > * | orderS_ |
const ibis::part & | R_ |
const ibis::part & | S_ |
void * | valR_ |
void * | valS_ |
Friends | |
class | ibis::joinIN::result |
Additional Inherited Members | |
Static Public Member Functions inherited from ibis::join | |
static join * | create (const ibis::part &partr, const ibis::part &parts, const char *colname, const char *condr=0, const char *conds=0) |
The natural join. More... | |
template<typename T > | |
static table * | fillEquiJoinTable (size_t nrows, const std::string &desc, const ibis::array_t< T > &rjcol, const ibis::table::typeArray &rtypes, const std::vector< void * > &rbuff, const ibis::array_t< T > &sjcol, const ibis::table::typeArray &stypes, const std::vector< void * > &sbuff, const ibis::table::stringArray &cnamet, const std::vector< uint32_t > &cnpos) |
static table * | fillEquiJoinTable (size_t nrows, const std::string &desc, const std::vector< std::string > &rjcol, const ibis::table::typeArray &rtypes, const std::vector< void * > &rbuff, const std::vector< std::string > &sjcol, const ibis::table::typeArray &stypes, const std::vector< void * > &sbuff, const ibis::table::stringArray &cnamet, const std::vector< uint32_t > &cnpos) |
FastBit In-memory Natual Join.
|
virtual |
Provide an estimate of the number of results.
It never fails. In the worst case, it will simply set the minimum (nmin) to 0 and the maximum (nmax) to the maximum possible number of results.
Implements ibis::join.
|
virtual |
Compute the number of results.
This function provide the exact answer. If it fails to do so, it will return a negative number to indicate error.
Implements ibis::join.
References ibis::CATEGORY, ibis::DOUBLE, ibis::FLOAT, ibis::INT, ibis::LONG, ibis::SHORT, ibis::util::sortMerge(), ibis::TEXT, ibis::UBYTE, ibis::UINT, ibis::ULONG, and ibis::USHORT.
|
virtual |
Produce a projection of the joined table.
The column names specified should be of the form "part-name.column-name". If a dot ('.') is not present or the string before the dot is not the name of one of the two partitions, the whole string is taken to be a column name. In which case, we first look in partition partr for the named column, then in partition parts. A nil pointer will be returned if some names can not be found in the two partitions.
Implements ibis::join.