SwatDB
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
BlockNLJ Class Reference

#include <blockNLJ.h>

Inheritance diagram for BlockNLJ:
Inheritance graph
[legend]
Collaboration diagram for BlockNLJ:
Collaboration graph
[legend]

Public Member Functions

 BlockNLJ (FileId outer_id, FileId inner_id, FileId result_id, std::vector< FieldId > outer_fields, std::vector< FieldId > inner_fields, std::uint32_t block_size, Catalog *catalog)
 Performs join operation using the block nested loop join algorithm.
 
 ~BlockNLJ ()
 Destructor for TupleNLJ. Deletes dynamic member variables.

 
void runOperation ()
 Runs the operation.

 
- Public Member Functions inherited from Join
 Join (FileId outer_id, FileId inner_id, FileId result_id, std::vector< FieldId > outer_fields, std::vector< FieldId > inner_fields, Catalog *catalog)
 Constructor for Join operation. Join subclasses use this constructor.
 
 ~Join ()
 Destructor for the Join Operation.
 
- Public Member Functions inherited from Operation
 Operation (FileId result_id, Catalog *catalog)
 Constructor for the Operation class. Because Operation is an abstract class, an object cannot be created, but this constructor is used by derived classes.
 
virtual ~Operation ()
 Destructor for the Operation class. Cleans up dynamic memory in result state.
 

Protected Attributes

std::uint32_t block_size
 
- Protected Attributes inherited from Join
fileState outer
 
fileState inner
 
std::vector< FieldIdouter_fields
 
std::vector< FieldIdinner_fields
 
- Protected Attributes inherited from Operation
fileState result_state
 
Catalogcatalog
 

Additional Inherited Members

- Protected Member Functions inherited from Operation
void _initState (FileId file_id, std::vector< FieldId > fields, fileState *state)
 Performs the file and temporary record setup for relational operators.
 
void _delState (fileState *file_state)
 Deletes objects created in relop structs.
 

Detailed Description

BlockNLJ implements the block nested loop join functionality.

Constructor & Destructor Documentation

◆ BlockNLJ()

BlockNLJ::BlockNLJ ( FileId  outer_id,
FileId  inner_id,
FileId  result_id,
std::vector< FieldId outer_fields,
std::vector< FieldId inner_fields,
std::uint32_t  block_size,
Catalog catalog 
)

Performs join operation using the block nested loop join algorithm.

Precondition
Input result file is empty. The types of the fields being joined on
have the same type. The parameters are valid.
Postcondition
The result file is filled with the records that match the condition of the select.
Parameters
outer_id.FileId of the outer relation file.
inner_id.FileId of the inner relation file.
result_fileFile * pointing to an empty file which will be
filled with the tuples that satisfy the comparision
outer_fields.vector of FieldIds corresponding to the join fields in outer_rel
inner_fields.vector of FieldIds corresponding to the join fields in inner_rel
block_size.std::uint32_t size of block.

Member Function Documentation

◆ runOperation()

void BlockNLJ::runOperation ( )
virtual

Runs the operation.

Precondition
Valid files and parameters have been passed to the contructor.
Postcondition
Result file has been populated with records that meet the criteria of the operation.

Implements Operation.


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