Adapts the code to handle different API versions of the Arrow library for reading Parquet files.
It uses preprocessor directives to select the correct API based on the `ARROW_VERSION_MAJOR`.
This ensures compatibility with both older and newer versions of the Arrow library.
Updates parquet::arrow::OpenFile calls to use new API that returns
arrow::Result instead of taking an output parameter. Also updates
error message retrieval to use status().ToString() method.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>