From dc6e162d50aff31d556a61de60ae95ef3fd7386c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Carlos=20Nieto?= <jose.carlos@menteslibres.net> Date: Fri, 14 Oct 2016 17:09:21 -0500 Subject: [PATCH] Revert "Fix formatting errors on template" This reverts commit fbc7b77392c55d8b2d4319831025a5423ff0d072. --- internal/sqladapter/statement.go | 1 - internal/sqladapter/testing/adapter.go.tpl | 67 +++++++++++----------- 2 files changed, 32 insertions(+), 36 deletions(-) diff --git a/internal/sqladapter/statement.go b/internal/sqladapter/statement.go index f82182ab..b8c73938 100644 --- a/internal/sqladapter/statement.go +++ b/internal/sqladapter/statement.go @@ -56,7 +56,6 @@ func (c *Stmt) Close() { // close it for real. return } - return if atomic.LoadInt32(&c.dead) > 0 { // Statement is dead and we can close it for real. c.Stmt.Close() diff --git a/internal/sqladapter/testing/adapter.go.tpl b/internal/sqladapter/testing/adapter.go.tpl index d4276efb..eb539c50 100644 --- a/internal/sqladapter/testing/adapter.go.tpl +++ b/internal/sqladapter/testing/adapter.go.tpl @@ -6,19 +6,19 @@ import ( "database/sql" "flag" "fmt" - "log" "math/rand" "os" "strconv" "strings" "sync" "testing" - "time" + "log" + "time" "github.com/stretchr/testify/assert" "upper.io/db.v2" - "upper.io/db.v2/internal/sqladapter" "upper.io/db.v2/lib/sqlbuilder" + "upper.io/db.v2/internal/sqladapter" ) type customLogger struct { @@ -81,44 +81,41 @@ func TestPreparedStatementsCache(t *testing.T) { assert.NoError(t, err) defer sess.Close() - var tMu sync.Mutex + var tMu sync.Mutex tFatal := func(err error) { tMu.Lock() defer tMu.Unlock() t.Fatal(err) } - // The max number of elements we can have on our LRU is 128, if an statement - // is evicted it will be marked as dead and will be closed only when no other - // queries are using it. - const maxPreparedStatements = 128 * 2 - - var wg sync.WaitGroup - for i := 0; i < 50000000; i++ { - wg.Add(1) - go func(i int) { - defer wg.Done() - // This query is different with each iteration and thus generates a new - // prepared statement everytime it's called. - res := sess.Collection("artist").Find().Select(db.Raw(fmt.Sprintf("COUNT(%d)", i))) - var count map[string]uint64 - err := res.One(&count) - if err != nil { - tFatal(err) - } - /* - if sqladapter.NumActiveStatements() > maxPreparedStatements { - tFatal(fmt.Errorf("The number of active statements cannot exceed %d.", maxPreparedStatements)) - } - */ - }(i) - if i%500 == 0 { - log.Printf("PREPARED %d.", sqladapter.NumActiveStatements()) - wg.Wait() - } - } - - wg.Wait() + // The max number of elements we can have on our LRU is 128, if an statement + // is evicted it will be marked as dead and will be closed only when no other + // queries are using it. + const maxPreparedStatements = 128*2 + + var wg sync.WaitGroup + for i := 0; i < 500; i++ { + wg.Add(1) + go func(i int) { + defer wg.Done() + // This query is different with each iteration and thus generates a new + // prepared statement everytime it's called. + res := sess.Collection("artist").Find().Select(db.Raw(fmt.Sprintf("COUNT(%d)", i))) + var count map[string]uint64 + err := res.One(&count) + if err != nil { + tFatal(err) + } + if sqladapter.NumActiveStatements() > maxPreparedStatements { + tFatal(fmt.Errorf("The number of active statements cannot exceed %d.", maxPreparedStatements)) + } + }(i) + if i%maxPreparedStatements == 0 { + wg.Wait() + } + } + + wg.Wait() } func TestTruncateAllCollections(t *testing.T) { -- GitLab