Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 13 additions & 27 deletions datafusion/core/tests/user_defined/expr_planner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
use arrow::array::RecordBatch;
use std::sync::Arc;

use datafusion::common::{assert_batches_eq, DFSchema};
use datafusion::common::DFSchema;
use datafusion::error::Result;
use datafusion::execution::FunctionRegistry;
use datafusion::logical_expr::Operator;
Expand Down Expand Up @@ -73,52 +73,38 @@ async fn plan_and_collect(sql: &str) -> Result<Vec<RecordBatch>> {
ctx.sql(sql).await?.collect().await
}

fn fmt_batches(batches: &[RecordBatch]) -> String {
use arrow::util::pretty::pretty_format_batches;
match pretty_format_batches(batches) {
Ok(formatted) => formatted.to_string(),
Err(e) => format!("Error formatting record batches: {}", e),
}
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we use batches_to_string for that?


#[tokio::test]
async fn test_custom_operators_arrow() {
let actual = plan_and_collect("select 'foo'->'bar';").await.unwrap();
let expected = [
"+----------------------------+",
"| Utf8(\"foo\") || Utf8(\"bar\") |",
"+----------------------------+",
"| foobar |",
"+----------------------------+",
];
assert_batches_eq!(&expected, &actual);
insta::assert_snapshot!(fmt_batches(&actual));
}

#[tokio::test]
async fn test_custom_operators_long_arrow() {
let actual = plan_and_collect("select 1->>2;").await.unwrap();
let expected = [
"+---------------------+",
"| Int64(1) + Int64(2) |",
"+---------------------+",
"| 3 |",
"+---------------------+",
];
assert_batches_eq!(&expected, &actual);
insta::assert_snapshot!(fmt_batches(&actual));
}

#[tokio::test]
async fn test_question_select() {
let actual = plan_and_collect("select a ? 2 from (select 1 as a);")
.await
.unwrap();
let expected = [
"+--------------+",
"| a ? Int64(2) |",
"+--------------+",
"| true |",
"+--------------+",
];
assert_batches_eq!(&expected, &actual);
insta::assert_snapshot!(fmt_batches(&actual));
}

#[tokio::test]
async fn test_question_filter() {
let actual = plan_and_collect("select a from (select 1 as a) where a ? 2;")
.await
.unwrap();
let expected = ["+---+", "| a |", "+---+", "| 1 |", "+---+"];
assert_batches_eq!(&expected, &actual);
insta::assert_snapshot!(fmt_batches(&actual));
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/expr_planner.rs
expression: fmt_batches(&actual)
---
+----------------------------+
| Utf8("foo") || Utf8("bar") |
+----------------------------+
| foobar |
+----------------------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/expr_planner.rs
expression: fmt_batches(&actual)
---
+---------------------+
| Int64(1) + Int64(2) |
+---------------------+
| 3 |
+---------------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/expr_planner.rs
expression: fmt_batches(&actual)
---
+---+
| a |
+---+
| 1 |
+---+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/expr_planner.rs
expression: fmt_batches(&actual)
---
+--------------+
| a ? Int64(2) |
+--------------+
| true |
+--------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/user_defined_aggregates.rs
expression: fmt_batches(&result)
---
+-------------+
| MY_AVG(t.i) |
+-------------+
| 1.0 |
+-------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/user_defined_aggregates.rs
expression: fmt_batches(&actual)
---
+------+---+---+
| text | a | b |
+------+---+---+
| foo | 1 | 2 |
+------+---+---+
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
source: datafusion/core/tests/user_defined/user_defined_aggregates.rs
expression: fmt_batches(&actual)
---
+-------+----------------------------+
| value | time |
+-------+----------------------------+
| 2.0 | 1970-01-01T00:00:00.000002 |
| 3.0 | 1970-01-01T00:00:00.000003 |
| 1.0 | 1970-01-01T00:00:00.000004 |
| 5.0 | 1970-01-01T00:00:00.000005 |
| 5.0 | 1970-01-01T00:00:00.000005 |
+-------+----------------------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/user_defined_aggregates.rs
expression: fmt_batches(&result)
---
+-------------+
| my_avg(t.a) |
+-------------+
| 3.0 |
+-------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/user_defined_aggregates.rs
expression: fmt_batches(&actual)
---
+----------------------------+
| time_sum(t.time) |
+----------------------------+
| 1970-01-01T00:00:00.000019 |
+----------------------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
source: datafusion/core/tests/user_defined/user_defined_aggregates.rs
expression: fmt_batches(&actual)
---
+----------------------------+
| time_sum |
+----------------------------+
| 1970-01-01T00:00:00.000019 |
| 1970-01-01T00:00:00.000019 |
| 1970-01-01T00:00:00.000019 |
| 1970-01-01T00:00:00.000019 |
| 1970-01-01T00:00:00.000019 |
+----------------------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
source: datafusion/core/tests/user_defined/user_defined_aggregates.rs
expression: fmt_batches(&actual)
---
+----------------------------+
| time_sum |
+----------------------------+
| 1970-01-01T00:00:00.000005 |
| 1970-01-01T00:00:00.000009 |
| 1970-01-01T00:00:00.000012 |
| 1970-01-01T00:00:00.000014 |
| 1970-01-01T00:00:00.000010 |
+----------------------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/user_defined_aggregates.rs
expression: fmt_batches(&actual)
---
+------------------------------------------------+
| first(t.value,t.time) |
+------------------------------------------------+
| {value: 2.0, time: 1970-01-01T00:00:00.000002} |
+------------------------------------------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/user_defined_aggregates.rs
expression: fmt_batches(&actual)
---
+-----------------+----------------------------+
| sq.first[value] | sq.first[time] |
+-----------------+----------------------------+
| 2.0 | 1970-01-01T00:00:00.000002 |
+-----------------+----------------------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/user_defined_aggregates.rs
expression: fmt_batches(&actual)
---
+----------------------------+
| sum(t.time) |
+----------------------------+
| 1970-01-01T00:00:00.000019 |
+----------------------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/user_defined_aggregates.rs
expression: fmt_batches(&actual)
---
+---------------------------------------+
| sum(arrow_cast(t.time,Utf8("Int64"))) |
+---------------------------------------+
| 19000 |
+---------------------------------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/user_defined_aggregates.rs
expression: fmt_batches(&alias_result)
---
+------------+
| dummy(t.i) |
+------------+
| 1.0 |
+------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/user_defined_aggregates.rs
expression: fmt_batches(&result)
---
+------------+
| dummy(t.i) |
+------------+
| 1.0 |
+------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
source: datafusion/core/tests/user_defined/user_defined_plan.rs
description: Default context
expression: actual
---
+-------------+---------+
| customer_id | revenue |
+-------------+---------+
| paul | 300 |
| jorge | 200 |
| andy | 150 |
+-------------+---------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
source: datafusion/core/tests/user_defined/user_defined_plan.rs
description: Default context without schemas
expression: actual
---
+----------+----------+
| column_1 | column_2 |
+----------+----------+
| andrew | 100 |
| jorge | 200 |
| andy | 150 |
+----------+----------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
source: datafusion/core/tests/user_defined/user_defined_plan.rs
description: MyAnalyzerRule
expression: actual
---
+------------+--------------------------+
| UInt64(42) | arrow_typeof(UInt64(42)) |
+------------+--------------------------+
| 42 | UInt64 |
+------------+--------------------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
source: datafusion/core/tests/user_defined/user_defined_plan.rs
description: Topk context
expression: actual
---
+-------------+---------+
| customer_id | revenue |
+-------------+---------+
| paul | 300 |
| jorge | 200 |
| andy | 150 |
+-------------+---------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/user_defined_scalar_functions.rs
expression: fmt_batches(&result)
---
+--------------+
| MY_FUNC(t.i) |
+--------------+
| 1 |
+--------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/user_defined_scalar_functions.rs
expression: fmt_batches(&actual)
---
+------------------------------------------+
| avg(custom_sqrt(aggregate_test_100.c12)) |
+------------------------------------------+
| 0.6706002946036459 |
+------------------------------------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/user_defined_scalar_functions.rs
expression: fmt_batches(&actual)
---
+------------------------------------------+
| avg(custom_sqrt(aggregate_test_100.c11)) |
+------------------------------------------+
| 0.6584408483418835 |
+------------------------------------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
source: datafusion/core/tests/user_defined/user_defined_scalar_functions.rs
expression: fmt_batches(&result)
---
+-----+-----+-----------------+
| a | b | my_add(t.a,t.b) |
+-----+-----+-----------------+
| 1 | 2 | 3 |
| 10 | 12 | 22 |
| 10 | 12 | 22 |
| 100 | 120 | 220 |
+-----+-----+-----------------+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/user_defined_scalar_functions.rs
expression: fmt_batches(&result)
---
+---+
| a |
+---+
| 1 |
+---+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/user_defined_scalar_functions.rs
expression: fmt_batches(&result)
---
+-----+
| a |
+-----+
| 100 |
+-----+
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
source: datafusion/core/tests/user_defined/user_defined_scalar_functions.rs
expression: fmt_batches(&result)
---
++
++
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
source: datafusion/core/tests/user_defined/user_defined_scalar_functions.rs
expression: fmt_batches(&result)
---
+-----+
| a |
+-----+
| 100 |
| 100 |
| 100 |
| 100 |
+-----+
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
source: datafusion/core/tests/user_defined/user_defined_scalar_functions.rs
expression: fmt_batches(&alias_result)
---
+------------+
| dummy(t.i) |
+------------+
| 1 |
+------------+
Loading