Skip to content

More Tweaks - #195

Draft
mukunku wants to merge 34 commits into
v4.3.0-releasefrom
small-tweaks
Draft

mukunku wants to merge 34 commits into
v4.3.0-releasefrom
small-tweaks

Conversation

@mukunku

@mukunku mukunku commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

This PR contains some changes to the ParquetNET engine to support more files.

This PR also has some other tweaks. I'll probably release this as v4.3.1 soon

@github-actions

github-actions Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Unit Test Results

✔️ Tests 164 / 169 (0 failed, 5 skipped) - passed in 5s
🔍 click here for more details

✏️ updated for commit 64457a7

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Nested-data loss, export correctness issues, and undisposed preview images remain unresolved.

4 open issues
What changed in this PR

Expands ParquetNET’s support for nested data and previously skipped files, alongside viewer usability and error-handling updates.

Changes:

  • Reworks nested list, struct, and map decoding and preserves unsigned array types.
  • Adds regression tests and removes remaining ParquetNET file-test skips.
  • Updates date-format validation, preview reuse, loading controls, and exception handling.
File Description
src/​ParquetViewer/​MainForm.Helpers.cs Updates loading controls and export error handling.
src/​ParquetViewer/​MainForm.cs Handles memory and access failures.
src/​ParquetViewer/​Helpers/​UtilityMethods.cs Validates and cleans date/time formats.
src/​ParquetViewer/​Helpers/​SemanticVersion.cs Refines version equality and comparison contracts.
src/​ParquetViewer/​Helpers/​ExtensionMethods.cs Returns wrapped Hugging Face image data.
src/​ParquetViewer/​CustomDateFormatInputForm.cs Uses stricter format validation.
src/​ParquetViewer/​Controls/​ParquetGridView.cs Reuses and restores preview windows.
src/​ParquetViewer/​AppSettings.cs Validates stored custom formats.
src/​ParquetViewer.Tests/​MetadataViewerTests.cs Updates struct expectations and assertions.
src/​ParquetViewer.Tests/​ListValueBuilderTests.cs Tests nested null and empty lists.
src/​ParquetViewer.Tests/​HelperTests.cs Checks formatting across cultures.
src/​ParquetViewer.Tests/​EngineTests.cs Adds regressions and removes engine skips.
src/​ParquetViewer.Engine.ParquetNET/​Types/​StructValue.cs Removes the engine-specific struct wrapper.
src/​ParquetViewer.Engine.ParquetNET/​ParquetViewer.Engine.ParquetNET.csproj Retains the Types folder entry.
src/​ParquetViewer.Engine.ParquetNET/​ParquetSchemaElement.cs Caches levels and updates struct classification.
src/​ParquetViewer.Engine.ParquetNET/​ParquetEngine.Processor.cs Reworks nested collection reconstruction.
src/​ParquetViewer.Engine.ParquetNET/​ParquetColumnData.cs Preserves signed and unsigned array types.
src/​ParquetViewer.Engine.ParquetNET/​MapValueBuilder.cs Adds recursive map reconstruction.
src/​ParquetViewer.Engine.ParquetNET/​LogicalTypeMetadataResolver.cs Extracts logical-type metadata conversion.
src/​ParquetViewer.Engine.ParquetNET/​ListValueBuilder.cs Revises nested-list level handling.
src/​ParquetViewer.Engine.ParquetNET/​Helpers.cs Removes obsolete level helpers.
src/​ParquetViewer.Engine.ParquetNET/​FieldLevels.cs Centralizes repetition and definition levels.

Review effort: Balanced

Comment thread src/ParquetViewer.Engine.ParquetNET/ParquetEngine.Processor.cs
Comment thread src/ParquetViewer/MainForm.Helpers.cs
Comment thread src/ParquetViewer/MainForm.Helpers.cs Outdated
Comment thread src/ParquetViewer/Controls/ParquetGridView.cs

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Partial reads introduce substantial avoidable memory allocations, and filtered or sorted XLSX exports copy data on the UI thread.

3 open issues
4 resolved since last review

Review effort: Balanced

var valueColumn = await ReadColumnAsync(groupReader, valueField, cancellationToken);
return new MapValueBuilder(parentRepetitionBoundary, keyField.Levels, keyColumn.RepetitionLevels,
keyColumn.DefinitionLevels, keyValues, keyField.ClrType, valueField.ClrType,
valueValues: valueColumn.Data.ToArray());
rows.Add(currentRow);

var dataEnumerable = Engine.Helpers.PairEnumerables(keyDataEnumerable, valueDataEnumerable, DBNull.Value);
return rows.Skip((int)skipRecords).Take((int)readRecords).ToList();
Comment thread src/ParquetViewer/MainForm.Helpers.cs Outdated

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants