Issue #9143 has been updated by avit (Andrew Vit).

File csv-freeze-headers-2.patch added

Thanks nobu, I write too much RSpec lately.

Updated patch attached: I also added freeze in Row#initialize, not sure if both places are needed, or which is better. Please review.
----------------------------------------
Feature #9143: Optimize CSV to share hash key objects between rows
https://bugs.ruby-lang.org/issues/9143#change-43122

Author: avit (Andrew Vit)
Status: Open
Priority: Normal
Assignee: 
Category: lib
Target version: 


Currently, when CSV headers are strings, then each row receives a copy of the strings for hash keys. This patch is an optimization to share the same frozen string keys between all rows.

Please verify: in the implementation of `Hash::[]`, are strings the only object that is dup'd, or should other types be frozen so they aren't copied for each row too?


-- 
http://bugs.ruby-lang.org/