influxdata / influxdata/influxdb-client-csharp

Streaming IAsyncEnumerable<FluxRecord> and IAsyncEnumerable<string>

Open
#452 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.