Skip to content

Commit 48d7559

Browse files
committed
fix: auto_flush_interval no longer reduces to flushing every row
1 parent 6f93d52 commit 48d7559

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

src/questdb/ingress.pyx

+2
Original file line numberDiff line numberDiff line change
@@ -2432,6 +2432,8 @@ cdef class Sender:
24322432
ok = line_sender_flush(sender, c_buf, &err)
24332433
else:
24342434
ok = line_sender_flush_and_keep(sender, c_buf, &err)
2435+
if ok and c_buf == self._buffer._impl:
2436+
self._last_flush_ms[0] = line_sender_now_micros() // 1000
24352437
_ensure_has_gil(&gs)
24362438
if not ok:
24372439
if c_buf == self._buffer._impl:

test/test.py

+22
Original file line numberDiff line numberDiff line change
@@ -823,6 +823,28 @@ def test_auto_flush_interval(self):
823823
# Due to CI timing delays there may have been multiple flushes.
824824
self.assertGreaterEqual(requests_len, 1)
825825

826+
def test_auto_flush_interval2(self):
827+
with HttpServer() as server, self.builder(
828+
'http',
829+
'localhost',
830+
server.port,
831+
auto_flush_interval=10,
832+
auto_flush_rows=False,
833+
auto_flush_bytes=False) as sender:
834+
sender.row('t', columns={'x': 1}, at=qi.ServerTimestamp)
835+
sender.row('t', columns={'x': 2}, at=qi.ServerTimestamp)
836+
time.sleep(0.02)
837+
sender.row('t', columns={'x': 3}, at=qi.ServerTimestamp)
838+
sender.row('t', columns={'x': 4}, at=qi.ServerTimestamp)
839+
time.sleep(0.02)
840+
sender.row('t', columns={'x': 5}, at=qi.ServerTimestamp)
841+
sender.row('t', columns={'x': 6}, at=qi.ServerTimestamp)
842+
self.assertEqual(len(server.requests), 3)
843+
self.assertEqual(server.requests, [
844+
b't x=1i\nt x=2i\nt x=3i\n',
845+
b't x=4i\nt x=5i\n',
846+
b't x=6i\n'])
847+
826848
def test_http_username_password(self):
827849
with HttpServer() as server, self.builder('http', 'localhost', server.port, username='user',
828850
password='pass') as sender:

0 commit comments

Comments
 (0)