You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
DatasetReader ignores UnmarshalOptions::max_bytes_literal_length when it parses a row #160
DatasetReader::Create(src, opts) reads rows under the default MaxBytesLiteralLength, not opts.max_bytes_literal_length. So a caller who lowers the limit still gets a row whose b"…" cell is past it, and a caller who raises it gets that cell refused.
StatusOr<DatasetRow> ParseDatasetRow(std::string_view row, int expected, int max_depth) {
Parser p(row, max_depth, kMaxBytesLiteralLength);
Only the depth reaches the row parser. protowire-go applies the caller's limit to rows (encoding/pxf/dataset_stream.go at 903b4a7: lexer{..., maxBytesLiteral: tr.lim.maxBytesLiteral, ...}).
Measured
Through protowire-python's DatasetReader.from_bytes(data, max_bytes_literal_length=191) (trendvidia/protowire-python#36), which passes the limit to Create: on @dataset lim.H (b) with a row holding a 192-byte b"…" cell, next_or_none() returns the row. The same literal through pxf::Unmarshal at 191 is refused with bytes literal decodes to more than MaxBytesLiteralLength=191 bytes.
Done when: ParseDatasetRow takes the bytes limit, DatasetReader passes opts_.max_bytes_literal_length (0 → default), and a test lowers it on a row. protowire-python pins the current behaviour in an xfail test that flips when this lands.
protowire-python now builds on v2.1.0 (trendvidia/protowire-python#46, merged as a1a1d70). The strict xfail pinned for this issue (test_dataset_reader_reads_rows_under_its_limits) passes and has been removed. It still fails on a v2.0.0 build.
Activity
pxf: DatasetReader parses its header under the caller's limits (#160)
pxf: DatasetReader reads under the caller's bytes and depth limits (#160
release: cut v2.1.0
release: cut v2.1.0 (#175)
bfrancojr commentedon Nov 7, 2026
protowire-python now builds on v2.1.0 (trendvidia/protowire-python#46, merged as a1a1d70). The strict xfail pinned for this issue (
test_dataset_reader_reads_rows_under_its_limits) passes and has been removed. It still fails on a v2.0.0 build.