usearrow::array::ArrayRef;useggsql::DataFrame;/// Find a DataFrame column by name, trying multiple names and falling back to
/// case-insensitive matching. This handles ODBC drivers that return uppercase
/// column names (e.g. `TABLE_NAME` instead of `table_name`).
pubfnfind_column<'a>(df:&'a DataFrame, names:&[&str])->Result<&'a ArrayRef, String>{// Try exact match first
for name in names {ifletOk(col)= df.column(name){returnOk(col);}}// Fall back to case-insensitive match
let col_names = df.get_column_names();for name in names {let lower = name.to_lowercase();for cn in&col_names {if cn.to_lowercase()== lower {return df.column(cn).map_err(|e|e.to_string());}}}Err(format!("Missing column (tried: {:?})", names))}