~linuxjedi/drizzle/drizzle-bug-621603

« back to all changes in this revision

Viewing changes to plugin/heap/ha_heap.cc

  • Committer: Monty Taylor
  • Date: 2010-08-21 02:55:13 UTC
  • mfrom: (1711.6.12 staging)
  • Revision ID: mordred@inaugust.com-20100821025513-3xyidjf8dodeh4gy
Remove btree heap index.

Show diffs side-by-side

added added

removed removed

Lines of Context:
99
99
  uint32_t max_supported_keys()          const { return MAX_KEY; }
100
100
  uint32_t max_supported_key_part_length() const { return MAX_KEY_LENGTH; }
101
101
 
102
 
  uint32_t index_flags(enum  ha_key_alg algorithm) const
 
102
  uint32_t index_flags(enum  ha_key_alg ) const
103
103
  {
104
 
    return ((algorithm == HA_KEY_ALG_BTREE) ?
105
 
            HA_READ_NEXT |
106
 
            HA_READ_PREV |
107
 
            HA_READ_ORDER |
108
 
            HA_READ_RANGE :
109
 
            HA_ONLY_WHOLE_INDEX |
110
 
            HA_KEY_SCAN_NOT_ROR);
 
104
    return ( HA_ONLY_WHOLE_INDEX | HA_KEY_SCAN_NOT_ROR);
111
105
  }
112
106
 
113
107
  bool doDoesTableExist(Session& session, const TableIdentifier &identifier);
259
253
}
260
254
 
261
255
 
262
 
const char *ha_heap::index_type(uint32_t inx)
 
256
const char *ha_heap::index_type(uint32_t )
263
257
{
264
 
  return ((table_share->getKeyInfo(inx).algorithm == HA_KEY_ALG_BTREE) ?
265
 
          "BTREE" : "HASH");
 
258
  return ("HASH");
266
259
}
267
260
 
268
261
 
285
278
void ha_heap::set_keys_for_scanning(void)
286
279
{
287
280
  btree_keys.reset();
288
 
  for (uint32_t i= 0 ; i < table->getShare()->sizeKeys() ; i++)
289
 
  {
290
 
    if (table->key_info[i].algorithm == HA_KEY_ALG_BTREE)
291
 
      btree_keys.set(i);
292
 
  }
293
281
}
294
282
 
295
283
 
298
286
  for (uint32_t i= 0; i < table->getShare()->sizeKeys(); i++)
299
287
  {
300
288
    KeyInfo *key= &table->key_info[i];
 
289
 
301
290
    if (!key->rec_per_key)
302
291
      continue;
303
 
    if (key->algorithm != HA_KEY_ALG_BTREE)
 
292
 
304
293
    {
305
294
      if (key->flags & HA_NOSAME)
306
295
        key->rec_per_key[key->key_parts-1]= 1;
648
637
                                  key_range *max_key)
649
638
{
650
639
  KeyInfo *key= &table->key_info[inx];
651
 
  if (key->algorithm == HA_KEY_ALG_BTREE)
652
 
    return hp_rb_records_in_range(file, inx, min_key, max_key);
653
640
 
654
641
  if (!min_key || !max_key ||
655
642
      min_key->length != max_key->length ||
765
752
    keydef[key].flag=      (pos->flags & (HA_NOSAME | HA_NULL_ARE_EQUAL));
766
753
    keydef[key].seg=       seg;
767
754
 
768
 
    switch (pos->algorithm) {
769
 
    case HA_KEY_ALG_UNDEF:
770
 
    case HA_KEY_ALG_HASH:
771
 
      keydef[key].algorithm= HA_KEY_ALG_HASH;
772
 
      mem_per_row_keys+= sizeof(char*) * 2; // = sizeof(HASH_INFO)
773
 
      break;
774
 
    case HA_KEY_ALG_BTREE:
775
 
      keydef[key].algorithm= HA_KEY_ALG_BTREE;
776
 
      mem_per_row_keys+=sizeof(TREE_ELEMENT)+pos->key_length+sizeof(char*);
777
 
      break;
778
 
    default:
779
 
      assert(0); // cannot happen
780
 
    }
 
755
    // case HA_KEY_ALG_HASH:
 
756
    keydef[key].algorithm= HA_KEY_ALG_HASH;
 
757
    mem_per_row_keys+= sizeof(char*) * 2; // = sizeof(HASH_INFO)
781
758
 
782
759
    for (; key_part != key_part_end; key_part++, seg++)
783
760
    {
784
761
      Field *field= key_part->field;
785
762
 
786
 
      if (pos->algorithm == HA_KEY_ALG_BTREE)
787
 
      {
788
 
        seg->type= field->key_type();
789
 
      }
790
 
      else
791
763
      {
792
764
        if ((seg->type = field->key_type()) != (int) HA_KEYTYPE_TEXT &&
793
765
            seg->type != HA_KEYTYPE_VARTEXT1 &&