Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-11323

[Rust][DataFusion] ComputeError("concat requires input of at least one array")) with queries with ORDER BY or GROUP BY that return no

    XMLWordPrintableJSON

Details

    Description

      If you run a SQL query in datafusion which has predicates that produces no rows that also includes a GROUP BY or ORDER BY clause, you get the following error:

      Error of "ArrowError(ComputeError("concat requires input of at least one array"))"

      Here are two test cases that show the problem: https://github.com/apache/arrow/blob/master/rust/datafusion/src/execution/context.rs#L889

          #[tokio::test]
          async fn sort_empty() -> Result<()> {
              // The predicate on this query purposely generates no results
              let results =
                  execute("SELECT c1, c2 FROM test WHERE c1 > 100000 ORDER BY c1 DESC, c2 ASC", 4).await?;
              assert_eq!(results.len(), 0);
              Ok(())
          }
      
      
          #[tokio::test]
          async fn aggregate_empty() -> Result<()> {
              // The predicate on this query purposely generates no results
              let results = execute("SELECT SUM(c1), SUM(c2) FROM test where c1 > 100000", 4).await?;
              assert_eq!(results.len(), 0);
              Ok(())
          }
      
      

      Attachments

        Issue Links

          Activity

            People

              alamb Andrew Lamb
              alamb Andrew Lamb
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1.5h
                  1.5h