class xf::database::gqe::JoinCommand

#include "xf_database/join_command.hpp"

Overview

Class for generating configuration bits of gqeJoin kernel.


Methods

JoinCommand

JoinCommand ()

construct of JoinCommand .

default: join : on join type : INNER_JOIN bypass : off aggr : off dual key : off

Scan

void Scan (
    int table_id,
    std::vector <int8_t> index
    )

scan valid cols.

Parameters:

table_id 0 for left table, 1 for right table
index  
valid input column ids

setBypassOn

void setBypassOn ()

set bypass on.

setAggrOn

void setAggrOn ()

set aggregation on.

not support in current join kernel

setDualKeyOn

void setDualKeyOn ()

set dual key join on.

setJoinType

void setJoinType (int jointype)

set join type.

Parameters:

jointype Join type, default is INNER_JOIN

setWriteCol

void setWriteCol (std::vector <int8_t> index)

set output column ids.

Parameters:

index output column ids

setShuffle0

void setShuffle0 (
    int table_id,
    std::vector <int8_t> index
    )

set shuffle0 column ids.

Parameters:

table_id 0 for left table, 1 for right table
index shuffle0 key list, if filter on, move filter keys to first 4 locations

setShuffle1

void setShuffle1 (
    int table_id,
    std::vector <int8_t> index
    )

set shuffle1 column ids.

Parameters:

table_id 0 for left table, 1 for right table
index shuffle1 key list, if join on, move join key(s) to first 1 (2 when dual key) location(s)

setShuffle2

void setShuffle2 (std::vector <int8_t> index)

set shuffle2 column ids.

Parameters:

index shuffle2 key list, for evaluation 1, move evaluation keys to first 4 locations

setShuffle3

void setShuffle3 (std::vector <int8_t> index)

set shuffle3 column ids.

Parameters:

index shuffle3 key list, for evaluation 2, move evaluation keys to first 4 locations

setShuffle4

void setShuffle4 (std::vector <int8_t> index)

set shuffle4 column ids.

Parameters:

index aggregation key list

setEvaluation

setEvaluation overload (1)

void setEvaluation (
    int eval_id,
    std::string s0,
    std::vector <int32_t> index
    )

set Evaluation string.

Parameters:

eval_id  
most two evaluations
s0  
evaluation string for special strm format
index  
evaluation constants for each strm, default 0

setEvaluation overload (2)

void setEvaluation (
    int eval_id,
    std::string eval_str
    )

set Evaluation string.

Parameters:

eval_id  
most two evaluations
eval_str  
evaluation expression string

setFilter

setFilter overload (1)

void setFilter (
    int table_id,
    std::string filter_string
    )

set Filter string.

The string uses a , b , c , d to refer to first to the fourth column, and supports comparison and logical operator like C++. Parentheses can be used to group logic, but notice that the underlying hardware module does not support comparing one column with multiple constant boundaries in OR relationship. Integral constants will be extracted from expression.

For example, an expression could be (a < 10 && b < 20) || (c >= d) .

Parameters:

table_id  
0 for left table, 1 for right table
filter_string filter expression string

getConfigBits

ap_uint <512>* getConfigBits () const

return config bit array.