Commit Graph

4 Commits

Author SHA1 Message Date
Paul Holden bfabec2b65 MDL-84537 reportbuilder: pass options to aggregation type constructor.
Amendments to the column class allow reports/entities to specify these
options for column instances, which are then passed to the aggregation
type when it is applied.
2025-03-09 20:18:54 +00:00
Paul Holden 72421b1ed9 MDL-80173 reportbuilder: improve performance of date aggregation.
Due to Oracle re-factoring, we can improve the performance of date
aggregation by only executing the column supplied query once. We
can also improve the generated GROUP BY query to re-use the column
alias on supported DBs, rather than executing the aggregation again.
2025-02-18 13:43:34 +00:00
Paul Holden 952747912c MDL-83738 reportbuilder: allow aggregations to define calculated type.
This allows each class to define the type of data that they return,
regardless of the type of column to which they are applied. This is the
pre-cursor to work on graphing and filtering of aggregated data.

E.g. a text field that is aggregated with "count" is returning numeric
data rather than text.
2024-12-17 08:28:31 +00:00
Paul Holden 812975e218 MDL-83361 reportbuilder: date aggregation for timestamp columns.
This change introduces updates to the existing aggregation API, to
allow types to define whether to group by fields of a column to which
the aggregation is applied.

The new date aggregation utilises this, to allow for creation of time
series reports, e.g. report data grouped by dates.

Co-authored-by: Daniel Neis Araujo <danielneis@gmail.com>
2024-12-13 12:36:22 +00:00