From 76fa815132904d0274a43643c31b6b65293e7f01 Mon Sep 17 00:00:00 2001 From: Andrei Mihu Date: Wed, 24 Oct 2018 22:37:14 +0100 Subject: [PATCH] Improved error handling in Lua runtime custom SQL function calls. --- CHANGELOG.md | 2 ++ server/runtime_lua_nakama.go | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f8a972f1..e2a37fafc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project are documented below. The format is based on [keep a changelog](http://keepachangelog.com) and this project uses [semantic versioning](http://semver.org). ## [Unreleased] +### Changed +- Improved error handling in Lua runtime custom SQL function calls. ## [2.1.2] - 2018-10-25 ### Added diff --git a/server/runtime_lua_nakama.go b/server/runtime_lua_nakama.go index 78f3e4529..4923000aa 100644 --- a/server/runtime_lua_nakama.go +++ b/server/runtime_lua_nakama.go @@ -494,7 +494,12 @@ func (n *RuntimeLuaNakamaModule) sqlExec(l *lua.LState) int { } } - result, err := n.db.ExecContext(l.Context(), query, params...) + var result sql.Result + var err error + err = ExecuteRetryable(func() error { + result, err = n.db.ExecContext(l.Context(), query, params...) + return err + }) if err != nil { l.RaiseError("sql exec error: %v", err.Error()) return 0 @@ -526,7 +531,12 @@ func (n *RuntimeLuaNakamaModule) sqlQuery(l *lua.LState) int { } } - rows, err := n.db.QueryContext(l.Context(), query, params...) + var rows *sql.Rows + var err error + err = ExecuteRetryable(func() error { + rows, err = n.db.QueryContext(l.Context(), query, params...) + return err + }) if err != nil { l.RaiseError("sql query error: %v", err.Error()) return 0 -- GitLab