Releases: vincentlaucsb/csv-parser
Releases · vincentlaucsb/csv-parser
CSV Parser 2.2.0
- Fixed bug which caused inaccurate serialization of floating point values in CSV Writer as reported by #188
- Bug affected numbers close to 10 ^n; was caused by usage of inaccurate
std::log()
function (see: https://stackoverflow.com/questions/1489830/efficient-way-to-determine-number-of-digits-in-an-integer)
- Bug affected numbers close to 10 ^n; was caused by usage of inaccurate
- Fixed issue where strings consisting of numbers and dashes (e.g. phone numbers) were inaccurately identified as integers
- Silenced some compiler warnings
CSV Parser 2.1.3
- Fix various compatibility issues with g++ and clang
- Added hex value parsing
- Fixed a rare out-of-bounds condition
CSV Parser 2.1.2
- Fixed compilation issues with C++11 and 14.
- CSV Parser should now be should C++11 compatible once again with g++ 7.5 or up
- Allowed users to customize decimal place precision when writing CSVs
- Fixed floating point output
- Arbitrarily large integers stored in doubles can now be output w/o limits
- Fixed newlines not being escaped by
CSVWriter
CSV Parser 2.1.1
- Fixed CSVStats only processing first 5000 rows thanks to @TobyEalden
- Fixed parsing """fields like this""" thanks to @rpadrela
- Fixed CSVReader move semantics thanks to @artpaul
Minor Patch
Better, faster, stronger
New Features
CSVReader
can now parse from memory mapped files,std::stringstream
, andstd::ifstream
DelimWriter
now supports writing rows encoded asstd::tuple
DelimWriter
automatically converts numbers and other data types stored in vectors, arrays, and tuples
Improvements
CSVReader
is now a no-copy parser when memory-mapped IO is usedCSVRow
andCSVField
now refer to the original memory map
- Significant performance improvements for some files
Bug Fixes
- Fixed potential thread safety issues with
internals::CSVFieldList
API Changes
CSVReader::feed()
andCSVReader::end_feed()
have been removed. In-memory parsing should be performed via the interface forstd::stringsteam
.
CSV Parser 2.0.1
- Made parsing CSV files without header rows more convenient
- Fixed a compilation error with
std::back_inserter
on some systems
CSV Parser 2.0.0
- Parser now uses memory-mapped IO for reading from disk thanks to
mio
- CSV files are read in smaller chunks to reduce memory footprint (but parsing is significantly faster)
CSVReader::read_row()
(andCSVReader::iterator
) no longer blocksCSVReader::read_csv()
, i.e. we can now simultaneously work on CSV data while reading more rows- Parser internals completely rewritten to use more efficient and easier to maintain/debug data structures
- Fixed bug where single column files could not be parsed
- Fixed errors with parsing empty files
CSVWriter::write_row()
now works withstd::array
CSV Parser 2.0 Beta: >300 MBps Edition
- Parser now uses memory-mapped IO for reading from disk
- On Windows, parser may map entire file into memory or mmap chunks of file iteratively based on available RAM (will extend to all OSes)
- Parser internals completely rewritten to use more efficient and easier to maintain/debug data structures
- New algorithm involves minimal copying
- Fixed bug where single column files could not be parsed
- Fixed errors with parsing empty files
Fixed memory errors when parsing large files
- Fixed issue with incorrect usage of
string_view
that led to memory errors when parsing large files such as the 1.4GB Craigslist vehicles dataset #90 - Added ability to have no quote character #83
- Changed
VariableColumnPolicy::IGNORE
toIGNORE_ROW
to avoid clashing withIGNORE
macro as defined byWinBase.h
#96