Skip to content

Commit 114da57

Browse files
committed
Adds Count Capabilites.
1 parent 0fa1968 commit 114da57

File tree

3 files changed

+40
-0
lines changed

3 files changed

+40
-0
lines changed

src/libraries/Microsoft.PowerFx.Connectors/Public/CdpTableValue.cs

+5
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ public void Refresh()
6666
{
6767
_cachedRows = null;
6868
}
69+
70+
public Task<int> GetCountAsync(IServiceProvider services, DelegationParameters parameters, CancellationToken cancel)
71+
{
72+
throw new NotImplementedException();
73+
}
6974
}
7075

7176
internal static class ODataParametersExtensions

src/libraries/Microsoft.PowerFx.Core/Entities/External/TableDelegationInfo.cs

+26
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ public abstract class TableDelegationInfo
2626
[Obsolete("preview")]
2727
public SummarizeCapabilities SummarizeCapabilities { get; init; }
2828

29+
[Obsolete("preview")]
30+
public CountCapabilities CountCapabilities { get; init; }
31+
2932
// Defines ungroupable columns
3033
public GroupRestrictions GroupRestriction { get; init; }
3134

@@ -299,6 +302,29 @@ public enum SummarizeMethod
299302
CountRows
300303
}
301304

305+
[Obsolete("preview")]
306+
public class CountCapabilities
307+
{
308+
public CountCapabilities()
309+
{
310+
}
311+
312+
public virtual bool IsCountableTable()
313+
{
314+
return false;
315+
}
316+
317+
public virtual bool IsCountableAfterJoin()
318+
{
319+
return false;
320+
}
321+
322+
public virtual bool IsCountableAfterSummarize()
323+
{
324+
return false;
325+
}
326+
}
327+
302328
public sealed class FilterRestrictions
303329
{
304330
// List of required properties

src/libraries/Microsoft.PowerFx.Core/Public/Values/TableValue.cs

+9
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,15 @@ public interface IDelegatableTableValue
2828
/// <param name="cancel"></param>
2929
/// <returns></returns>
3030
Task<IReadOnlyCollection<DValue<RecordValue>>> GetRowsAsync(IServiceProvider services, DelegationParameters parameters, CancellationToken cancel);
31+
32+
/// <summary>
33+
/// Evaluation will invoke this method on delegated count calls.
34+
/// </summary>
35+
/// <param name="services">Pre-eval services.</param>
36+
/// <param name="parameters">Delegation parameters.</param>
37+
/// <param name="cancel"></param>
38+
/// <returns>Return total count of rows. Returns -1 if rows could not be counted.</returns>
39+
Task<int> GetCountAsync(IServiceProvider services, DelegationParameters parameters, CancellationToken cancel);
3140
}
3241

3342
/// <summary>

0 commit comments

Comments
 (0)