From 565375dfb720d4a7fe047b415a103093f387d85a Mon Sep 17 00:00:00 2001 From: xiezhaodong Date: Mon, 14 Apr 2025 16:09:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81lru=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- prepare_stmt.go | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/prepare_stmt.go b/prepare_stmt.go index 937840b2..ede61854 100644 --- a/prepare_stmt.go +++ b/prepare_stmt.go @@ -24,25 +24,26 @@ type PreparedStmtDB struct { ConnPool } +func newPrepareStmtCache(prepareStmtLruConfig *PrepareStmtLruConfig) *StmtStore { + var stmts StmtStore + if prepareStmtLruConfig != nil && prepareStmtLruConfig.Open { + if prepareStmtLruConfig.Size <= 0 { + panic("LRU prepareStmtLruConfig.Size must > 0") + } + lru := &LruStmtStore{} + lru.NewLru(prepareStmtLruConfig.Size, prepareStmtLruConfig.TTL) + stmts = lru + } else { + defaultStmtStore := &DefaultStmtStore{} + stmts = defaultStmtStore.init() + } + return &stmts +} func NewPreparedStmtDB(connPool ConnPool, prepareStmtLruConfig *PrepareStmtLruConfig) *PreparedStmtDB { return &PreparedStmtDB{ ConnPool: connPool, - Stmts: func() StmtStore { - var stmts StmtStore - if prepareStmtLruConfig != nil && prepareStmtLruConfig.Open { - if prepareStmtLruConfig.Size <= 0 { - panic("LRU prepareStmtLruConfig.Size must > 0") - } - lru := &LruStmtStore{} - lru.NewLru(prepareStmtLruConfig.Size, prepareStmtLruConfig.TTL) - stmts = lru - } else { - defaultStmtStore := &DefaultStmtStore{} - stmts = defaultStmtStore.init() - } - return stmts - }(), - Mux: &sync.RWMutex{}, + Stmts: *newPrepareStmtCache(prepareStmtLruConfig), + Mux: &sync.RWMutex{}, } }