Change in GET_LOCK call to make it MariaDB compatilble (#5343)

* Update mysql.go

Change in GET_LOCK call to make it MariaDB compatilble

* Use math.MaxUint32 for lock timeout, add comments
This commit is contained in:
pavel-usov
2018-09-19 21:05:05 +02:00
committed by Brian Kassouf
parent 6e8d91a59c
commit e020e7eea6

View File

@@ -8,6 +8,7 @@ import (
"errors"
"fmt"
"io/ioutil"
"math"
"net/url"
"sort"
"strconv"
@@ -620,7 +621,9 @@ func (i *MySQLLock) becomeLeader() error {
func (i *MySQLLock) Lock() error {
defer metrics.MeasureSince([]string{"mysql", "get_lock"}, time.Now())
rows, err := i.in.Query("SELECT GET_LOCK(?, -1), IS_USED_LOCK(?)", i.key, i.key)
// Lock timeout math.MaxUint32 instead of -1 solves compatibility issues with
// different MySQL flavours i.e. MariaDB
rows, err := i.in.Query("SELECT GET_LOCK(?, ?), IS_USED_LOCK(?)", i.key, math.MaxUint32, i.key)
if err != nil {
return err
}