alamb commented on a change in pull request #285:
URL: https://github.com/apache/arrow-datafusion/pull/285#discussion_r628545062



##########
File path: datafusion-cli/src/main.rs
##########
@@ -65,16 +77,91 @@ pub async fn main() {
         execution_config = execution_config.with_batch_size(batch_size);
     };
 
-    let mut ctx =
-        
ExecutionContext::with_config(execution_config.with_information_schema(true));
+    if let Some(file) = matches
+        .value_of("file")
+        .and_then(|file| File::open(&file).ok())

Review comment:
       I think the use of `ok()` silently ignore errors when opening the file 
and silently fallback to the repl. This leads to strange behavior for certain 
files, such as those that that exists, but I don't have permissions to read
   
   For a file such as this, I would expect `datafusion-cli` to generate an 
error about permissions:
   
   ```
   (arrow_dev) alamb@ip-10-0-0-124:~/Software/arrow-datafusion$ ls -l 
/tmp/foo.sql 
   --w-------  1 alamb  wheel     0B May  7 17:30 /tmp/foo.sql
   
   (arrow_dev) alamb@ip-10-0-0-124:~/Software/arrow-datafusion$ cat 
/tmp/foo.sql 
   cat: /tmp/foo.sql: Permission denied
   ```
   
   However, the code on this branch generates no error and instead drops into 
the interactive REPL loop
   
   ```
   (arrow_dev) alamb@ip-10-0-0-124:~/Software/arrow-datafusion$ 
./target/debug/datafusion-cli --file=/tmp/foo.sql
   > 
   
   ```
   




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to