Classes | Public Member Functions | Static Protected Member Functions | Protected Attributes | Friends
ibis::joinIN Class Reference

FastBit In-memory Natual Join. More...

#include <joinin.h>

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

List of all members.

Classes

class  result

Public Member Functions

virtual void estimate (uint64_t &nmin, uint64_t &nmax)
 Provide an estimate of the number of results.
virtual int64_t evaluate ()
 Compute the number of results.
 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.

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

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::BYTE, ibis::CATEGORY, ibis::DOUBLE, ibis::FLOAT, ibis::gVerbose, 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