提交 54772667 编写于 作者: R Ryuta Kamizono

Should quote `lock_name` to pass to `get_advisory_lock`

上级 164125c8
......@@ -146,11 +146,11 @@ def supports_advisory_locks?
end
def get_advisory_lock(lock_name, timeout = 0) # :nodoc:
select_value("SELECT GET_LOCK('#{lock_name}', #{timeout});").to_s == '1'
select_value("SELECT GET_LOCK(#{quote(lock_name)}, #{timeout})") == 1
end
def release_advisory_lock(lock_name) # :nodoc:
select_value("SELECT RELEASE_LOCK('#{lock_name}')").to_s == '1'
select_value("SELECT RELEASE_LOCK(#{quote(lock_name)})") == 1
end
def native_database_types
......
......@@ -144,7 +144,7 @@ def test_logs_name_rename_column_sql
end
def test_get_and_release_advisory_lock
lock_name = "test_lock_name"
lock_name = "test lock'n'name"
got_lock = @connection.get_advisory_lock(lock_name)
assert got_lock, "get_advisory_lock should have returned true but it didn't"
......@@ -159,7 +159,7 @@ def test_get_and_release_advisory_lock
end
def test_release_non_existent_advisory_lock
lock_name = "fake_lock_name"
lock_name = "fake lock'n'name"
released_non_existent_lock = @connection.release_advisory_lock(lock_name)
assert_equal released_non_existent_lock, false,
'expected release_advisory_lock to return false when there was no lock to release'
......@@ -168,6 +168,6 @@ def test_release_non_existent_advisory_lock
protected
def test_lock_free(lock_name)
@connection.select_value("SELECT IS_FREE_LOCK('#{lock_name}');") == 1
@connection.select_value("SELECT IS_FREE_LOCK(#{@connection.quote(lock_name)})") == 1
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册