diff --git a/src/net-questdb-client-tests/HttpTests.cs b/src/net-questdb-client-tests/HttpTests.cs index 44ecad9..68b5397 100644 --- a/src/net-questdb-client-tests/HttpTests.cs +++ b/src/net-questdb-client-tests/HttpTests.cs @@ -993,6 +993,33 @@ public async Task CancelLine() Assert.That(srv.PrintBuffer(), Is.EqualTo(expected)); } + + [Test] + public async Task CancelLineAfterClear() + { + using var srv = new DummyHttpServer(); + await srv.StartAsync(HttpPort); + using var sender = Sender.New($"http::addr={Host}:{HttpPort};auto_flush=off;"); + + sender.Table("good"); + sender.Symbol("asdf", "sdfad"); + sender.Column("ddd", 123); + sender.At(new DateTime(1970, 1, 2)); + + sender.Table("bad"); + sender.Symbol("asdf", "sdfad"); + sender.Column("asdf", 123); + sender.Clear(); + sender.CancelRow(); + + sender.Table("good"); + await sender.AtAsync(new DateTime(1970, 1, 2)); + await sender.SendAsync(); + + var expected = "good 86400000000000\n"; + Assert.That(srv.PrintBuffer(), Is.EqualTo(expected)); + } + [Test] public async Task CannotConnect() { diff --git a/src/net-questdb-client/Buffers/BufferV1.cs b/src/net-questdb-client/Buffers/BufferV1.cs index 6d68900..fa1341a 100644 --- a/src/net-questdb-client/Buffers/BufferV1.cs +++ b/src/net-questdb-client/Buffers/BufferV1.cs @@ -135,11 +135,13 @@ public void Clear() _buffers[i] = (_buffers[i].Buffer, 0); } - Position = 0; - RowCount = 0; - Length = 0; - WithinTransaction = false; - _currentTableName = ""; + Position = 0; + RowCount = 0; + Length = 0; + WithinTransaction = false; + _currentTableName = ""; + _lineStartBufferIndex = 0; + _lineStartBufferPosition = 0; } ///