apache / arrow

Apache Arrow is the universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics
https://arrow.apache.org/
Apache License 2.0
14.57k stars 3.54k forks source link

[C#] Flight client does not allow putting zero batches #44363

Open adamreeve opened 1 month ago

adamreeve commented 1 month ago

Describe the bug, including details regarding any error messages, version, and platform.

As part of writing a Flight integration test client for .NET (#44361) I ran into a limitation where the C# client can't handle the primitive_no_batches test case because it doesn't send the schema until you write the first record batch.

For comparison, the PyArrow and C++ implementations require passing the schema when calling do_put, and always send the schema even if no batches are sent: https://arrow.apache.org/docs/python/generated/pyarrow.flight.FlightClient.html#pyarrow.flight.FlightClient.do_put

Component(s)

C#

adamreeve commented 4 weeks ago

Somewhat related, the Java and C++/Python clients also allow sending metadata-only messages without a record batch.