Skip to content

Commit 5866dce

Browse files
committed
Fix flush condition
1 parent c6eb221 commit 5866dce

File tree

3 files changed

+35
-2
lines changed

3 files changed

+35
-2
lines changed

export_test.go

+4
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ func Messages(s LineSender) string {
6464
}
6565

6666
func MsgCount(s LineSender) int {
67+
if ps, ok := s.(*pooledSender); ok {
68+
hs, _ := ps.wrapped.(*httpLineSender)
69+
return hs.MsgCount()
70+
}
6771
if hs, ok := s.(*httpLineSender); ok {
6872
return hs.MsgCount()
6973
}

sender_pool.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ func (p *LineSenderPool) Sender(ctx context.Context) (LineSender, error) {
191191
func (p *LineSenderPool) free(ctx context.Context, ps *pooledSender) error {
192192
var flushErr error
193193

194-
if ps.dirty {
194+
if !ps.dirty {
195195
flushErr = ps.Flush(ctx)
196196
}
197197

sender_pool_test.go

+30-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232
"time"
3333

3434
"github.com/questdb/go-questdb-client/v3"
35+
qdb "github.com/questdb/go-questdb-client/v3"
3536
"github.com/stretchr/testify/assert"
3637
"github.com/stretchr/testify/require"
3738
)
@@ -75,7 +76,35 @@ func TestBasicBehavior(t *testing.T) {
7576
assert.Same(t, s3, s5)
7677
}
7778

78-
func TestDoubleReleaseShouldFail(t *testing.T) {
79+
func TestFlushOnClose(t *testing.T) {
80+
ctx := context.Background()
81+
82+
srv, err := newTestHttpServer(readAndDiscard)
83+
assert.NoError(t, err)
84+
defer srv.Close()
85+
86+
p, err := questdb.PoolFromOptions(
87+
qdb.WithHttp(),
88+
qdb.WithAddress(srv.Addr()),
89+
qdb.WithAutoFlushDisabled(),
90+
)
91+
assert.NoError(t, err)
92+
defer p.Close(ctx)
93+
94+
s, err := p.Sender(ctx)
95+
assert.NoError(t, err)
96+
97+
err = s.Table(testTable).StringColumn("bar", "baz").AtNow(ctx)
98+
assert.NoError(t, err)
99+
100+
assert.Equal(t, 1, qdb.MsgCount(s))
101+
102+
assert.NoError(t, s.Close(ctx))
103+
104+
assert.Equal(t, 0, qdb.MsgCount(s))
105+
}
106+
107+
func TestPooledSenderDoubleClose(t *testing.T) {
79108
p, err := questdb.PoolFromConf("http::addr=localhost:1234")
80109
require.NoError(t, err)
81110

0 commit comments

Comments
 (0)