def load
current_type = LONG_TYPES[type]
org_key = new_key || key
org_key = session.send(database).primary_key_names(table).map do |key_name|
"#{key_name}#{key_sep}#{org_key[key_name]}"
end.join(key_sep)
current_key = org_key
while change = loader.load(table, current_key)
new_type = change['change_type']
current_type = TYPE_CHANGES["#{current_type}#{new_type}"]
self.first_changed_at ||= change['change_time']
self.last_changed_at = change['change_time']
if change['change_type'] == 'U' and change['change_new_key'] != current_key
current_key = change['change_new_key']
end
end
self.type = SHORT_TYPES[current_type]
self.new_key = nil
if type == :update
self.key ||= key_to_hash(org_key)
self.new_key = key_to_hash(current_key)
else
self.key = key_to_hash(current_key)
end
end