avram icon indicating copy to clipboard operation
avram copied to clipboard

Clean up the aggregate query methods

Open jwoertink opened this issue 4 years ago • 0 comments

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.

jwoertink avatar Nov 21 '21 22:11 jwoertink