lib/pg_graph/data/render.rb in pg_graph-0.5.0 vs lib/pg_graph/data/render.rb in pg_graph-0.5.1
- old
+ new
@@ -83,11 +83,11 @@
def to_s(files = @files)
case format
when :sql; to_a.join("\n")
when :exec; to_a.join("\n")
- when :psql; to_psql(files).map { |group| group.join("\n") }.join("\n\n")
+ when :psql; to_psql(files).map { |group| group.join("\n") }.join("\n\n")
end
end
def to_h
@to_h ||= {
@@ -132,11 +132,11 @@
"\\set QUIET",
"\\set ON_ERROR_STOP"
]
end
- def render_begin()
+ def render_begin()
[ "begin;" ]
end
def render_truncate()
@tables.empty? ? [] : [ "truncate #{@tables.map(&:uid).join(", ")} restart identity cascade;" ]
@@ -152,11 +152,11 @@
tables = @with_deletes ? @tables : @tables.reject(&:empty?)
tables.map { |table| "alter table #{table.uid} #{arg} trigger all;" }
end
def render_deletes(kind)
- table_uids =
+ table_uids =
case kind
when :none; []
when :touched; @tables.reject(&:empty?).map(&:uid)
when :recursive
tables = @tables.reject(&:empty?)
@@ -175,11 +175,11 @@
end
}
end
def render_truncates(kind)
- table_uids =
+ table_uids =
case kind
when :none; []
when :touched; @tables.reject(&:empty?).map(&:uid)
when :all; @tables.map(&:uid)
else
@@ -188,16 +188,28 @@
table_uids.map { |uid| "truncate #{uid} cascade;" }
end
def render_updates
@update_records.map { |record|
- "update #{record.table.uid} set " \
- + record.value_columns
- .select { |column| !column.type.primary_key? }
- .map { |column| "#{column.name} = #{render_value(column)}" }
- .join(", ") + " " \
- + "where id = #{record.id};"
+ # Temporary fix for the case where a kind field is updated. Kind fields
+ # are not considered value_columns (!) so kind fields are skipped in
+ # the original code below. FIXME FIXME FIXME
+ "update #{record.table.uid} set " +
+ record.to_h.keys
+ .map { |key| record[key] }
+ .reject { |column| column.type.primary_key? }
+ .map { |column|
+ "#{column.name} = #{render_value(column)}"
+ }.join(", ") + " " \
+ + "where id = #{record.id};"
+
+# "update #{record.table.uid} set " \
+# + record.value_columns
+# .select { |column| !column.type.primary_key? }
+# .map { |column| "#{column.name} = #{render_value(column)}" }
+# .join(", ") + " " \
+# + "where id = #{record.id};"
}
end
def render_inserts
@insert_records.map { |table, records|
@@ -260,10 +272,10 @@
else
@materialized_views.map { |view| "refresh materialized view #{view.uid};" }
end
end
- def render_commit()
+ def render_commit()
[ "commit;" ]
end
end
end