Description
Is your feature request related to a problem or challenge?
As described in https://github.com/apache/arrow-datafusion/tree/main/datafusion/core/tests/sqllogictests DataFusion has many tests that use the sqllogictest framework which is easy to write and update compared to rust tests
We still have a non trivial number of old tests that are written in Rust and run in the sql integration test:
https://arrow.apache.org/datafusion/contributor-guide/index.html#rust-integration-tests
cargo test -p datafusion --test sql_integration
This ticket tracks the work to port the tests from rust to sqllogictests
Describe the solution you'd like
Port tests from datafusion/core/tests/sql to sqllogictests in datafusion/core/tests/sqllogictests/test_files
For each test, the goal is to:
- Port as many tests as possiible (follow the example of Port test in select.rs to sqllogic #6158 or one of the other tests linked to Port sql tests written in Rust to sqllogictests #4495)
Then we can figure out what to do with the tests that can not be ported easily
Remaining items:
- Port tests in cast.rs to sqllogictest #6208
- Port tests in
wildcard.rs
to sqllogictest #6216 - Port tests in
expr.rs
to sqllogictest #6210 - Port tests in
functions.rs
to sqllogictest #6211 - Port tests in
identifiers.rs
to sqllogictest #6212 - Port tests in
set_variable.rs
to sqllogictest #6213 - Port tests in
unicode.rs
to sqllogictest #6214 - Port tests in
union.rs
to sqllogictest #6215 - Port remaining window.rs tests to sqllogictests #6233
- Port tests in
avro.rs
to sqllogictest #6299 - Port tests in
errors.rs
to context.rs #6298 - Port tests in
explain.rs
to sqllogictests #6297 - Port remaining tests in
functions.rs
to sqllogictest #6300 - Port tests in
information_schema.rs
to sqllogictest #6301 - Port tests in
joins.rs
to sqllogictest #6302 - Port tests in
json.rs
to sqllogictest #6303 - Port test in
subqueries.rs
from rust to sqllogictest #6668 - Port tests in
aggregates.rs
to sqllogictest #8194 - Port tests in
arrow_files.rs
to sqllogictest #8195 - Port tests in
create_drop.rs
to sqllogictest #8196 - Port tests in
csv_files.rs
to sqllogictest #8197 - Port tests in
describe.rs
to sqllogictest #8198 - Port tests in
displayable.rs
to sqllogictest #8199 - Port tests in
explain_analyze.rs
to sqllogictest #8200 - Port tests in
expr.rs
to sqllogictest #8201 - Port tests in
group_by.rs
to sqllogictest #8202 - Port tests in
joins.rs
to sqllogictest #8203 - Port tests in
limit.rs
to sqllogictest #8204 - Port tests in
order.rs
to sqllogictest #8205 - Port tests in
parquet.rs
to sqllogictest #8206 - Port tests in
parquet_schema.rs
to sqllogictest #8207 - Port tests in
partitioned_csv.rs
to sqllogictest #8208 - Port tests in
predicates.rs
to sqllogictest #8209 - Port tests in
projection.rs
to sqllogictest #8210 - Port tests in
references.rs
to sqllogictest #8211 - Port tests in
repartition.rs
to sqllogictest #8212 - Port tests in
select.rs
to sqllogictest #8213 - Port tests in
sql_api.rs
to sqllogictest #8214 - Port tests in
subqueries.rs
to sqllogictest #8215 - Port tests in
timestamp.rs
to sqllogictest #8216
Describe alternatives you've considered
No response
Additional context
Follow on to #4495
Marking this as a good first issue as there are many examples and it will get people familiar with how to run tests and how to use datafusion as a library, while also helping the community