alamb opened a new issue, #13748:
URL: https://github.com/apache/datafusion/issues/13748

   ### Describe the bug
   
   Our internal system generates queries that look like the following
   
   ```sql
   select c1, null as c2, ... null as cn from t ORDER BY c1
      UNION ALL
    select null as c1, c2, ... null as cn from t ORDER BY c2
    ...
    select null as c1, null as c2, ... cn from t ORDER BY cn
     ORDER BY c1, c2 ... CN
   ```
   
   When there are 10 columns this takes 22 ms (in release mode) to plan (which 
is still quite a while)
   
   When there are 100 columns, it takes over 2 minutes (!!) to plan, which 
basically caused two production incidents
   
   
   Here are some timings with numbers of columns (you can see the exponential 
growth):
   
   Running with 10 columns...completed in 22.65575ms
   Running with 20 columns...completed in 107.885ms
   Running with 30 columns...completed in 481.31775ms
   Running with 40 columns...completed in 1.656844042s
   Running with 50 columns...completed in 4.560470708s
   Running with 60 columns...completed in 10.54814975s
   Running with 70 columns...completed in 21.993968458s
   Running with 80 columns...completed in 41.614843209s
   Running with 90 columns...completed in 73.642939542s
   Running with 100 columns...completed in 123.150163417s
   
   
   ### To Reproduce
   
   
   With this data file (has 100 columns): 
[data.csv](https://github.com/user-attachments/files/18117240/data.csv)
   
   
   ## Create Table
   ```sql
   CREATE EXTERNAL TABLE t STORED AS CSV LOCATION 'data.csv' WITH ORDER (c1)
   ```
   
   ## Run query
   40 column version (this takes over a second to plan in release mode)
   ```
   (SELECT c0, null as c1, null as c2, null as c3, null as c4, null as c5, null 
as c6, null as c7, null as c8, null as c9, null as c10, null as c11, null as 
c12, null as c13, null as c14, null as c15, null as c16, null as c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c0)
     UNION ALL
   (SELECT null as c0, c1, null as c2, null as c3, null as c4, null as c5, null 
as c6, null as c7, null as c8, null as c9, null as c10, null as c11, null as 
c12, null as c13, null as c14, null as c15, null as c16, null as c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c1)
     UNION ALL
   (SELECT null as c0, null as c1, c2, null as c3, null as c4, null as c5, null 
as c6, null as c7, null as c8, null as c9, null as c10, null as c11, null as 
c12, null as c13, null as c14, null as c15, null as c16, null as c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c2)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, c3, null as c4, null as c5, null 
as c6, null as c7, null as c8, null as c9, null as c10, null as c11, null as 
c12, null as c13, null as c14, null as c15, null as c16, null as c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c3)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, c4, null as c5, null 
as c6, null as c7, null as c8, null as c9, null as c10, null as c11, null as 
c12, null as c13, null as c14, null as c15, null as c16, null as c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c4)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, c5, null 
as c6, null as c7, null as c8, null as c9, null as c10, null as c11, null as 
c12, null as c13, null as c14, null as c15, null as c16, null as c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c5)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, c6, null as c7, null as c8, null as c9, null as c10, null as c11, null as 
c12, null as c13, null as c14, null as c15, null as c16, null as c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c6)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, c7, null as c8, null as c9, null as c10, null as c11, null as 
c12, null as c13, null as c14, null as c15, null as c16, null as c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c7)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, c8, null as c9, null as c10, null as c11, null as 
c12, null as c13, null as c14, null as c15, null as c16, null as c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c8)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, c9, null as c10, null as c11, null as 
c12, null as c13, null as c14, null as c15, null as c16, null as c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c9)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, c10, null as c11, null as 
c12, null as c13, null as c14, null as c15, null as c16, null as c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c10)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, c11, null as 
c12, null as c13, null as c14, null as c15, null as c16, null as c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c11)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
c12, null as c13, null as c14, null as c15, null as c16, null as c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c12)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, c13, null as c14, null as c15, null as c16, null as c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c13)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, c14, null as c15, null as c16, null as c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c14)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, c15, null as c16, null as c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c15)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, c16, null as c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c16)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, c17, null as 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c17)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
c18, null as c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c18)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, c19, null as c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c19)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, c20, null as c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c20)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, c21, null as c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c21)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, c22, null as c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c22)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, null as c22, c23, null as 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c23)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, null as c22, null as c23, 
c24, null as c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c24)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, null as c22, null as c23, 
null as c24, c25, null as c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c25)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, null as c22, null as c23, 
null as c24, null as c25, c26, null as c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c26)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, null as c22, null as c23, 
null as c24, null as c25, null as c26, c27, null as c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c27)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, null as c22, null as c23, 
null as c24, null as c25, null as c26, null as c27, c28, null as c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c28)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, null as c22, null as c23, 
null as c24, null as c25, null as c26, null as c27, null as c28, c29, null as 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c29)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, null as c22, null as c23, 
null as c24, null as c25, null as c26, null as c27, null as c28, null as c29, 
c30, null as c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c30)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, null as c22, null as c23, 
null as c24, null as c25, null as c26, null as c27, null as c28, null as c29, 
null as c30, c31, null as c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c31)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, null as c22, null as c23, 
null as c24, null as c25, null as c26, null as c27, null as c28, null as c29, 
null as c30, null as c31, c32, null as c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c32)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, null as c22, null as c23, 
null as c24, null as c25, null as c26, null as c27, null as c28, null as c29, 
null as c30, null as c31, null as c32, c33, null as c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c33)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, null as c22, null as c23, 
null as c24, null as c25, null as c26, null as c27, null as c28, null as c29, 
null as c30, null as c31, null as c32, null as c33, c34, null as c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c34)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, null as c22, null as c23, 
null as c24, null as c25, null as c26, null as c27, null as c28, null as c29, 
null as c30, null as c31, null as c32, null as c33, null as c34, c35, null as 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c35)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, null as c22, null as c23, 
null as c24, null as c25, null as c26, null as c27, null as c28, null as c29, 
null as c30, null as c31, null as c32, null as c33, null as c34, null as c35, 
c36, null as c37, null as c38, null as c39 FROM t ORDER BY c36)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, null as c22, null as c23, 
null as c24, null as c25, null as c26, null as c27, null as c28, null as c29, 
null as c30, null as c31, null as c32, null as c33, null as c34, null as c35, 
null as c36, c37, null as c38, null as c39 FROM t ORDER BY c37)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, null as c22, null as c23, 
null as c24, null as c25, null as c26, null as c27, null as c28, null as c29, 
null as c30, null as c31, null as c32, null as c33, null as c34, null as c35, 
null as c36, null as c37, c38, null as c39 FROM t ORDER BY c38)
     UNION ALL
   (SELECT null as c0, null as c1, null as c2, null as c3, null as c4, null as 
c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, 
null as c12, null as c13, null as c14, null as c15, null as c16, null as c17, 
null as c18, null as c19, null as c20, null as c21, null as c22, null as c23, 
null as c24, null as c25, null as c26, null as c27, null as c28, null as c29, 
null as c30, null as c31, null as c32, null as c33, null as c34, null as c35, 
null as c36, null as c37, null as c38, c39 FROM t ORDER BY c39)
   ORDER BY c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, 
c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, 
c31, c32, c33, c34, c35, c36, c37, c38, c39
   ```
   
   ### Expected behavior
   
   I expect that the query plans within a second with 100 columns
   
   ### Additional context
   
   
   The code spends an increasing amount of time in :
   
   ```
   27.22 Gc  99.9%      -                         
datafusion_physical_expr::equivalence::properties::calculate_union::h9a6d0c834d33dfa8
   27.20 Gc  99.9%      2.00 Mc                    
datafusion_physical_expr::equivalence::properties::UnionEquivalentOrderingBuilder::add_satisfied_orderings::haff5d34880826c26
   27.20 Gc  99.8%      -                           
datafusion_physical_expr::equivalence::properties::EquivalenceProperties::ordering_satisfy_requirement::h7800d9c061e4551e
   26.94 Gc  98.9%      2.00 Mc                      
datafusion_physical_expr::equivalence::properties::EquivalenceProperties::with_constants::h9b627573961f7ac1
   26.72 Gc  98.1%      17.83 Mc                              
datafusion_physical_expr::equivalence::properties::EquivalenceProperties::discover_new_orderings::hdb50bd332b5dedd2
   21.92 Gc  80.5%      3.85 Gc                        
datafusion_physical_expr::equivalence::ordering::OrderingEquivalenceClass::remove_redundant_entries::h3394f8a44ca387d2
   2.52 Gc   9.2%       5.25 Mc                        
_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$::from_iter::hb5d026af61b973ba
   2.12 Gc   7.8%       2.03 Gc                        
_$LT$datafusion_physical_expr..expressions..column..Column$u20$as$u20$core..cmp..PartialEq$LT$dyn$u20$core..any..Any$GT$$GT$::eq::h7faccabfc76823d5
   ```
   
   This particularly bad behavior was introduced in 
https://github.com/influxdata/arrow-datafusion/commit/577e4bba0f5838846862621e1f5318c949cff2cb
 / https://github.com/apache/datafusion/pull/12562 (🤦  myself) 
   
   I think this is also what @berkaysynnada  was warning us in 
https://github.com/apache/datafusion/issues/12446#issuecomment-2368579422
   
   


-- 
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.

To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org
For additional commands, e-mail: github-h...@datafusion.apache.org

Reply via email to