~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/item/cmpfunc.h

  • Committer: Monty Taylor
  • Date: 2008-11-16 20:15:33 UTC
  • mto: (584.1.9 devel)
  • mto: This revision was merged to the branch mainline in revision 589.
  • Revision ID: monty@inaugust.com-20081116201533-d0f19s1bk1h95iyw
Removed a big bank of includes from item.h.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
/* compare and test functions */
24
24
 
 
25
#include <drizzled/comp_creator.h>
 
26
#include <drizzled/item/row.h>
 
27
#include <drizzled/item/sum.h>
25
28
 
26
29
extern Item_result item_cmp_type(Item_result a,Item_result b);
27
30
class Item_bool_func2;
28
31
class Arg_comparator;
 
32
class Item_sum_hybrid;
 
33
class Item_row;
29
34
 
30
35
typedef int (Arg_comparator::*arg_cmp_func)();
31
36
 
247
252
  Item *transform(Item_transformer transformer, unsigned char *arg);
248
253
};
249
254
 
250
 
class Comp_creator
251
 
{
252
 
public:
253
 
  Comp_creator() {}                           /* Remove gcc warning */
254
 
  virtual ~Comp_creator() {}                  /* Remove gcc warning */
255
 
  virtual Item_bool_func2* create(Item *a, Item *b) const = 0;
256
 
  virtual const char* symbol(bool invert) const = 0;
257
 
  virtual bool eqne_op() const = 0;
258
 
  virtual bool l_op() const = 0;
259
 
};
260
 
 
261
255
class Eq_creator :public Comp_creator
262
256
{
263
257
public:
267
261
  virtual const char* symbol(bool invert) const { return invert? "<>" : "="; }
268
262
  virtual bool eqne_op() const { return 1; }
269
263
  virtual bool l_op() const { return 0; }
 
264
  static const Eq_creator *instance();
270
265
};
271
266
 
272
267
class Ne_creator :public Comp_creator
278
273
  virtual const char* symbol(bool invert) const { return invert? "=" : "<>"; }
279
274
  virtual bool eqne_op() const { return 1; }
280
275
  virtual bool l_op() const { return 0; }
 
276
  static const Ne_creator *instance();
281
277
};
282
278
 
283
279
class Gt_creator :public Comp_creator
289
285
  virtual const char* symbol(bool invert) const { return invert? "<=" : ">"; }
290
286
  virtual bool eqne_op() const { return 0; }
291
287
  virtual bool l_op() const { return 0; }
 
288
  static const Gt_creator *instance();
292
289
};
293
290
 
294
291
class Lt_creator :public Comp_creator
300
297
  virtual const char* symbol(bool invert) const { return invert? ">=" : "<"; }
301
298
  virtual bool eqne_op() const { return 0; }
302
299
  virtual bool l_op() const { return 1; }
 
300
  static const Lt_creator *instance();
303
301
};
304
302
 
305
303
class Ge_creator :public Comp_creator
311
309
  virtual const char* symbol(bool invert) const { return invert? "<" : ">="; }
312
310
  virtual bool eqne_op() const { return 0; }
313
311
  virtual bool l_op() const { return 0; }
 
312
  static const Ge_creator *instance();
314
313
};
315
314
 
316
315
class Le_creator :public Comp_creator
322
321
  virtual const char* symbol(bool invert) const { return invert? ">" : "<="; }
323
322
  virtual bool eqne_op() const { return 0; }
324
323
  virtual bool l_op() const { return 1; }
 
324
  static const Le_creator *instance();
325
325
};
326
326
 
327
327
class Item_bool_func2 :public Item_int_func