avoid updating columns that haven't changed