Classes | Public Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
ibis::joinIN Class Reference

FastBit In-memory Natual Join. More...

#include <joinin.h>

Inheritance diagram for ibis::joinIN:
ibis::join

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::columncolR_
 
const ibis::columncolS_
 
std::string desc_
 
ibis::bitvector maskR_
 
ibis::bitvector maskS_
 
int64_t nrows
 
array_t< uint32_t > * orderR_
 
array_t< uint32_t > * orderS_
 
const ibis::partR_
 
const ibis::partS_
 
void * valR_
 
void * valS_
 

Friends

class ibis::joinIN::result
 

Additional Inherited Members

- Static Public Member Functions inherited from ibis::join
static joincreate (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 tablefillEquiJoinTable (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 tablefillEquiJoinTable (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)
 

Detailed Description

FastBit In-memory Natual Join.

Member Function Documentation

void ibis::joinIN::estimate ( uint64_t &  nmin,
uint64_t &  nmax 
)
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.

int64_t ibis::joinIN::evaluate ( )
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.

ibis::join::result * ibis::joinIN::select ( const std::vector< const char * > &  colnames)
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.


The documentation for this class was generated from the following files:

Make It A Bit Faster
Contact us
Disclaimers
FastBit source code
FastBit mailing list archive