summaryrefslogtreecommitdiff
path: root/sql/ha_heap.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/ha_heap.cc')
-rw-r--r--sql/ha_heap.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/sql/ha_heap.cc b/sql/ha_heap.cc
index 46824033db9..29508207a70 100644
--- a/sql/ha_heap.cc
+++ b/sql/ha_heap.cc
@@ -481,16 +481,20 @@ int ha_heap::create(const char *name, TABLE *table_arg,
{
uint flag= key_part->key_type;
Field *field= key_part->field;
+
if (pos->algorithm == HA_KEY_ALG_BTREE)
seg->type= field->key_type();
else
{
- if ((seg->type = field->key_type()) != (int) HA_KEYTYPE_TEXT)
+ if ((seg->type = field->key_type()) != (int) HA_KEYTYPE_TEXT &&
+ seg->type != HA_KEYTYPE_VARTEXT &&
+ seg->type != HA_KEYTYPE_VARBINARY)
seg->type= HA_KEYTYPE_BINARY;
}
seg->start= (uint) key_part->offset;
seg->length= (uint) key_part->length;
- seg->flag = 0;
+ seg->flag= key_part->key_part_flag;
+
seg->charset= field->charset();
if (field->null_ptr)
{