Commit Graph

13 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 b45d17ca30 MDL-80173 reportbuilder: remove various Oracle support/workarounds.
"True happiness is to rejoice in the
        <removal of Oracle compatibility>."

Reference: ba1f9cb2, 892b68d5, c63af985, 208adcf3, 9a244403, 3894fa94,
62d22c66, 628541b5, 429508a7.
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
Paul Holden 650b6caf83 MDL-77201 reportbuilder: pass current aggregation to column callbacks. 2023-02-14 11:03:03 +00:00
Paul Holden 85544709d0 MDL-74656 reportbuilder: cast fields to char on mssql during concat. 2022-07-27 08:12:34 +01:00
Paul Holden 5582bc2ded MDL-74656 reportbuilder: ensure nulls preserved in column callbacks.
When concatenating column fields in order to perform aggregation on
them (e.g. group concatenation), we need to preserve all null values
in the data passed to each column callback.

Co-authored-by: Carlos Castillo <carlos.castillo@moodle.com>
2022-07-19 08:23:54 +01:00
Paul Holden f9b4611156 MDL-72184 reportbuilder: make use of new methods moved to drivers. 2022-06-12 19:31:34 +01:00
Paul Holden ea45aefe62 MDL-74675 reportbuilder: preserve column type during aggregation.
When applying callbacks during the group concatenation aggregation
types, ensure the column type is preserved for it's default value.
2022-05-19 16:04:37 +01:00
Paul Holden eb2e261df4 MDL-73706 reportbuilder: fix count for columns with multiple fields.
When using the "Count distinct" aggregation type on a column that
selects multiple fields, we should account for each of them in the
returned SQL.

Move helper method to facilitate this to the base aggregation class
so it can be re-used between all types.
2022-01-28 15:38:40 +00:00
Paul Holden 5ec86bf501 MDL-72663 reportbuilder: improvements to column aggregation methods.
The group concatenation types now consistently sort the returned values
and support aggregating columns containing multiple fields and those
with defined callbacks.
2021-10-22 16:17:31 +01:00
Paul Holden 16a65f73e7 MDL-72663 reportbuilder: column API changes to improve aggregation.
Refinements to how columns can be defined in relation to available
aggregation methods:

* Disable aggregation types;
* Set column GROUP BY during aggregation;
* Defer column sorting to that of the aggregation method
2021-10-22 16:17:17 +01:00
Paul Holden f47e89a9bd MDL-70795 reportbuilder: editor elements to set column aggregation.
Aggregation of report columns allows the report editor to perform
common types of data aggregation (concatenation, sum, count, etc)
on given columns.
2021-10-19 13:56:05 +01:00