~drizzle-trunk/libdrizzle/jenkins-Libdrizzle-93

« back to all changes in this revision

Viewing changes to libdrizzle/field.cc

  • Committer: Continuous Integration
  • Date: 2013-04-22 19:15:52 UTC
  • mfrom: (111.1.2 5.1-fix-null-bitmap)
  • Revision ID: ci@drizzle.org-20130422191552-lrviirpzenruqaxy
Merge lp:~linuxjedi/libdrizzle/5.1-fix-null-bitmap Build: jenkins-Libdrizzle-85

Show diffs side-by-side

added added

removed removed

Lines of Context:
66
66
 
67
67
  if (result->has_state())
68
68
  {
69
 
    if (result->field_current == result->column_count)
 
69
    if (result->field_current == (result->column_count - result->null_bitcount))
70
70
    {
71
71
      *ret_ptr= DRIZZLE_RETURN_ROW_END;
72
72
      return NULL;
324
324
 
325
325
drizzle_return_t drizzle_state_binary_null_read(drizzle_st *con)
326
326
{
 
327
  uint16_t bit_count= 0;
327
328
  con->result->null_bitmap_length= (con->result->column_count+7+2)/8;
328
329
  con->result->null_bitmap= new uint8_t[con->result->null_bitmap_length];
329
330
  con->buffer_ptr++;
330
331
 
331
332
  memcpy(con->result->null_bitmap, con->buffer_ptr, con->result->null_bitmap_length);
 
333
 
 
334
  for (uint16_t it= 0; it < con->result->null_bitmap_length; it++)
 
335
  {
 
336
    uint8_t data= con->result->null_bitmap[it];
 
337
    while (data)
 
338
    {
 
339
      data &= (data - 1);
 
340
      bit_count++;
 
341
    }
 
342
  }
 
343
  con->result->null_bitcount = bit_count;
332
344
  con->buffer_ptr+= con->result->null_bitmap_length;
333
345
  con->buffer_size-= con->result->null_bitmap_length+1;
334
346
  con->packet_size-= con->result->null_bitmap_length+1;