~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/opt_range.h

  • Committer: Brian Aker
  • Date: 2009-03-22 21:27:04 UTC
  • mfrom: (960.2.22 mordred)
  • Revision ID: brian@tangent.org-20090322212704-ysn4mkkjg2u9kv22
Merge Monty

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
#define DRIZZLED_OPT_RANGE_H
25
25
 
26
26
#include <drizzled/field.h>
27
 
#include <mysys/queues.h>
28
27
#include <drizzled/item/sum.h>
 
28
#include <queue>
29
29
 
30
30
class JOIN;
31
31
typedef class Item COND;
532
532
 
533
533
 
534
534
/*
 
535
 * This function object is defined in drizzled/opt_range.cc
 
536
 * We need this here for the priority_queue definition in the
 
537
 * QUICK_ROR_UNION_SELECT class.
 
538
 */
 
539
class compare_functor;
 
540
 
 
541
 
 
542
/*
535
543
  Rowid-Ordered Retrieval index union select.
536
544
  This quick select produces union of row sequences returned by several
537
545
  quick select it "merges".
564
572
 
565
573
  List<QUICK_SELECT_I> quick_selects; /* Merged quick selects */
566
574
 
567
 
  QUEUE queue;    /* Priority queue for merge operation */
 
575
  /* Priority queue for merge operation */
 
576
  std::priority_queue<QUICK_SELECT_I *, std::vector<QUICK_SELECT_I *>, compare_functor >
 
577
    *queue;
568
578
  MEM_ROOT alloc; /* Memory pool for this and merged quick selects data. */
569
579
 
570
580
  Session *session;             /* current thread */
576
586
  bool scans_inited;
577
587
};
578
588
 
579
 
extern "C"
580
 
int quick_ror_union_select_queue_cmp(void *arg, unsigned char *val1,
581
 
                                     unsigned char *val2);
582
 
 
583
589
/*
584
590
  Index scan for GROUP-BY queries with MIN/MAX aggregate functions.
585
591