BadgerDB
|
00001 00008 #pragma once 00009 00010 #include "catalog.h" 00011 00012 namespace badgerdb 00013 { 00014 00018 class Operators 00019 { 00020 00021 public: 00028 static void Select(const std::string & result, // name of the output relation 00029 int projCnt, // number of attributes in the projection 00030 const attrInfo projNames[], // the list of projection attributes 00031 const attrInfo *attr, // attribute used inthe selection predicate 00032 Operator op, // predicate operation 00033 const void *attrValue); // literal value in the predicate 00034 00040 static void Join(const std::string & result, // name of the output relation 00041 int projCnt, // number of attributes in the projection 00042 const attrInfo projNames[], // the list of projection attributes 00043 const attrInfo *attr1, // left attr in the join predicate 00044 Operator op, // the predicate operation 00045 const attrInfo *attr2); // right attr in the join predicate 00046 00047 static void IndexSelect(const std::string & result, // name of the output relation 00048 int projCnt, // number of attributes in the projection 00049 const attrInfo projNames[], // the list of projection attributes 00050 const attrInfo *attr, // attribute used inthe selection predicate 00051 Operator op, // predicate operation 00052 const void *attrValue); // literal value in the predicate 00053 00054 static void ScanSelect(const std::string & result, // name of the output relation 00055 int projCnt, // number of attributes in the projection 00056 const attrInfo projNames[], // the list of projection attributes 00057 const attrInfo *attr, // attribute used inthe selection predicate 00058 Operator op, // predicate operation 00059 const void *attrValue); // literal value in the predicate 00060 00061 }; 00062 00063 00064 00065 00066 00067 }