00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #pragma once
00021
00022 namespace drizzled
00023 {
00024
00025 class Item;
00026 class Item_bool_func2;
00027
00028 class Comp_creator
00029 {
00030 public:
00031 Comp_creator() {}
00032 virtual ~Comp_creator() {}
00033 virtual Item_bool_func2* create(Item *a, Item *b) const = 0;
00034 virtual const char* symbol(bool invert) const = 0;
00035 virtual bool eqne_op() const = 0;
00036 virtual bool l_op() const = 0;
00037 };
00038
00039 typedef Comp_creator* (*chooser_compare_func_creator)(bool invert);
00040
00041 Comp_creator *comp_eq_creator(bool invert);
00042 Comp_creator *comp_ge_creator(bool invert);
00043 Comp_creator *comp_gt_creator(bool invert);
00044 Comp_creator *comp_le_creator(bool invert);
00045 Comp_creator *comp_lt_creator(bool invert);
00046 Comp_creator *comp_ne_creator(bool invert);
00047
00048 }
00049