Struct JoinSpec

#include <join.h>

JoinSpec is the structure that specifies the relations to join and which is the join attribute.

struct JoinSpec
{
        char relName[MAX_REL_NAME_LENGTH];
        HeapFile *file;
        int numOfAttr;
        int recLen;
        int joinAttr;
        int offset;
};
#define MAX_REL_NAME_LENGTH 6

This structure is not part of Minibase and is designed for the purpose of this assignment only.

relName specifies the name of the relation/HeapFile to be joined. file is a pointer to a HeapFile object with name relName. numOfAttr is the number of attrbutes in the relation and recLen is the size of the record in bytes. joinAttr specifies the column/field to be joinned. Setting joinAttr to 0 means that we will join the first column of this relation with a column from another relation. offset is the offset of the joinAttr from the beginning of the record.

One way to refer to a join attribute's value:

char *rRecPtr;
int *rAdd, r;

    rAdd = (int *)(rRecPtr + specOfR.offset);
    r = *rAdd;
 

Not all of these fields are useful. Some are provided to help you debug.