{"record":{"id":"3be6d6b71391b284","repo":"nautechsystems/nautilus_trader","slug":"warning-statistics-not-available-for-column-col","errorCode":null,"errorMessage":"Warning: Statistics not available for column '{column_name}' in row group {i}.","messagePattern":"Warning: Statistics not available for column '(.+?)' in row group (.+?)\\.","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/persistence/src/parquet.rs","lineNumber":453,"sourceCode":"                    if let Statistics::Int64(int64_stats) = stats {\n                        // Extract min value if available\n                        if let Some(&min_value) = int64_stats.min_opt()\n                            && overall_min_value.is_none_or(|overall_min| min_value < overall_min)\n                        {\n                            overall_min_value = Some(min_value);\n                        }\n\n                        // Extract max value if available\n                        if let Some(&max_value) = int64_stats.max_opt()\n                            && overall_max_value.is_none_or(|overall_max| max_value > overall_max)\n                        {\n                            overall_max_value = Some(max_value);\n                        }\n                    } else {\n                        anyhow::bail!(\"Warning: Column name '{column_name}' is not of type i64.\");\n                    }\n                } else {\n                    anyhow::bail!(\n                        \"Warning: Statistics not available for column '{column_name}' in row group {i}.\"\n                    );\n                }\n            }\n        }\n    }\n\n    // Return the min/max pair if both are available\n    if let (Some(min), Some(max)) = (overall_min_value, overall_max_value) {\n        Ok((\n            u64::try_from(min).map_err(|_| {\n                anyhow::anyhow!(\"Negative minimum value {min} for column '{column_name}'\")\n            })?,\n            u64::try_from(max).map_err(|_| {\n                anyhow::anyhow!(\"Negative maximum value {max} for column '{column_name}'\")\n            })?,\n        ))\n    } else {","sourceCodeStart":435,"sourceCodeEnd":471,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/persistence/src/parquet.rs#L435-L471","documentation":"min_max_from_parquet_metadata_object_store needs per-row-group min/max statistics for the timestamp column to compute file bounds. If a row group lacks statistics for that column, it bails with this message, because the file's true min/max cannot be determined from metadata alone.","triggerScenarios":"Reading a Parquet file written with statistics disabled (set_statistics_enabled(false)), files written by external tools without column statistics, or a column name that doesn't exist in the row group schema.","commonSituations":"Files produced by pyarrow with stats disabled for size/speed; catalogs repacked by third-party tools; passing a wrong column name so statistics look 'unavailable'.","solutions":["Rewrite the file with column statistics enabled (nautilus' writer enables them by default).","Verify the column name matches the actual timestamp column in the schema.","Recompute the file bounds by reading the data instead of metadata, then rebuild/reset names accordingly.","Re-export the data from the original writer with default statistics settings."],"exampleFix":"// before — writing without stats\nwriter_properties.set_statistics_enabled(false);\n// after\nlet props = WriterProperties::builder().build(); // stats enabled by default","handlingStrategy":"validation","validationCode":"let meta = reader.metadata()?;\nlet rg0 = meta.row_group(0);\nlet has_stats = rg0.column(0).statistics().is_some();\nif !has_stats {\n    eprintln!(\"file written without column statistics; rewrite before reset_file_names\");\n}","typeGuard":null,"tryCatchPattern":"match min_max_from_parquet_metadata(meta, col) {\n    Err(e) if e.to_string().contains(\"Statistics not available\") => {\n        // rewrite the file with statistics enabled, then retry\n    }\n    other => other?,\n}","preventionTips":["Keep WriterProperties defaults (statistics enabled).","Verify statistics presence when ingesting files written by third-party tools.","Never disable column statistics for catalog timestamp columns."],"tags":["rust","parquet","statistics","metadata"],"backgroundTag":"missing-required-config-field","analyzedSha":"18893faf8b356be3320add8de2f861b0b647cf06","analyzedAt":"2026-09-08T20:49:34.690Z","contentChangedAt":"2026-09-08T20:49:34.690Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}