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);
}