mirror of
https://github.com/storytold/gridcraft.git
synced 2026-11-11 12:53:59 +00:00
* Get Data: refuse an import whose dense rows would be too large data.getData and data.fromTextCsv built every row densely before writing it: JSON records were padded to the union of all keys (found with a quadratic Vec::contains scan), and CSV cells were expanded over the whole used rectangle. A few sparse records or one far-away CSV cell therefore allocated billions of slots. The importer now collects JSON keys with a HashSet, refuses more keys than a sheet has columns, and checks the projected rows x columns against MAX_IMPORT_CELLS (10,000,000) before building any row. * address review: stop collecting JSON keys at the column limit and reject oversized row counts before building rows * address review: enforce the CSV import cell limit while parsing