~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_base.cc

  • Committer: Monty Taylor
  • Date: 2009-05-08 19:07:39 UTC
  • mto: This revision was merged to the branch mainline in revision 1009.
  • Revision ID: mordred@inaugust.com-20090508190739-rwas5y9xjg1a92p6
Reverted a crap-ton of padraig's work.

Show diffs side-by-side

added added

removed removed

Lines of Context:
883
883
{
884
884
  for (Table *table= session->temporary_tables ; table ; table= table->next)
885
885
  {
886
 
    if ((table->query_id == session->query_id))
 
886
    if ((table->query_id == session->query_id) && ! table->open_by_handler)
887
887
    {
888
888
      table->query_id= 0;
889
889
      table->file->ha_reset();
3563
3563
      been set for all fields (for example for view).
3564
3564
    */
3565
3565
 
3566
 
    table->covering_keys&= field->part_of_key;
3567
 
    table->merge_keys|= field->part_of_key;
 
3566
    table->covering_keys.intersect(field->part_of_key);
 
3567
    table->merge_keys.merge(field->part_of_key);
3568
3568
 
3569
3569
    if (session->mark_used_columns == MARK_COLUMNS_READ)
3570
3570
    {
4645
4645
        Table *table_1= nj_col_1->table_ref->table;
4646
4646
        /* Mark field_1 used for table cache. */
4647
4647
        table_1->read_set->set(field_1->field_index);
4648
 
        table_1->covering_keys&= field_1->part_of_key;
4649
 
        table_1->merge_keys|= field_1->part_of_key;
 
4648
        table_1->covering_keys.intersect(field_1->part_of_key);
 
4649
        table_1->merge_keys.merge(field_1->part_of_key);
4650
4650
      }
4651
4651
      if (field_2)
4652
4652
      {
4653
4653
        Table *table_2= nj_col_2->table_ref->table;
4654
4654
        /* Mark field_2 used for table cache. */
4655
4655
        table_2->read_set->set(field_2->field_index);
4656
 
        table_2->covering_keys&= field_2->part_of_key;
4657
 
        table_2->merge_keys|= field_2->part_of_key;
 
4656
        table_2->covering_keys.intersect(field_2->part_of_key);
 
4657
        table_2->merge_keys.merge(field_2->part_of_key);
4658
4658
      }
4659
4659
 
4660
4660
      if (using_fields != NULL)
5332
5332
  String *name;
5333
5333
  uint32_t pos;
5334
5334
 
5335
 
  map->reset();
 
5335
  map->clear_all();
5336
5336
  while ((name=it++))
5337
5337
  {
5338
5338
    if (table->s->keynames.type_names == 0 ||
5342
5342
    {
5343
5343
      my_error(ER_KEY_DOES_NOT_EXITS, MYF(0), name->c_ptr(),
5344
5344
               table->pos_in_table_list->alias);
5345
 
      map->set();
 
5345
      map->set_all();
5346
5346
      return 1;
5347
5347
    }
5348
 
    map->set(pos-1);
 
5348
    map->set_bit(pos-1);
5349
5349
  }
5350
5350
  return 0;
5351
5351
}
5449
5449
        field->table->read_set->set(field->field_index);
5450
5450
        if (table)
5451
5451
        {
5452
 
          table->covering_keys&= field->part_of_key;
5453
 
          table->merge_keys|= field->part_of_key;
 
5452
          table->covering_keys.intersect(field->part_of_key);
 
5453
          table->merge_keys.merge(field->part_of_key);
5454
5454
        }
5455
5455
        if (tables->is_natural_join)
5456
5456
        {
5467
5467
          if (field_table)
5468
5468
          {
5469
5469
            session->used_tables|= field_table->map;
5470
 
            field_table->covering_keys&= field->part_of_key;
5471
 
            field_table->merge_keys|= field->part_of_key;
 
5470
            field_table->covering_keys.intersect(field->part_of_key);
 
5471
            field_table->merge_keys.merge(field->part_of_key);
5472
5472
            field_table->used_fields++;
5473
5473
          }
5474
5474
        }