This is an automated email from the ASF dual-hosted git repository.

alamb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git


The following commit(s) were added to refs/heads/master by this push:
     new f99e9c8  Update datafusion/tests/sql.rs tests to use assert_batches_eq 
(#1126)
f99e9c8 is described below

commit f99e9c88ba24ff28518f35c11d100d8ce045d84f
Author: Matthew Turner <[email protected]>
AuthorDate: Tue Oct 26 08:49:32 2021 -0400

    Update datafusion/tests/sql.rs tests to use assert_batches_eq (#1126)
    
    * First tests updated
    
    * More tests
    
    * More tests
    
    * More tests
    
    * More tests
    
    * Cleanup format
    
    * Cleanup for CI
---
 datafusion/tests/sql.rs | 517 +++++++++++++++++++++---------------------------
 1 file changed, 221 insertions(+), 296 deletions(-)

diff --git a/datafusion/tests/sql.rs b/datafusion/tests/sql.rs
index 34b6b6c..e484152 100644
--- a/datafusion/tests/sql.rs
+++ b/datafusion/tests/sql.rs
@@ -694,12 +694,35 @@ async fn select_all() -> Result<()> {
     register_aggregate_simple_csv(&mut ctx).await?;
 
     let sql = "SELECT c1 FROM aggregate_simple order by c1";
-    let actual_no_all = execute(&mut ctx, sql).await;
+    let results = execute_to_batches(&mut ctx, sql).await;
 
     let sql_all = "SELECT ALL c1 FROM aggregate_simple order by c1";
-    let actual_all = execute(&mut ctx, sql_all).await;
+    let results_all = execute_to_batches(&mut ctx, sql_all).await;
 
-    assert_eq!(actual_no_all, actual_all);
+    let expected = vec![
+        "+---------+",
+        "| c1      |",
+        "+---------+",
+        "| 0.00001 |",
+        "| 0.00002 |",
+        "| 0.00002 |",
+        "| 0.00003 |",
+        "| 0.00003 |",
+        "| 0.00003 |",
+        "| 0.00004 |",
+        "| 0.00004 |",
+        "| 0.00004 |",
+        "| 0.00004 |",
+        "| 0.00005 |",
+        "| 0.00005 |",
+        "| 0.00005 |",
+        "| 0.00005 |",
+        "| 0.00005 |",
+        "+---------+",
+    ];
+
+    assert_batches_eq!(expected, &results);
+    assert_batches_eq!(expected, &results_all);
 
     Ok(())
 }
@@ -1443,16 +1466,23 @@ async fn csv_query_group_by_string_min_max() -> 
Result<()> {
     Ok(())
 }
 
-// --- End Test Porting ---
-
 #[tokio::test]
 async fn csv_query_cast() -> Result<()> {
     let mut ctx = ExecutionContext::new();
     register_aggregate_csv(&mut ctx).await?;
     let sql = "SELECT CAST(c12 AS float) FROM aggregate_test_100 WHERE c12 > 
0.376 AND c12 < 0.4";
-    let actual = execute(&mut ctx, sql).await;
-    let expected = vec![vec!["0.39144436569161134"], 
vec!["0.38870280983958583"]];
-    assert_eq!(expected, actual);
+    let actual = execute_to_batches(&mut ctx, sql).await;
+
+    let expected = vec![
+        "+-----------------------------------------+",
+        "| CAST(aggregate_test_100.c12 AS Float64) |",
+        "+-----------------------------------------+",
+        "| 0.39144436569161134                     |",
+        "| 0.38870280983958583                     |",
+        "+-----------------------------------------+",
+    ];
+
+    assert_batches_eq!(expected, &actual);
     Ok(())
 }
 
@@ -1462,12 +1492,18 @@ async fn csv_query_cast_literal() -> Result<()> {
     register_aggregate_csv(&mut ctx).await?;
     let sql =
         "SELECT c12, CAST(1 AS float) FROM aggregate_test_100 WHERE c12 > 
CAST(0 AS float) LIMIT 2";
-    let actual = execute(&mut ctx, sql).await;
+    let actual = execute_to_batches(&mut ctx, sql).await;
+
     let expected = vec![
-        vec!["0.9294097332465232", "1"],
-        vec!["0.3114712539863804", "1"],
+        "+--------------------+------------+",
+        "| c12                | Float64(1) |",
+        "+--------------------+------------+",
+        "| 0.9294097332465232 | 1          |",
+        "| 0.3114712539863804 | 1          |",
+        "+--------------------+------------+",
     ];
-    assert_eq!(expected, actual);
+
+    assert_batches_eq!(expected, &actual);
     Ok(())
 }
 
@@ -1488,13 +1524,18 @@ async fn query_cast_timestamp_millis() -> Result<()> {
     ctx.register_table("t1", Arc::new(t1_table))?;
 
     let sql = "SELECT to_timestamp_millis(ts) FROM t1 LIMIT 3";
-    let actual = execute(&mut ctx, sql).await;
+    let actual = execute_to_batches(&mut ctx, sql).await;
+
     let expected = vec![
-        vec!["2009-03-01 00:00:00"],
-        vec!["2009-03-01 00:01:00"],
-        vec!["2009-04-01 00:00:00"],
+        "+--------------------------+",
+        "| totimestampmillis(t1.ts) |",
+        "+--------------------------+",
+        "| 2009-03-01 00:00:00      |",
+        "| 2009-03-01 00:01:00      |",
+        "| 2009-04-01 00:00:00      |",
+        "+--------------------------+",
     ];
-    assert_eq!(expected, actual);
+    assert_batches_eq!(expected, &actual);
     Ok(())
 }
 
@@ -1515,13 +1556,19 @@ async fn query_cast_timestamp_micros() -> Result<()> {
     ctx.register_table("t1", Arc::new(t1_table))?;
 
     let sql = "SELECT to_timestamp_micros(ts) FROM t1 LIMIT 3";
-    let actual = execute(&mut ctx, sql).await;
+    let actual = execute_to_batches(&mut ctx, sql).await;
+
     let expected = vec![
-        vec!["2009-03-01 00:00:00"],
-        vec!["2009-03-01 00:01:00"],
-        vec!["2009-04-01 00:00:00"],
+        "+--------------------------+",
+        "| totimestampmicros(t1.ts) |",
+        "+--------------------------+",
+        "| 2009-03-01 00:00:00      |",
+        "| 2009-03-01 00:01:00      |",
+        "| 2009-04-01 00:00:00      |",
+        "+--------------------------+",
     ];
-    assert_eq!(expected, actual);
+
+    assert_batches_eq!(expected, &actual);
     Ok(())
 }
 
@@ -1540,13 +1587,19 @@ async fn query_cast_timestamp_seconds() -> Result<()> {
     ctx.register_table("t1", Arc::new(t1_table))?;
 
     let sql = "SELECT to_timestamp_seconds(ts) FROM t1 LIMIT 3";
-    let actual = execute(&mut ctx, sql).await;
+    let actual = execute_to_batches(&mut ctx, sql).await;
+
     let expected = vec![
-        vec!["2009-03-01 00:00:00"],
-        vec!["2009-03-01 00:01:00"],
-        vec!["2009-04-01 00:00:00"],
+        "+---------------------------+",
+        "| totimestampseconds(t1.ts) |",
+        "+---------------------------+",
+        "| 2009-03-01 00:00:00       |",
+        "| 2009-03-01 00:01:00       |",
+        "| 2009-04-01 00:00:00       |",
+        "+---------------------------+",
     ];
-    assert_eq!(expected, actual);
+
+    assert_batches_eq!(expected, &actual);
     Ok(())
 }
 
@@ -1557,31 +1610,45 @@ async fn query_cast_timestamp_nanos_to_others() -> 
Result<()> {
 
     // Original column is nanos, convert to millis and check timestamp
     let sql = "SELECT to_timestamp_millis(ts) FROM ts_data LIMIT 3";
-    let actual = execute(&mut ctx, sql).await;
+    let actual = execute_to_batches(&mut ctx, sql).await;
+
     let expected = vec![
-        vec!["2020-09-08 13:42:29.190"],
-        vec!["2020-09-08 12:42:29.190"],
-        vec!["2020-09-08 11:42:29.190"],
+        "+-------------------------------+",
+        "| totimestampmillis(ts_data.ts) |",
+        "+-------------------------------+",
+        "| 2020-09-08 13:42:29.190       |",
+        "| 2020-09-08 12:42:29.190       |",
+        "| 2020-09-08 11:42:29.190       |",
+        "+-------------------------------+",
     ];
-    assert_eq!(expected, actual);
+    assert_batches_eq!(expected, &actual);
 
     let sql = "SELECT to_timestamp_micros(ts) FROM ts_data LIMIT 3";
-    let actual = execute(&mut ctx, sql).await;
+    let actual = execute_to_batches(&mut ctx, sql).await;
+
     let expected = vec![
-        vec!["2020-09-08 13:42:29.190855"],
-        vec!["2020-09-08 12:42:29.190855"],
-        vec!["2020-09-08 11:42:29.190855"],
+        "+-------------------------------+",
+        "| totimestampmicros(ts_data.ts) |",
+        "+-------------------------------+",
+        "| 2020-09-08 13:42:29.190855    |",
+        "| 2020-09-08 12:42:29.190855    |",
+        "| 2020-09-08 11:42:29.190855    |",
+        "+-------------------------------+",
     ];
-    assert_eq!(expected, actual);
+    assert_batches_eq!(expected, &actual);
 
     let sql = "SELECT to_timestamp_seconds(ts) FROM ts_data LIMIT 3";
-    let actual = execute(&mut ctx, sql).await;
+    let actual = execute_to_batches(&mut ctx, sql).await;
     let expected = vec![
-        vec!["2020-09-08 13:42:29"],
-        vec!["2020-09-08 12:42:29"],
-        vec!["2020-09-08 11:42:29"],
+        "+--------------------------------+",
+        "| totimestampseconds(ts_data.ts) |",
+        "+--------------------------------+",
+        "| 2020-09-08 13:42:29            |",
+        "| 2020-09-08 12:42:29            |",
+        "| 2020-09-08 11:42:29            |",
+        "+--------------------------------+",
     ];
-    assert_eq!(expected, actual);
+    assert_batches_eq!(expected, &actual);
 
     Ok(())
 }
@@ -1593,23 +1660,46 @@ async fn query_cast_timestamp_seconds_to_others() -> 
Result<()> {
 
     // Original column is seconds, convert to millis and check timestamp
     let sql = "SELECT to_timestamp_millis(ts) FROM ts_secs LIMIT 3";
-    let actual = execute(&mut ctx, sql).await;
+    let actual = execute_to_batches(&mut ctx, sql).await;
     let expected = vec![
-        vec!["2020-09-08 13:42:29"],
-        vec!["2020-09-08 12:42:29"],
-        vec!["2020-09-08 11:42:29"],
+        "+-------------------------------+",
+        "| totimestampmillis(ts_secs.ts) |",
+        "+-------------------------------+",
+        "| 2020-09-08 13:42:29           |",
+        "| 2020-09-08 12:42:29           |",
+        "| 2020-09-08 11:42:29           |",
+        "+-------------------------------+",
     ];
-    assert_eq!(expected, actual);
+
+    assert_batches_eq!(expected, &actual);
 
     // Original column is seconds, convert to micros and check timestamp
     let sql = "SELECT to_timestamp_micros(ts) FROM ts_secs LIMIT 3";
-    let actual = execute(&mut ctx, sql).await;
-    assert_eq!(expected, actual);
+    let actual = execute_to_batches(&mut ctx, sql).await;
+    let expected = vec![
+        "+-------------------------------+",
+        "| totimestampmicros(ts_secs.ts) |",
+        "+-------------------------------+",
+        "| 2020-09-08 13:42:29           |",
+        "| 2020-09-08 12:42:29           |",
+        "| 2020-09-08 11:42:29           |",
+        "+-------------------------------+",
+    ];
+    assert_batches_eq!(expected, &actual);
 
     // to nanos
     let sql = "SELECT to_timestamp(ts) FROM ts_secs LIMIT 3";
-    let actual = execute(&mut ctx, sql).await;
-    assert_eq!(expected, actual);
+    let actual = execute_to_batches(&mut ctx, sql).await;
+    let expected = vec![
+        "+-------------------------+",
+        "| totimestamp(ts_secs.ts) |",
+        "+-------------------------+",
+        "| 2020-09-08 13:42:29     |",
+        "| 2020-09-08 12:42:29     |",
+        "| 2020-09-08 11:42:29     |",
+        "+-------------------------+",
+    ];
+    assert_batches_eq!(expected, &actual);
     Ok(())
 }
 
@@ -1623,33 +1713,45 @@ async fn query_cast_timestamp_micros_to_others() -> 
Result<()> {
 
     // Original column is micros, convert to millis and check timestamp
     let sql = "SELECT to_timestamp_millis(ts) FROM ts_micros LIMIT 3";
-    let actual = execute(&mut ctx, sql).await;
+    let actual = execute_to_batches(&mut ctx, sql).await;
     let expected = vec![
-        vec!["2020-09-08 13:42:29.190"],
-        vec!["2020-09-08 12:42:29.190"],
-        vec!["2020-09-08 11:42:29.190"],
+        "+---------------------------------+",
+        "| totimestampmillis(ts_micros.ts) |",
+        "+---------------------------------+",
+        "| 2020-09-08 13:42:29.190         |",
+        "| 2020-09-08 12:42:29.190         |",
+        "| 2020-09-08 11:42:29.190         |",
+        "+---------------------------------+",
     ];
-    assert_eq!(expected, actual);
+    assert_batches_eq!(expected, &actual);
 
     // Original column is micros, convert to seconds and check timestamp
     let sql = "SELECT to_timestamp_seconds(ts) FROM ts_micros LIMIT 3";
-    let actual = execute(&mut ctx, sql).await;
+    let actual = execute_to_batches(&mut ctx, sql).await;
     let expected = vec![
-        vec!["2020-09-08 13:42:29"],
-        vec!["2020-09-08 12:42:29"],
-        vec!["2020-09-08 11:42:29"],
+        "+----------------------------------+",
+        "| totimestampseconds(ts_micros.ts) |",
+        "+----------------------------------+",
+        "| 2020-09-08 13:42:29              |",
+        "| 2020-09-08 12:42:29              |",
+        "| 2020-09-08 11:42:29              |",
+        "+----------------------------------+",
     ];
-    assert_eq!(expected, actual);
+    assert_batches_eq!(expected, &actual);
 
     // Original column is micros, convert to nanos and check timestamp
     let sql = "SELECT to_timestamp(ts) FROM ts_micros LIMIT 3";
-    let actual = execute(&mut ctx, sql).await;
+    let actual = execute_to_batches(&mut ctx, sql).await;
     let expected = vec![
-        vec!["2020-09-08 13:42:29.190855"],
-        vec!["2020-09-08 12:42:29.190855"],
-        vec!["2020-09-08 11:42:29.190855"],
+        "+----------------------------+",
+        "| totimestamp(ts_micros.ts)  |",
+        "+----------------------------+",
+        "| 2020-09-08 13:42:29.190855 |",
+        "| 2020-09-08 12:42:29.190855 |",
+        "| 2020-09-08 11:42:29.190855 |",
+        "+----------------------------+",
     ];
-    assert_eq!(expected, actual);
+    assert_batches_eq!(expected, &actual);
     Ok(())
 }
 
@@ -1657,9 +1759,9 @@ async fn query_cast_timestamp_micros_to_others() -> 
Result<()> {
 async fn union_all() -> Result<()> {
     let mut ctx = ExecutionContext::new();
     let sql = "SELECT 1 as x UNION ALL SELECT 2 as x";
-    let actual = execute(&mut ctx, sql).await;
-    let expected = vec![vec!["1"], vec!["2"]];
-    assert_eq!(expected, actual);
+    let actual = execute_to_batches(&mut ctx, sql).await;
+    let expected = vec!["+---+", "| x |", "+---+", "| 1 |", "| 2 |", "+---+"];
+    assert_batches_eq!(expected, &actual);
     Ok(())
 }
 
@@ -1679,9 +1781,9 @@ async fn csv_query_limit() -> Result<()> {
     let mut ctx = ExecutionContext::new();
     register_aggregate_csv(&mut ctx).await?;
     let sql = "SELECT c1 FROM aggregate_test_100 LIMIT 2";
-    let actual = execute(&mut ctx, sql).await;
-    let expected = vec![vec!["c"], vec!["d"]];
-    assert_eq!(expected, actual);
+    let actual = execute_to_batches(&mut ctx, sql).await;
+    let expected = vec!["+----+", "| c1 |", "+----+", "| c  |", "| d  |", 
"+----+"];
+    assert_batches_eq!(expected, &actual);
     Ok(())
 }
 
@@ -1690,110 +1792,24 @@ async fn csv_query_limit_bigger_than_nbr_of_rows() -> 
Result<()> {
     let mut ctx = ExecutionContext::new();
     register_aggregate_csv(&mut ctx).await?;
     let sql = "SELECT c2 FROM aggregate_test_100 LIMIT 200";
-    let actual = execute(&mut ctx, sql).await;
+    let actual = execute_to_batches(&mut ctx, sql).await;
+    // println!("{}", pretty_format_batches(&a).unwrap());
     let expected = vec![
-        vec!["2"],
-        vec!["5"],
-        vec!["1"],
-        vec!["1"],
-        vec!["5"],
-        vec!["4"],
-        vec!["3"],
-        vec!["3"],
-        vec!["1"],
-        vec!["4"],
-        vec!["1"],
-        vec!["4"],
-        vec!["3"],
-        vec!["2"],
-        vec!["1"],
-        vec!["1"],
-        vec!["2"],
-        vec!["1"],
-        vec!["3"],
-        vec!["2"],
-        vec!["4"],
-        vec!["1"],
-        vec!["5"],
-        vec!["4"],
-        vec!["2"],
-        vec!["1"],
-        vec!["4"],
-        vec!["5"],
-        vec!["2"],
-        vec!["3"],
-        vec!["4"],
-        vec!["2"],
-        vec!["1"],
-        vec!["5"],
-        vec!["3"],
-        vec!["1"],
-        vec!["2"],
-        vec!["3"],
-        vec!["3"],
-        vec!["3"],
-        vec!["2"],
-        vec!["4"],
-        vec!["1"],
-        vec!["3"],
-        vec!["2"],
-        vec!["5"],
-        vec!["2"],
-        vec!["1"],
-        vec!["4"],
-        vec!["1"],
-        vec!["4"],
-        vec!["2"],
-        vec!["5"],
-        vec!["4"],
-        vec!["2"],
-        vec!["3"],
-        vec!["4"],
-        vec!["4"],
-        vec!["4"],
-        vec!["5"],
-        vec!["4"],
-        vec!["2"],
-        vec!["1"],
-        vec!["2"],
-        vec!["4"],
-        vec!["2"],
-        vec!["3"],
-        vec!["5"],
-        vec!["1"],
-        vec!["1"],
-        vec!["4"],
-        vec!["2"],
-        vec!["1"],
-        vec!["2"],
-        vec!["1"],
-        vec!["1"],
-        vec!["5"],
-        vec!["4"],
-        vec!["5"],
-        vec!["2"],
-        vec!["3"],
-        vec!["2"],
-        vec!["4"],
-        vec!["1"],
-        vec!["3"],
-        vec!["4"],
-        vec!["3"],
-        vec!["2"],
-        vec!["5"],
-        vec!["3"],
-        vec!["3"],
-        vec!["2"],
-        vec!["5"],
-        vec!["5"],
-        vec!["4"],
-        vec!["1"],
-        vec!["3"],
-        vec!["3"],
-        vec!["4"],
-        vec!["4"],
+        "+----+", "| c2 |", "+----+", "| 2  |", "| 5  |", "| 1  |", "| 1  |", 
"| 5  |",
+        "| 4  |", "| 3  |", "| 3  |", "| 1  |", "| 4  |", "| 1  |", "| 4  |", 
"| 3  |",
+        "| 2  |", "| 1  |", "| 1  |", "| 2  |", "| 1  |", "| 3  |", "| 2  |", 
"| 4  |",
+        "| 1  |", "| 5  |", "| 4  |", "| 2  |", "| 1  |", "| 4  |", "| 5  |", 
"| 2  |",
+        "| 3  |", "| 4  |", "| 2  |", "| 1  |", "| 5  |", "| 3  |", "| 1  |", 
"| 2  |",
+        "| 3  |", "| 3  |", "| 3  |", "| 2  |", "| 4  |", "| 1  |", "| 3  |", 
"| 2  |",
+        "| 5  |", "| 2  |", "| 1  |", "| 4  |", "| 1  |", "| 4  |", "| 2  |", 
"| 5  |",
+        "| 4  |", "| 2  |", "| 3  |", "| 4  |", "| 4  |", "| 4  |", "| 5  |", 
"| 4  |",
+        "| 2  |", "| 1  |", "| 2  |", "| 4  |", "| 2  |", "| 3  |", "| 5  |", 
"| 1  |",
+        "| 1  |", "| 4  |", "| 2  |", "| 1  |", "| 2  |", "| 1  |", "| 1  |", 
"| 5  |",
+        "| 4  |", "| 5  |", "| 2  |", "| 3  |", "| 2  |", "| 4  |", "| 1  |", 
"| 3  |",
+        "| 4  |", "| 3  |", "| 2  |", "| 5  |", "| 3  |", "| 3  |", "| 2  |", 
"| 5  |",
+        "| 5  |", "| 4  |", "| 1  |", "| 3  |", "| 3  |", "| 4  |", "| 4  |", 
"+----+",
     ];
-    assert_eq!(expected, actual);
+    assert_batches_eq!(expected, &actual);
     Ok(())
 }
 
@@ -1802,110 +1818,23 @@ async fn csv_query_limit_with_same_nbr_of_rows() -> 
Result<()> {
     let mut ctx = ExecutionContext::new();
     register_aggregate_csv(&mut ctx).await?;
     let sql = "SELECT c2 FROM aggregate_test_100 LIMIT 100";
-    let actual = execute(&mut ctx, sql).await;
+    let actual = execute_to_batches(&mut ctx, sql).await;
     let expected = vec![
-        vec!["2"],
-        vec!["5"],
-        vec!["1"],
-        vec!["1"],
-        vec!["5"],
-        vec!["4"],
-        vec!["3"],
-        vec!["3"],
-        vec!["1"],
-        vec!["4"],
-        vec!["1"],
-        vec!["4"],
-        vec!["3"],
-        vec!["2"],
-        vec!["1"],
-        vec!["1"],
-        vec!["2"],
-        vec!["1"],
-        vec!["3"],
-        vec!["2"],
-        vec!["4"],
-        vec!["1"],
-        vec!["5"],
-        vec!["4"],
-        vec!["2"],
-        vec!["1"],
-        vec!["4"],
-        vec!["5"],
-        vec!["2"],
-        vec!["3"],
-        vec!["4"],
-        vec!["2"],
-        vec!["1"],
-        vec!["5"],
-        vec!["3"],
-        vec!["1"],
-        vec!["2"],
-        vec!["3"],
-        vec!["3"],
-        vec!["3"],
-        vec!["2"],
-        vec!["4"],
-        vec!["1"],
-        vec!["3"],
-        vec!["2"],
-        vec!["5"],
-        vec!["2"],
-        vec!["1"],
-        vec!["4"],
-        vec!["1"],
-        vec!["4"],
-        vec!["2"],
-        vec!["5"],
-        vec!["4"],
-        vec!["2"],
-        vec!["3"],
-        vec!["4"],
-        vec!["4"],
-        vec!["4"],
-        vec!["5"],
-        vec!["4"],
-        vec!["2"],
-        vec!["1"],
-        vec!["2"],
-        vec!["4"],
-        vec!["2"],
-        vec!["3"],
-        vec!["5"],
-        vec!["1"],
-        vec!["1"],
-        vec!["4"],
-        vec!["2"],
-        vec!["1"],
-        vec!["2"],
-        vec!["1"],
-        vec!["1"],
-        vec!["5"],
-        vec!["4"],
-        vec!["5"],
-        vec!["2"],
-        vec!["3"],
-        vec!["2"],
-        vec!["4"],
-        vec!["1"],
-        vec!["3"],
-        vec!["4"],
-        vec!["3"],
-        vec!["2"],
-        vec!["5"],
-        vec!["3"],
-        vec!["3"],
-        vec!["2"],
-        vec!["5"],
-        vec!["5"],
-        vec!["4"],
-        vec!["1"],
-        vec!["3"],
-        vec!["3"],
-        vec!["4"],
-        vec!["4"],
+        "+----+", "| c2 |", "+----+", "| 2  |", "| 5  |", "| 1  |", "| 1  |", 
"| 5  |",
+        "| 4  |", "| 3  |", "| 3  |", "| 1  |", "| 4  |", "| 1  |", "| 4  |", 
"| 3  |",
+        "| 2  |", "| 1  |", "| 1  |", "| 2  |", "| 1  |", "| 3  |", "| 2  |", 
"| 4  |",
+        "| 1  |", "| 5  |", "| 4  |", "| 2  |", "| 1  |", "| 4  |", "| 5  |", 
"| 2  |",
+        "| 3  |", "| 4  |", "| 2  |", "| 1  |", "| 5  |", "| 3  |", "| 1  |", 
"| 2  |",
+        "| 3  |", "| 3  |", "| 3  |", "| 2  |", "| 4  |", "| 1  |", "| 3  |", 
"| 2  |",
+        "| 5  |", "| 2  |", "| 1  |", "| 4  |", "| 1  |", "| 4  |", "| 2  |", 
"| 5  |",
+        "| 4  |", "| 2  |", "| 3  |", "| 4  |", "| 4  |", "| 4  |", "| 5  |", 
"| 4  |",
+        "| 2  |", "| 1  |", "| 2  |", "| 4  |", "| 2  |", "| 3  |", "| 5  |", 
"| 1  |",
+        "| 1  |", "| 4  |", "| 2  |", "| 1  |", "| 2  |", "| 1  |", "| 1  |", 
"| 5  |",
+        "| 4  |", "| 5  |", "| 2  |", "| 3  |", "| 2  |", "| 4  |", "| 1  |", 
"| 3  |",
+        "| 4  |", "| 3  |", "| 2  |", "| 5  |", "| 3  |", "| 3  |", "| 2  |", 
"| 5  |",
+        "| 5  |", "| 4  |", "| 1  |", "| 3  |", "| 3  |", "| 4  |", "| 4  |", 
"+----+",
     ];
-    assert_eq!(expected, actual);
+    assert_batches_eq!(expected, &actual);
     Ok(())
 }
 
@@ -1914,34 +1843,28 @@ async fn csv_query_limit_zero() -> Result<()> {
     let mut ctx = ExecutionContext::new();
     register_aggregate_csv(&mut ctx).await?;
     let sql = "SELECT c1 FROM aggregate_test_100 LIMIT 0";
-    let actual = execute(&mut ctx, sql).await;
-    let expected: Vec<Vec<String>> = vec![];
-    assert_eq!(expected, actual);
+    let actual = execute_to_batches(&mut ctx, sql).await;
+    let expected = vec!["++", "++"];
+    assert_batches_eq!(expected, &actual);
     Ok(())
 }
 
+// --- End Test Porting ---
+
 #[tokio::test]
 async fn csv_query_create_external_table() {
     let mut ctx = ExecutionContext::new();
     register_aggregate_csv_by_sql(&mut ctx).await;
     let sql = "SELECT c1, c2, c3, c4, c5, c6, c7, c8, c9, 10, c11, c12, c13 
FROM aggregate_test_100 LIMIT 1";
-    let actual = execute(&mut ctx, sql).await;
-    let expected = vec![vec![
-        "c",
-        "2",
-        "1",
-        "18109",
-        "2033001162",
-        "-6513304855495910254",
-        "25",
-        "43062",
-        "1491205016",
-        "10",
-        "0.110830784",
-        "0.9294097332465232",
-        "6WfVFBVGJSQb7FhA7E0lBwdvjfZnSW",
-    ]];
-    assert_eq!(expected, actual);
+    let actual = execute_to_batches(&mut ctx, sql).await;
+    let expected = vec![
+        
"+----+----+----+-------+------------+----------------------+----+-------+------------+-----------+-------------+--------------------+--------------------------------+",
+        "| c1 | c2 | c3 | c4    | c5         | c6                   | c7 | c8  
  | c9         | Int64(10) | c11         | c12                | c13             
               |",
+        
"+----+----+----+-------+------------+----------------------+----+-------+------------+-----------+-------------+--------------------+--------------------------------+",
+        "| c  | 2  | 1  | 18109 | 2033001162 | -6513304855495910254 | 25 | 
43062 | 1491205016 | 10        | 0.110830784 | 0.9294097332465232 | 
6WfVFBVGJSQb7FhA7E0lBwdvjfZnSW |",
+        
"+----+----+----+-------+------------+----------------------+----+-------+------------+-----------+-------------+--------------------+--------------------------------+",
+    ];
+    assert_batches_eq!(expected, &actual);
 }
 
 #[tokio::test]
@@ -1950,6 +1873,8 @@ async fn csv_query_external_table_count() {
     register_aggregate_csv_by_sql(&mut ctx).await;
     let sql = "SELECT COUNT(c12) FROM aggregate_test_100";
     let actual = execute(&mut ctx, sql).await;
+    // let a = execute_to_batches(&mut ctx, sql).await;
+    // println!("{}", pretty_format_batches(&a).unwrap());
     let expected = vec![vec!["100"]];
     assert_eq!(expected, actual);
 }

Reply via email to