~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_select.cc

merge warn_unused_result tree to see if it fixes some of teh problems we're having with errors.

Show diffs side-by-side

added added

removed removed

Lines of Context:
3053
3053
    table->emptyRecord();
3054
3054
    if (table->group && join->tmp_table_param.sum_func_count &&
3055
3055
        table->getShare()->sizeKeys() && !table->cursor->inited)
3056
 
      table->cursor->startIndexScan(0, 0);
 
3056
    {
 
3057
      int tmp_error;
 
3058
      tmp_error= table->cursor->startIndexScan(0, 0);
 
3059
      if (tmp_error != 0)
 
3060
      {
 
3061
        table->print_error(tmp_error, MYF(0));
 
3062
        return -1;
 
3063
      }
 
3064
    }
3057
3065
  }
3058
3066
  /* Set up select_end */
3059
3067
  Next_select_func end_select= setup_end_select_func(join);
3531
3539
 
3532
3540
  if (!table->cursor->inited)
3533
3541
  {
3534
 
    table->cursor->startIndexScan(tab->ref.key, tab->sorted);
 
3542
    error= table->cursor->startIndexScan(tab->ref.key, tab->sorted);
 
3543
    if (error != 0)
 
3544
    {
 
3545
      table->print_error(error, MYF(0));
 
3546
    }
3535
3547
  }
3536
3548
 
3537
3549
  /* TODO: Why don't we do "Late NULLs Filtering" here? */
3579
3591
 
3580
3592
  /* Initialize the index first */
3581
3593
  if (!table->cursor->inited)
3582
 
    table->cursor->startIndexScan(tab->ref.key, tab->sorted);
 
3594
  {
 
3595
    error= table->cursor->startIndexScan(tab->ref.key, tab->sorted);
 
3596
    if (error != 0)
 
3597
      return table->report_error(error);
 
3598
  }
3583
3599
 
3584
3600
  /* Perform "Late NULLs Filtering" (see internals manual for explanations) */
3585
3601
  for (uint32_t i= 0 ; i < tab->ref.key_parts ; i++)
3613
3629
  Table *table= tab->table;
3614
3630
 
3615
3631
  if (!table->cursor->inited)
3616
 
    table->cursor->startIndexScan(tab->ref.key, tab->sorted);
 
3632
  {
 
3633
    error= table->cursor->startIndexScan(tab->ref.key, tab->sorted);
 
3634
    if (error != 0)
 
3635
      return table->report_error(error);
 
3636
  }
3617
3637
  if (cp_buffer_from_ref(tab->join->session, &tab->ref))
3618
3638
    return -1;
3619
3639
  if ((error=table->cursor->index_read_last_map(table->getInsertRecord(),
3728
3748
  if (tab->select && tab->select->quick && tab->select->quick->reset())
3729
3749
    return 1;
3730
3750
 
3731
 
  tab->read_record.init_read_record(tab->join->session, tab->table, tab->select, 1, true);
 
3751
  if (tab->read_record.init_read_record(tab->join->session, tab->table, tab->select, 1, true))
 
3752
    return 1;
3732
3753
 
3733
3754
  return (*tab->read_record.read_record)(&tab->read_record);
3734
3755
}
3761
3782
  }
3762
3783
 
3763
3784
  if (!table->cursor->inited)
3764
 
    table->cursor->startIndexScan(tab->index, tab->sorted);
 
3785
  {
 
3786
    error= table->cursor->startIndexScan(tab->index, tab->sorted);
 
3787
    if (error != 0)
 
3788
    {
 
3789
      table->report_error(error);
 
3790
      return -1;
 
3791
    }
 
3792
  }
3765
3793
  if ((error=tab->table->cursor->index_first(tab->table->getInsertRecord())))
3766
3794
  {
3767
3795
    if (error != HA_ERR_KEY_NOT_FOUND && error != HA_ERR_END_OF_FILE)
3820
3848
  tab->read_record.index=tab->index;
3821
3849
  tab->read_record.record=table->getInsertRecord();
3822
3850
  if (!table->cursor->inited)
3823
 
    table->cursor->startIndexScan(tab->index, 1);
 
3851
  {
 
3852
    error= table->cursor->startIndexScan(tab->index, 1);
 
3853
    if (error != 0)
 
3854
      return table->report_error(error);
 
3855
  }
3824
3856
  if ((error= tab->table->cursor->index_last(tab->table->getInsertRecord())))
3825
3857
    return table->report_error(error);
3826
3858
 
5099
5131
  org_record=(char*) (record=table->getInsertRecord())+offset;
5100
5132
  new_record=(char*) table->getUpdateRecord()+offset;
5101
5133
 
5102
 
  cursor->startTableScan(1);
 
5134
  if ((error= cursor->startTableScan(1)))
 
5135
    goto err;
 
5136
 
5103
5137
  error=cursor->rnd_next(record);
5104
5138
  for (;;)
5105
5139
  {
5216
5250
    return(1);
5217
5251
  }
5218
5252
 
5219
 
  cursor->startTableScan(1);
 
5253
  if ((error= cursor->startTableScan(1)))
 
5254
    goto err;
 
5255
 
5220
5256
  key_pos= &key_buffer[0];
5221
5257
  for (;;)
5222
5258
  {