My Project
Public Member Functions | Static Public Attributes
ndb_pushed_join Class Reference

#include <ha_ndbcluster_push.h>

List of all members.

Public Member Functions

 ndb_pushed_join (const ndb_pushed_builder_ctx &builder_ctx, const NdbQueryDef *query_def)
bool match_definition (int type, const NDB_INDEX_DATA *idx, bool needSorted) const
NdbQuery * make_query_instance (NdbTransaction *trans, const NdbQueryParamValue *keyFieldParams, uint paramCnt) const
uint get_operation_count () const
uint get_field_referrences_count () const
const NdbQueryDef & get_query_def () const
TABLEget_table (uint i) const

Static Public Attributes

static const uint MAX_KEY_PART = MAX_KEY
static const uint MAX_REFERRED_FIELDS = 16
static const uint MAX_LINKED_KEYS = MAX_KEY
static const uint MAX_PUSHED_OPERATIONS = MAX_TABLES

Detailed Description

This class represents a prepared pushed (N-way) join operation.

It might be instantiated multiple times whenever the query, or this subpart of the query, is being (re-)executed by ::createQuery() or it's wrapper method ha_ndbcluster::create_pushed_join().


Member Function Documentation

In a pushed join, fields in lookup keys and scan bounds may refer to result fields of table access operation that execute prior to the pushed join. This method returns the number of such references.

uint ndb_pushed_join::get_operation_count ( ) const [inline]

Get the number of pushed table access operations.

TABLE* ndb_pushed_join::get_table ( uint  i) const [inline]

Get the table that is accessed by the i'th table access operation.

NdbQuery* ndb_pushed_join::make_query_instance ( NdbTransaction *  trans,
const NdbQueryParamValue *  keyFieldParams,
uint  paramCnt 
) const

Create an executable instance of this defined query.

bool ndb_pushed_join::match_definition ( int  type,
const NDB_INDEX_DATA idx,
bool  needSorted 
) const

Check that this prepared pushed query matches the type of operation specified by the arguments.


Member Data Documentation

const uint ndb_pushed_join::MAX_KEY_PART = MAX_KEY [static]

This is the maximal number of fields in the key of any pushed table access operation.

const uint ndb_pushed_join::MAX_LINKED_KEYS = MAX_KEY [static]

For each table access operation in a pushed join, this is the maximal number of key fields that may refer to the fields of the parent operation.

This is the maximal number of table access operations there can be in a single pushed join.

const uint ndb_pushed_join::MAX_REFERRED_FIELDS = 16 [static]

In a pushed join, fields in lookup keys and scan bounds may refer to result fields of table access operation that execute prior to the pushed join. This constant specifies the maximal number of such references for a query.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines