624
628
idx->set_is_unique(false);
626
/* FIXME: block_size ? */
630
drizzle::Table::Index::IndexOptions *index_options= idx->mutable_options();
632
if(key_info[i].flags & HA_USES_BLOCK_SIZE)
633
index_options->set_key_block_size(key_info[i].block_size);
635
if(key_info[i].flags & HA_PACK_KEY)
636
index_options->set_pack_key(true);
638
if(key_info[i].flags & HA_BINARY_PACK_KEY)
639
index_options->set_binary_pack_key(true);
641
if(key_info[i].flags & HA_VAR_LENGTH_PART)
642
index_options->set_var_length_key(true);
644
if(key_info[i].flags & HA_NULL_PART_KEY)
645
index_options->set_null_part_key(true);
647
if(key_info[i].flags & HA_KEY_HAS_PART_KEY_SEG)
648
index_options->set_has_partial_segments(true);
650
if(key_info[i].flags & HA_GENERATED_KEY)
651
index_options->set_auto_generated_key(true);
653
if (key_info[i].flags & HA_USES_COMMENT)
654
idx->set_comment(key_info[i].comment.str);
656
if(key_info[i].flags & ~(HA_NOSAME | HA_PACK_KEY | HA_USES_BLOCK_SIZE | HA_BINARY_PACK_KEY | HA_VAR_LENGTH_PART | HA_NULL_PART_KEY | HA_KEY_HAS_PART_KEY_SEG | HA_GENERATED_KEY | HA_USES_COMMENT))
657
abort(); // Invalid (unknown) index flag.
628
659
for(unsigned int j=0; j< key_info[i].key_parts; j++)
630
661
drizzle::Table::Index::IndexPart *idxpart;
631
drizzle::Table::Field *field;
633
663
idxpart= idx->add_index_part();
635
field= idxpart->mutable_field();
636
*field= table_proto->field(key_info[i].key_part[j].fieldnr);
665
idxpart->set_fieldnr(key_info[i].key_part[j].fieldnr+1);
638
667
idxpart->set_compare_length(key_info[i].key_part[j].length);
641
if (key_info[i].flags & HA_USES_COMMENT)
642
idx->set_comment(key_info[i].comment.str);