Navigation Menu

Skip to content

Commit

Permalink
Change BLOB length position of multiple column index. refs #1498
Browse files Browse the repository at this point in the history
  • Loading branch information
Kentoku committed Oct 21, 2012
1 parent 9663bad commit 97b48a4
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions ha_mroonga.cpp
Expand Up @@ -9738,7 +9738,8 @@ int ha_mroonga::storage_encode_multiple_column_key(KEY *key_info,
TYPE_FLOAT,
TYPE_DOUBLE,
TYPE_BYTE_SEQUENCE,
TYPE_BYTE_REVERSE
TYPE_BYTE_REVERSE,
TYPE_BYTE_BLOB
} data_type = TYPE_UNKNOWN;
uint data_size = 0;
long long int long_long_value = 0;
Expand Down Expand Up @@ -9819,8 +9820,8 @@ int ha_mroonga::storage_encode_multiple_column_key(KEY *key_info,
break;
case MYSQL_TYPE_VARCHAR:
DBUG_PRINT("info", ("mroonga: MYSQL_TYPE_VARCHAR"));
data_type = TYPE_BYTE_SEQUENCE;
data_size = HA_KEY_BLOB_LENGTH + key_part.length;
data_type = TYPE_BYTE_BLOB;
data_size = key_part.length;
break;
case MYSQL_TYPE_BIT:
// TODO
Expand Down Expand Up @@ -9878,8 +9879,8 @@ int ha_mroonga::storage_encode_multiple_column_key(KEY *key_info,
case MYSQL_TYPE_BLOB:
// TODO
DBUG_PRINT("info", ("mroonga: MYSQL_TYPE_BLOB"));
data_type = TYPE_BYTE_SEQUENCE;
data_size = HA_KEY_BLOB_LENGTH + key_part.length;
data_type = TYPE_BYTE_BLOB;
data_size = key_part.length;
break;
case MYSQL_TYPE_VAR_STRING:
case MYSQL_TYPE_STRING:
Expand Down Expand Up @@ -9936,6 +9937,16 @@ int ha_mroonga::storage_encode_multiple_column_key(KEY *key_info,
break;
case TYPE_BYTE_REVERSE:
break;
case TYPE_BYTE_BLOB:
if (decode) {
memcpy(current_buffer, current_key + data_size, HA_KEY_BLOB_LENGTH);
memcpy(current_buffer + HA_KEY_BLOB_LENGTH, current_key, data_size);
} else {
memcpy(current_buffer + data_size, current_key, HA_KEY_BLOB_LENGTH);
memcpy(current_buffer, current_key + HA_KEY_BLOB_LENGTH, data_size);
}
data_size += HA_KEY_BLOB_LENGTH;
break;
}

if (error) {
Expand Down

0 comments on commit 97b48a4

Please sign in to comment.