Class: Masamune::Transform::Postgres::RollupFact::TargetPresenter
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- Masamune::Transform::Postgres::RollupFact::TargetPresenter
- Includes:
- LastElement
- Defined in:
- lib/masamune/transform/postgres/rollup_fact.rb
Instance Method Summary collapse
- #group_by(source) ⇒ Object
- #insert_columns(source) ⇒ Object
- #insert_values(source) ⇒ Object
- #join_conditions(source) ⇒ Object
Methods included from LastElement
Instance Method Details
#group_by(source) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/masamune/transform/postgres/rollup_fact.rb', line 83 def group_by(source) group_by = [] group_by << calculated_date_key(source) shared_columns(source).values.map do |columns| column = columns.first next unless column.reference next if column.reference.type == :date next if column.auto_reference group_by << column.qualified_name end group_by << calculated_time_key(source) group_by end |
#insert_columns(source) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/masamune/transform/postgres/rollup_fact.rb', line 42 def insert_columns(source) values = [] shared_columns(source).values.map do |columns| column = columns.first next if column.id == :last_modified_at next if column.auto_reference values << column.name end measures.each do |_, measure| values << measure.name end values << time_key.name values.compact end |
#insert_values(source) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/masamune/transform/postgres/rollup_fact.rb', line 57 def insert_values(source) values = [] values << calculated_date_key(source) shared_columns(source).values.map do |columns| column = columns.first next unless column.reference next if column.reference.type == :date next if column.auto_reference values << column.qualified_name end source.measures.each do |_, measure| values << measure.aggregate_value end values << calculated_time_key(source) values end |
#join_conditions(source) ⇒ Object
75 76 77 78 79 80 81 |
# File 'lib/masamune/transform/postgres/rollup_fact.rb', line 75 def join_conditions(source) { source.date_column.reference.name => [ "#{source.date_column.reference.surrogate_key.qualified_name} = #{source.date_column.qualified_name}" ] } end |