Skip to content

Commit 7e69537

Browse files
committed
fix: No longer allowing 'sender.flush(buffer=None, clear=False)' which was a bug.
1 parent f28a538 commit 7e69537

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/questdb/ingress.pyx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ class IngressErrorCode(Enum):
9191
AuthError = line_sender_error_auth_error
9292
TlsError = line_sender_error_tls_error
9393

94-
def __str__(self):
94+
def __str__(self) -> str:
9595
return self.name
9696

9797

@@ -929,6 +929,9 @@ cdef class Sender:
929929
self._buffer.row(*args, **kwargs)
930930

931931
cpdef flush(self, Buffer buffer=None, bint clear=True):
932+
if buffer is None and not clear:
933+
raise ValueError('The internal buffer must always be cleared.')
934+
932935
cdef line_sender_error* err = NULL
933936
cdef line_sender_buffer* c_buf = NULL
934937
if self._impl == NULL:

test/test.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#!/usr/bin/env python3
22

33
import sys
4+
from turtle import clear
45
sys.dont_write_bytecode = True
56
import os
67
import unittest
@@ -176,6 +177,16 @@ def test_flush_3(self):
176177
sender.row('tbl1', symbols={'a': 'b'})
177178
sender.flush()
178179

180+
def test_flush_4(self):
181+
# Clearing of the internal buffer is not allowed.
182+
with Server() as server:
183+
with self.assertRaises(ValueError):
184+
with qi.Sender('localhost', server.port) as sender:
185+
server.accept()
186+
sender.row('tbl1', symbols={'a': 'b'})
187+
sender.flush(buffer=None, clear=False)
188+
189+
179190
def test_independent_buffer(self):
180191
buf = qi.Buffer()
181192
buf.row('tbl1', symbols={'sym1': 'val1'})

0 commit comments

Comments
 (0)