influxdata / influxdata/influxdb-client-csharp
Streaming IAsyncEnumerable<FluxRecord> and IAsyncEnumerable<string>
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 377
- Forks
- 93
- Avg merge
- 9m
- Merged PRs (30d)
- 2
Description
__Proposal/Current behavior:__
Current `IQueryApi` doesn't allow for streaming raw results, i.e., results of type `FluxRecord` or `string`.
__Desired behavior:__
```csharp
IAsyncEnumerable QueryAsyncEnumerable(string query, string org = null, CancellationToken cancellationToken = default(CancellationToken));
IAsyncEnumerable QueryAsyncEnumerable(Query query, string org = null, CancellationToken cancellationToken = default(CancellationToken));
```
When `T` is `string` or `FluxRecord` don't map the result to POCO.
__Alternatives considered:__
Add new methods that return `IAsyncEnumerable` and `IAsyncEnumerable`.
__Use case:__
Current methods with delegates are not flexible enought (e.g. callbacks cannot use async code). Also its not always desired to map to POCO from performance reasons.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the IQueryApi interface and inspect the existing delegate-based query methods and their handling of FluxRecord and string results. Determine how both string and Query overloads would fit the current API; done means asynchronous enumeration supports raw FluxRecord and string results without POCO mapping, while retaining cancellation and organization parameters.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- api
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100