Skip to content

Commit 596245b

Browse files
committed
MySQL: 修复扩展语法修改了SQL解析缓存中的语句,导致重复执行不同长度 slice 的相同语句时候出错的问题。
1 parent 2e2f73f commit 596245b

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

mysql/mysql_db_client.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,10 +182,10 @@ func isLegalParamNameCharter(r rune) bool {
182182
}
183183

184184
// 分析Sql语句,提取用到的命名参数名称(按顺序),并将 @ 占位参数转换为 mysql 驱动支持的 ? 形式。
185-
func parseMySqlNamedSql(sqlText string) *mysqlNamedParsedResult {
185+
func parseMySqlNamedSql(sqlText string) mysqlNamedParsedResult {
186186
// 如果缓存中有数据,直接返回。
187187
if cacheResult, ok := mysqlNamedSqlParsedResult.Load(sqlText); ok {
188-
return cacheResult.(*mysqlNamedParsedResult)
188+
return cacheResult.(mysqlNamedParsedResult)
189189
}
190190

191191
names := make([]string, 0, 10) // 存放 sql 中所有的参数名称。
@@ -241,7 +241,7 @@ func parseMySqlNamedSql(sqlText string) *mysqlNamedParsedResult {
241241
}
242242
}
243243

244-
parsedResult := &mysqlNamedParsedResult{fixedSqlTextBuilder.String(), names}
244+
parsedResult := mysqlNamedParsedResult{fixedSqlTextBuilder.String(), names}
245245
mysqlNamedSqlParsedResult.Store(sqlText, parsedResult) // 缓存结果。
246246
return parsedResult
247247
}

0 commit comments

Comments
 (0)