~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/optimizer/quick_range_select.cc

  • Committer: Brian Aker
  • Date: 2010-04-20 00:51:14 UTC
  • Revision ID: brian@gaz-20100420005114-m9k6g71ag2qq8dhv
Remove dead call around "fixing" case where MRR lacked buffer.

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
#include "drizzled/sql_bitmap.h"
25
25
#include "drizzled/internal/m_string.h"
26
26
#include <fcntl.h>
27
 
#include "drizzled/memory/multi_malloc.h"
28
27
 
29
28
using namespace std;
30
29
 
255
254
 
256
255
int optimizer::QuickRangeSelect::reset()
257
256
{
258
 
  uint32_t buf_size= 0;
259
 
  unsigned char *mrange_buff= NULL;
260
257
  int error= 0;
261
258
  last_range= NULL;
262
259
  cur_range= (optimizer::QuickRange**) ranges.buffer;
266
263
    return error;
267
264
  }
268
265
 
269
 
  /* Allocate buffer if we need one but haven't allocated it yet */
270
 
  if (mrr_buf_size && ! mrr_buf_desc)
271
 
  {
272
 
    buf_size= mrr_buf_size;
273
 
    while (buf_size && ! memory::multi_malloc(false,
274
 
                                              &mrr_buf_desc,
275
 
                                              sizeof(*mrr_buf_desc),
276
 
                                              &mrange_buff,
277
 
                                              buf_size,
278
 
                                              NULL))
279
 
    {
280
 
      /* Try to shrink the buffers until both are 0. */
281
 
      buf_size/= 2;
282
 
    }
283
 
    if (! mrr_buf_desc)
284
 
    {
285
 
      return HA_ERR_OUT_OF_MEM;
286
 
    }
287
 
 
288
 
    /* Initialize the Cursor buffer. */
289
 
    mrr_buf_desc->buffer= mrange_buff;
290
 
    mrr_buf_desc->buffer_end= mrange_buff + buf_size;
291
 
    mrr_buf_desc->end_of_used_area= mrange_buff;
292
 
  }
 
266
  /*
 
267
    (in the past) Allocate buffer if we need one but haven't allocated it yet 
 
268
    There is a later assert in th code that hoped to catch random free() that might
 
269
    have done this.
 
270
  */
 
271
  assert(not (mrr_buf_size && ! mrr_buf_desc));
293
272
 
294
273
  if (sorted)
295
274
  {