Go to the documentation of this file.00001
00002
00003
00004 #ifndef IBIS_QUAERE_H
00005 #define IBIS_QUAERE_H
00006
00013 #include "part.h"
00014
00015 namespace ibis {
00016 class quaere;
00017 }
00018
00035 class FASTBIT_CXX_DLLSPEC ibis::quaere {
00036 public:
00037 static quaere* create(const char* sel, const char* from, const char* where);
00038 static quaere* create(const char* sel, const char* from, const char* where,
00039 const ibis::partList& prts);
00040 static quaere* create(const ibis::part* partr, const ibis::part* parts,
00041 const char* colname, const char* condr = 0,
00042 const char* conds = 0, const char* sel = 0);
00043
00047 virtual void roughCount(uint64_t& nmin, uint64_t& nmax) const = 0;
00051 virtual int64_t count() const = 0;
00052
00061 virtual table* select() const = 0;
00065 virtual table* select(const char*) const = 0;
00072 virtual ibis::table*
00073 select(const ibis::table::stringList& colnames) const = 0;
00074
00075 virtual ~quaere() {};
00076
00077 protected:
00078 quaere() {}
00079
00080 private:
00081 quaere(const quaere&);
00082 quaere& operator=(const quaere&);
00083 };
00084
00085 namespace ibis {
00086 ibis::part* findDataset(const char*);
00087 ibis::part* findDataset(const char*, const ibis::partList&);
00088 }
00089 #endif