Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for statistical aggregate functions #532

Closed
Tracked by #727
austindrenski opened this issue Jul 22, 2018 · 1 comment
Closed
Tracked by #727

Support for statistical aggregate functions #532

austindrenski opened this issue Jul 22, 2018 · 1 comment
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@austindrenski
Copy link
Contributor

austindrenski commented Jul 22, 2018

PostgreSQL supports a number of statistical aggregate functions that could be mapped to provider-specific extensions as in #323 and #407.

@austindrenski austindrenski added the enhancement New feature or request label Jul 22, 2018
@austindrenski austindrenski added this to the 2.2.0 milestone Jul 22, 2018
@austindrenski austindrenski self-assigned this Jul 22, 2018
@roji
Copy link
Member

roji commented Jul 22, 2018

That sounds great - any translations to SQL we can add improve the provider.

However, I'm not sure Math.NET is the right way to go here. The functions are both are pure calculations, providing as a result simple numbers. It would be easy to simply add them to EF.Functions, without forcing a plugin (and also Math.NET itself) on users, and be done with it.

The real value of plugins in the case of NodaTime and NTS is that they provide access to actual types that can be written and read from the database (and then used further client-side in the application). In this case. No such thing exists here - just a bunch of math functions to be translated. Another argument against Math.NET here is that it's likely to contain many more functions beyond what PostgreSQL can provide (I'm assuming), so the provider will only be able to translate a subset of them, which would be a bit confusing and not very good for discoverability.

We could also look into writing a plugin for Math.NET Numerics, which would provide client-side implementations when translation is not available.

If users want to use any functionality client-side, they can do so without any sort of support from the provider (that's the point of client-side evaluation :)).

@austindrenski austindrenski modified the milestones: 2.2.0, 3.0.0 Nov 15, 2018
@roji roji modified the milestones: 3.0.0, Backlog Aug 12, 2019
@roji roji added the blocked label Jan 31, 2022
@roji roji removed the blocked label May 27, 2022
@roji roji modified the milestones: Backlog, 7.0.0 May 27, 2022
@roji roji self-assigned this May 28, 2022
roji added a commit to roji/efcore.pg that referenced this issue May 28, 2022
roji added a commit to roji/efcore.pg that referenced this issue Jun 4, 2022
* string_agg (string.Join)
* array_agg
* json_agg/jsonb_agg
* json_object_agg/jsonb_object_agg
* range_agg, range_intersect_agg
* Aggregate statistics functions

Closes npgsql#532
roji added a commit to roji/efcore.pg that referenced this issue Jun 4, 2022
* string_agg (string.Join)
* array_agg
* json_agg/jsonb_agg
* json_object_agg/jsonb_object_agg
* range_agg, range_intersect_agg
* Aggregate statistics functions

Closes npgsql#2395
Closes npgsql#532
roji added a commit to roji/efcore.pg that referenced this issue Jun 24, 2022
* string_agg (string.Join)
* array_agg
* json_agg/jsonb_agg
* json_object_agg/jsonb_object_agg
* range_agg, range_intersect_agg
* Aggregate statistics functions

Closes npgsql#2395
Closes npgsql#532
roji added a commit to roji/efcore.pg that referenced this issue Jun 24, 2022
* string_agg (string.Join)
* array_agg
* json_agg/jsonb_agg
* json_object_agg/jsonb_object_agg
* range_agg, range_intersect_agg
* Aggregate statistics functions

Closes npgsql#2395
Closes npgsql#532
roji added a commit to roji/efcore.pg that referenced this issue Jul 9, 2022
* string_agg (string.Join)
* array_agg
* json_agg/jsonb_agg
* json_object_agg/jsonb_object_agg
* range_agg, range_intersect_agg
* Aggregate statistics functions

Closes npgsql#2395
Closes npgsql#532
@roji roji closed this as completed in 82a758c Jul 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants