check data is changed in set_column and add is_changed method

無用なアップデートを避けるため、データに変更があったかどうかを確認してからdirtyフラグを付けるようにしたいです。