~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/opt_range.h

Merged build changes from Antony.

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
#endif
25
25
 
26
26
typedef struct st_key_part {
27
 
  uint16           key,part;
 
27
  uint16_t           key,part;
28
28
  /* See KEY_PART_INFO for meaning of the next two: */
29
 
  uint16           store_length, length;
30
 
  uint8            null_bit;
 
29
  uint16_t           store_length, length;
 
30
  uint8_t            null_bit;
31
31
  /*
32
32
    Keypart flags (0 when this structure is used by partition pruning code
33
33
    for fake partitioning index description)
34
34
  */
35
 
  uint8 flag;
 
35
  uint8_t flag;
36
36
  Field            *field;
37
37
  Field::imagetype image_type;
38
38
} KEY_PART;
41
41
class QUICK_RANGE :public Sql_alloc {
42
42
 public:
43
43
  uchar *min_key,*max_key;
44
 
  uint16 min_length,max_length,flag;
 
44
  uint16_t min_length,max_length,flag;
45
45
  key_part_map min_keypart_map, // bitmap of used keyparts in min_key
46
46
               max_keypart_map; // bitmap of used keyparts in max_key
47
47
#ifdef HAVE_purify
48
 
  uint16 dummy;                                 /* Avoid warnings on 'flag' */
 
48
  uint16_t dummy;                                       /* Avoid warnings on 'flag' */
49
49
#endif
50
50
  QUICK_RANGE();                                /* Full range */
51
51
  QUICK_RANGE(const uchar *min_key_arg, uint min_length_arg,
55
55
              uint flag_arg)
56
56
    : min_key((uchar*) sql_memdup(min_key_arg,min_length_arg+1)),
57
57
      max_key((uchar*) sql_memdup(max_key_arg,max_length_arg+1)),
58
 
      min_length((uint16) min_length_arg),
59
 
      max_length((uint16) max_length_arg),
60
 
      flag((uint16) flag_arg),
 
58
      min_length((uint16_t) min_length_arg),
 
59
      max_length((uint16_t) max_length_arg),
 
60
      flag((uint16_t) flag_arg),
61
61
      min_keypart_map(min_keypart_map_arg),
62
62
      max_keypart_map(max_keypart_map_arg)
63
63
    {
212
212
      0     Ok
213
213
      other Error
214
214
  */
215
 
  virtual int init_ror_merged_scan(bool reuse_handler __attribute__((__unused__)))
 
215
  virtual int init_ror_merged_scan(bool reuse_handler __attribute__((unused)))
216
216
  { assert(0); return 1; }
217
217
 
218
218
  /*
234
234
    This function is implemented only by quick selects that merge other quick
235
235
    selects output and/or can produce output suitable for merging.
236
236
  */
237
 
  virtual void add_info_string(String *str __attribute__((__unused__))) {};
 
237
  virtual void add_info_string(String *str __attribute__((unused))) {};
238
238
  /*
239
239
    Return 1 if any index used by this quick select
240
240
    uses field which is marked in passed bitmap.
335
335
  /* Used only by QUICK_SELECT_DESC */
336
336
  QUICK_RANGE_SELECT(const QUICK_RANGE_SELECT& org) : QUICK_SELECT_I()
337
337
  {
338
 
    bcopy(&org, this, sizeof(*this));
 
338
    memmove(this, &org, sizeof(*this));
339
339
    /* 
340
340
      Use default MRR implementation for reverse scans. No table engine
341
341
      currently can do an MRR scan with output in reverse index order.