A Base class to inherit from for creating your own SQL aggregate functions in ruby.
These are SQL functions similar to _max(X)_, _count(X)_, _avg(X)_. The built in SQLite aggregate functions are:
If you choose to use Aggregate as a parent class of your SQL scalar function implementation you must:
implement initalize with 0 arguments
set the @arity data member
set the @name data member
implement step with arity of +@arity+
implement finalize with arity of 0
For instance to implement a unique_word_count(X) aggregate function you could implement it as:
class UniqueWordCount < ::Amalgalite::Aggregate attr_accessor :words def initialize @name = 'unique_word_count' @arity = 1 @words = Hash.new { |h,k| h[k] = 0 } end def step( str ) str.split(/\W+/).each do |word| words[ word.downcase ] += 1 end return nil end def finalize return words.size end end
Generated with the Darkfish Rdoc Generator 2.