-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathspj.h
More file actions
50 lines (43 loc) · 1.35 KB
/
spj.h
File metadata and controls
50 lines (43 loc) · 1.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#ifndef SPJ_H_INCLUDED
#define SPJ_H_INCLUDED
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "sqlexe.h"
#include "pool.h"
class Joiner
{
private:
char leftFields[150], rightFields[150];
BufferedTable *leftTable;
BufferedTable *rightTable;
CondListItem *condition;
public:
TableInfo leftInfo;
TableInfo rightInfo;
TableFieldName *Init(FromListItem *fromList, uint fromListLen, CondListItem *cond);
ValueListItem *GetNext(ValueListItem *valueList);
};
class Selector
{
private:
TableFieldName *tfList;
CondListItem *condList;
public:
void Init(TableFieldName *tfList, CondListItem *condList);
bool Select(ValueListItem *valueList);
};
class Projector
{
private:
TableFieldName *tfListDis;
TableFieldName *tfListRes;
public:
void Init(SelectListItem *selectList, TableFieldName *tfList);
ValueListItem *Project(ValueListItem *valueList);
};
void OutputFields(TableInfo *info, char *fields, FILE *out);
void OutputSomeFields(TableInfo *info, TableFieldName* tfList, int tfListLen, char *fields, FILE *out);
void Output2Fields(TableInfo *leftInfo, TableInfo *rightInfo, ValueListItem *valueList, FILE *out, bool skip=false);
void OutputSome2Fields(TableInfo *leftInfo, TableInfo *rightInfo, TableFieldName* tfList, int tfListLen, ValueListItem *valueList, FILE *out);
#endif // SPJ_H_INCLUDED