summaryrefslogtreecommitdiff
path: root/storage/maria/ma_unique.c
diff options
context:
space:
mode:
Diffstat (limited to 'storage/maria/ma_unique.c')
-rw-r--r--storage/maria/ma_unique.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/storage/maria/ma_unique.c b/storage/maria/ma_unique.c
index 397c7804170..ce7967608b9 100644
--- a/storage/maria/ma_unique.c
+++ b/storage/maria/ma_unique.c
@@ -27,8 +27,9 @@
isn't any versioning information.
*/
-my_bool _ma_check_unique(MARIA_HA *info, MARIA_UNIQUEDEF *def, uchar *record,
- ha_checksum unique_hash, my_off_t disk_pos)
+my_bool _ma_check_unique(MARIA_HA *info, MARIA_UNIQUEDEF *def,
+ const uchar *record,
+ ha_checksum unique_hash, my_off_t disk_pos)
{
my_off_t lastpos=info->cur_row.lastpos;
MARIA_KEYDEF *keyinfo= &info->s->keyinfo[def->key];
@@ -38,6 +39,7 @@ my_bool _ma_check_unique(MARIA_HA *info, MARIA_UNIQUEDEF *def, uchar *record,
DBUG_ENTER("_ma_check_unique");
DBUG_PRINT("enter",("unique_hash: %lu", (ulong) unique_hash));
+ /* We need to store the hash value as a key in the record, breaking const */
maria_unique_store(record+keyinfo->seg->start, unique_hash);
/* Can't be spatial so it's ok to call _ma_make_key directly here */
_ma_make_key(info, &key, def->key, key_buff, record, 0, 0);