SwatDB
Loading...
Searching...
No Matches
join.h
Go to the documentation of this file.
1/*
2 * SwatDB
3 *
4 * @authors: See Contributors.doc for code contributors
5 *
6 * Copyright (c) 2020 Swarthmore College Computer Science Department
7 * Swarthmore PA, Professors Tia Newhall, Ameet Soni
8 */
9
10#ifndef _SWATDB_JOIN_H_
11#define _SWATDB_JOIN_H_
12
18#include <string>
19#include <vector>
20#include "swatdb_types.h"
21#include "operation.h"
22
23
24class Catalog;
25class Schema;
26class File;
27class RelationFile;
28class HeapFile;
29class HeapFileScanner;
30class Record;
31class Data;
32class Key;
33
34
35// @@@@ SWATDB_ASSIGNMENT: NOTEMSG Do not modify this definition
36
37class Join : public Operation {
38
39 public:
40
54 Join(FileId outer_id, FileId inner_id, FileId result_id,
55 std::vector<FieldId> outer_fields, std::vector<FieldId> inner_fields,
56 Catalog *catalog);
57
62
63
64 protected:
65 /*
66 * FileState struct for the outer relation
67 */
68 fileState outer;
69
70 /*
71 * FileState struct for the inner relation
72 */
73 fileState inner;
74
78 std::vector<FieldId> outer_fields;
79
83 std::vector<FieldId> inner_fields;
84
85};
86
87#endif
Definition catalog.h:161
Definition data.h:26
Definition file.h:45
Definition heapfilescanner.h:39
Definition heapfile.h:76
Definition join.h:37
~Join()
Destructor for the Join Operation.
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.
std::vector< FieldId > inner_fields
Definition join.h:83
std::vector< FieldId > outer_fields
Definition join.h:78
Definition key.h:38
Definition operation.h:74
Definition record.h:34
Definition relationfile.h:32
Definition schema.h:37
Definition operation.h:40
std::uint32_t FileId
Definition swatdb_types.h:33