avram
avram copied to clipboard
Clean up the aggregate query methods
These methods are all over the place, and a bit confusing to read.
Here's the select_sum method
❯ ack "select_sum" src
src/avram/criteria.cr
143: def select_sum
src/avram/query_builder.cr
217: def select_sum(column : ColumnName)
src/avram/charms/float64_extensions.cr
63: def select_sum : Float64?
69: def select_sum! : Float64
src/avram/charms/int16_extensions.cr
49: def select_sum : Int64?
53: def select_sum! : Int64
src/avram/charms/int32_extensions.cr
50: def select_sum : Int64?
54: def select_sum! : Int64
src/avram/charms/int64_extensions.cr
48: def select_sum : Int64?
54: def select_sum! : Int64
Here's select_average
❯ ack "select_average" src
src/avram/criteria.cr
135: def select_average : Float64?
139: def select_average! : Float64
src/avram/query_builder.cr
213: def select_average(column : ColumnName)
And then select_count
❯ ack "select_count" src
src/avram/queryable.cr
229: def select_count : Int64
src/avram/query_builder.cr
201: def select_count
Some of these have !, some don't. Some are defined on the individual Type Criteria, some are on Criteria itself... I'd love to just get all of these in a single location, and have all of them defined the same way (and documented) so there's a bit more consistency.