The GitHub Actions job "C++ Linter" on 
iceberg-cpp.git/data_file_writers_factory_new has failed.
Run started by GitHub user shangxinli (triggered by shangxinli).

Head commit for run:
ef134330d98b777c8c8feb8b367d11c98eb7e131 / Xinli Shang <[email protected]>
feat: add FileWriterFactory with separated writer files

Reorganize writer files and add comprehensive improvements per review feedback.

File Organization:
- Separate PositionDeleteWriter into its own .h/.cc files
- Separate EqualityDeleteWriter into its own .h/.cc files
- Keep DataWriter in writer.h/.cc as the main writer
- Use internal factory functions to handle cross-file construction

High Priority Improvements:
- Fix parameter passing: Use pass-by-value + std::move for sink parameters
- Add input validation: Validate schema, spec, path, and equality_field_ids
- Add thread safety documentation: Document that factory and writers are NOT 
thread-safe

Medium Priority Improvements:
- Add state management to stubs: Track is_closed state, validate operations
- Improve WriteResult documentation: Document when multiple files are produced

Implementation Details:
- FileWriterFactory directly creates writers (true factory pattern)
- Writers use friend pattern - only factory can construct them
- Internal MakeXxxInternal functions handle cross-file construction
- Stub implementations validate inputs and state before returning NotImplemented
- All 23 tests passing
- All pre-commit checks passing (clang-format, cmake-format)

Related to #441

Report URL: https://github.com/apache/iceberg-cpp/actions/runs/20621939018

With regards,
GitHub Actions via GitBox

Reply via email to