Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Review use of panics in datafusion-row crate #3317

Closed
andygrove opened this issue Sep 1, 2022 · 3 comments
Closed

Review use of panics in datafusion-row crate #3317

andygrove opened this issue Sep 1, 2022 · 3 comments
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@andygrove
Copy link
Member

andygrove commented Sep 1, 2022

Is your feature request related to a problem or challenge? Please describe what you are trying to do.

"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/accessor.rs":234             _ => unreachable!(),
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/jit/reader.rs":139                 _ => unimplemented!(),
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/jit/reader.rs":158                 _ => unimplemented!(),
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/jit/writer.rs":207         _ => unimplemented!(),
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/layout.rs":160         _ => unreachable!(),
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/reader.rs":71         $NATIVE::from_le_bytes($SELF.data[start..end].try_into().unwrap())
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/reader.rs":84                 $NATIVE::from_le_bytes(self.data[start..end].try_into().unwrap())
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/reader.rs":302                     .unwrap();
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/reader.rs":310                     .unwrap();
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/reader.rs":337     let to = to.as_any_mut().downcast_mut::<BinaryBuilder>().unwrap();
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/reader.rs":350     let to = to.as_any_mut().downcast_mut::<BinaryBuilder>().unwrap();
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/reader.rs":377         _ => unimplemented!(),
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/reader.rs":404         _ => unimplemented!(),
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/writer.rs":304                     .unwrap();
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/writer.rs":329     let from = from.as_any().downcast_ref::<Date32Array>().unwrap();
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/writer.rs":339     let from = from.as_any().downcast_ref::<Date64Array>().unwrap();
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/writer.rs":349     let from = from.as_any().downcast_ref::<StringArray>().unwrap();
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/writer.rs":364     let from = from.as_any().downcast_ref::<BinaryArray>().unwrap();
"/home/andy/git/apache/arrow-datafusion/datafusion/row/src/writer.rs":397         _ => unimplemented!(),

Describe the solution you'd like
Review code that can panic and see where it makes sense to return a Result instead. For example, It is generally better to use ? than unwrapon results.

The goal is not to remove all panics but review and make sure we are using them appropriately. Bonus points for adding documentation for invariants.

Describe alternatives you've considered
None

Additional context
Generated by https://github.com/andygrove/no-need-to-panic

@andygrove andygrove added enhancement New feature or request good first issue Good for newcomers labels Sep 1, 2022
@askoa
Copy link
Contributor

askoa commented Sep 2, 2022

Can I take a stab at this? Also, is the error type DataFusionError::Internal okay to return instead of panic?

@andygrove andygrove changed the title Remove panics from datafusion-row crate Review use of panics in datafusion-row crate Sep 2, 2022
@qrilka
Copy link
Contributor

qrilka commented Oct 3, 2023

In #3354 (comment) it's said that

panic seems acceptable approach for read_field* functions.

If that's valid then is this ticket still needed? BTW no-need-to-panic seems to be gone...

@alamb
Copy link
Contributor

alamb commented Oct 4, 2023

Indeed in fact I think datafusion-row was removed a while ago, so this ticket is no longer relevant. Thanks @qrilka

@alamb alamb closed this as completed Oct 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

4 participants