Class: Masamune::Transform::Postgres::InsertReferenceValues::TargetPresenter
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- Masamune::Transform::Postgres::InsertReferenceValues::TargetPresenter
- Includes:
- LastElement
- Defined in:
- lib/masamune/transform/postgres/insert_reference_values.rb
Instance Method Summary collapse
- #insert_columns(source) ⇒ Object
- #insert_constraints(source) ⇒ Object
- #insert_values(source) ⇒ Object
Methods included from LastElement
Instance Method Details
#insert_columns(source) ⇒ Object
45 46 47 |
# File 'lib/masamune/transform/postgres/insert_reference_values.rb', line 45 def insert_columns(source) source.shared_columns(stage_table).map { |_, columns| columns.first.name } end |
#insert_constraints(source) ⇒ Object
60 61 62 |
# File 'lib/masamune/transform/postgres/insert_reference_values.rb', line 60 def insert_constraints(source) source.shared_columns(stage_table).reject { |column, _| column.null || column.default || column.adjacent.try(:default) }.map { |column, _| "#{column.name} IS NOT NULL" } end |
#insert_values(source) ⇒ Object
49 50 51 52 53 54 55 56 57 |
# File 'lib/masamune/transform/postgres/insert_reference_values.rb', line 49 def insert_values(source) source.shared_columns(stage_table).map do |column, _| if column.adjacent.try(:default) "COALESCE(#{column.name}, #{column.adjacent.sql_value(column.adjacent.default)})" else column.name end end end |