please change this line and the next to:
```
columns_to_remove += partition_keys.flatten.map{|k| k.to_sym} if respond_to?(:partition_keys)
options[:set_array] = '"' + (column_names - columns_to_remove).map{|cn| "#{cn} = datatable.#{cn}"}.join(',') + '"'
```

confirm you believe this a reasonable alternative
test it with your case

and resubmit -- I'll merge the pull request immediately.

Thank you!