~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/join.cc

  • Committer: Mark Atwood
  • Date: 2011-06-24 11:45:17 UTC
  • mfrom: (2318.6.64 rf)
  • Revision ID: me@mark.atwood.name-20110624114517-1mq8no6jlp2nrg7m
mergeĀ lp:~olafvdspek/drizzle/refactor15

Show diffs side-by-side

added added

removed removed

Lines of Context:
734
734
  if (!tables_list)
735
735
  {
736
736
    error= 0;
737
 
    return(0);
 
737
    return 0;
738
738
  }
739
739
  error= -1;          // Error is sent to client
740
740
  sort_by_table= get_sort_by_table(order, group_list, select_lex->leaf_tables);
1134
1134
  if (select_options & SELECT_DESCRIBE)
1135
1135
  {
1136
1136
    error= 0;
1137
 
    return(0);
 
1137
    return 0;
1138
1138
  }
1139
1139
  having= 0;
1140
1140
 
1327
1327
      func->clear();
1328
1328
  }
1329
1329
 
1330
 
  return(0);
 
1330
  return 0;
1331
1331
}
1332
1332
 
1333
1333
/**
3366
3366
  optimizer::Position cur_pos;
3367
3367
 
3368
3368
  table_count=join->tables;
3369
 
  join->join_tab=join_tab= (JoinTable*) session->mem.alloc(sizeof(JoinTable)*table_count);
3370
 
 
3371
 
  for (i= 0; i < table_count; i++)
3372
 
    new (join_tab+i) JoinTable();
3373
 
 
 
3369
  join->join_tab=join_tab= new (session->mem) JoinTable[table_count];
3374
3370
  join->full_join=0;
3375
3371
 
3376
3372
  used_tables= OUTER_REF_TABLE_BIT;   // Outer row is already read
3405
3401
  for (i=0 ; i < table_count ; i++)
3406
3402
    join->map2table[join->join_tab[i].table->tablenr]=join->join_tab+i;
3407
3403
  update_depend_map(join);
3408
 
  return(0);
 
3404
  return 0;
3409
3405
}
3410
3406
 
3411
3407
/** Save const tables first as used tables. */
4520
4516
  */
4521
4517
  if (!join->table_reexec)
4522
4518
  {
4523
 
    join->table_reexec= (Table**) join->session->mem.alloc(sizeof(Table*));
 
4519
    join->table_reexec= new (join->session->mem) Table*;
4524
4520
    if (join->tmp_join)
4525
4521
      join->tmp_join->table_reexec= join->table_reexec;
4526
4522
  }
4527
4523
  if (!join->join_tab_reexec)
4528
4524
  {
4529
 
    join->join_tab_reexec= (JoinTable*) join->session->mem.alloc(sizeof(JoinTable));
4530
 
    new (join->join_tab_reexec) JoinTable();
 
4525
    join->join_tab_reexec= new (join->session->mem) JoinTable;
4531
4526
    if (join->tmp_join)
4532
4527
      join->tmp_join->join_tab_reexec= join->join_tab_reexec;
4533
4528
  }
5015
5010
      }
5016
5011
    }
5017
5012
  }
5018
 
  return(0);
 
5013
  return 0;
5019
5014
}
5020
5015
 
5021
5016
/*
5528
5523
  if (!field_count && !(join->select_options & OPTION_FOUND_ROWS) && !having)
5529
5524
  {                    // only const items with no OPTION_FOUND_ROWS
5530
5525
    join->unit->select_limit_cnt= 1;            // Only send first row
5531
 
    return(0);
 
5526
    return 0;
5532
5527
  }
5533
5528
  Field **first_field=entry->getFields() + entry->getShare()->sizeFields() - field_count;
5534
5529
  uint32_t offset= field_count ? entry->getField(entry->getShare()->sizeFields() - field_count)->offset(entry->getInsertRecord()) : 0;
5615
5610
 
5616
5611
  table_count= join->tables;
5617
5612
  stat= (JoinTable*) join->session->mem.calloc(sizeof(JoinTable)*table_count);
5618
 
  stat_ref= (JoinTable**) join->session->mem.alloc(sizeof(JoinTable*)*MAX_TABLES);
5619
 
  table_vector= (Table**) join->session->mem.alloc(sizeof(Table*)*(table_count*2));
5620
 
  // table_vector= new (join->session->mem) Table*[2 * table_count];
 
5613
  stat_ref= new (join->session->mem) JoinTable*[MAX_TABLES];
 
5614
  table_vector= new (join->session->mem) Table*[2 * table_count];
5621
5615
 
5622
5616
  join->best_ref=stat_vector;
5623
5617