-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Docs: Update SQL status page #6736
Changes from all commits
24f2ca7
0048678
03c70fe
f02ee88
3b51dd3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -34,106 +34,69 @@ | |
|
||
## SQL Support | ||
|
||
- [x] Projection | ||
- [x] Filter (WHERE) | ||
- [x] Filter post-aggregate (HAVING) | ||
- [x] Limit | ||
- [x] Aggregate | ||
- [x] Common math functions | ||
- [x] cast | ||
- [x] try_cast | ||
- [x] Projection (`SELECT`) | ||
- [x] Filter (`WHERE`) | ||
- [x] Filter post-aggregate (`HAVING`) | ||
- [x] Sorting (`ORDER BY`) | ||
- [x] Limit (`LIMIT` | ||
- [x] Aggregate (`GROUP BY`) | ||
- [x] cast /try_cast | ||
- [x] [`VALUES` lists](https://www.postgresql.org/docs/current/queries-values.html) | ||
- Postgres compatible String functions | ||
- [x] ascii | ||
- [x] bit_length | ||
- [x] btrim | ||
- [x] char_length | ||
- [x] character_length | ||
- [x] chr | ||
- [x] concat | ||
- [x] concat_ws | ||
- [x] initcap | ||
- [x] left | ||
- [x] length | ||
- [x] lpad | ||
- [x] ltrim | ||
- [x] octet_length | ||
- [x] regexp_replace | ||
- [x] repeat | ||
- [x] replace | ||
- [x] reverse | ||
- [x] right | ||
- [x] rpad | ||
- [x] rtrim | ||
- [x] split_part | ||
- [x] starts_with | ||
- [x] strpos | ||
- [x] substr | ||
- [x] to_hex | ||
- [x] translate | ||
- [x] trim | ||
- Conditional functions | ||
- [x] nullif | ||
- [x] case | ||
- [x] coalesce | ||
- Approximation functions | ||
- [x] approx_distinct | ||
- [x] approx_median | ||
- [x] approx_percentile_cont | ||
- [x] approx_percentile_cont_with_weight | ||
- Common date/time functions | ||
- [ ] Basic date functions | ||
- [ ] Basic time functions | ||
- [x] Basic timestamp functions | ||
- [x] [to_timestamp](./scalar_functions.md#to_timestamp) | ||
- [x] [to_timestamp_millis](./scalar_functions.md#to_timestamp_millis) | ||
- [x] [to_timestamp_micros](./scalar_functions.md#to_timestamp_micros) | ||
- [x] [to_timestamp_seconds](./scalar_functions.md#to_timestamp_seconds) | ||
- [x] [extract](./scalar_functions.md#extract) | ||
- [x] [date_part](./scalar_functions.md#date_part) | ||
- nested functions | ||
- [x] Array of columns | ||
- [x] [String Functions](./scalar_functions.md#string-functions) | ||
- [x] [Conditional Functions](./scalar_functions.md#conditional-functions) | ||
- [x] [Time and Date Functions](./scalar_functions.md#time-and-date-functions) | ||
- [x] [Math Functions](./scalar_functions.md#math-functions) | ||
- [x] [Aggregate Functions](./aggregate_functions.md) (`SUM`, `MEDIAN`, and many more) | ||
- [x] Schema Queries | ||
- [x] SHOW TABLES | ||
- [x] SHOW COLUMNS FROM <table/view> | ||
- [x] SHOW CREATE TABLE <view> | ||
- [x] information_schema.{tables, columns, views} | ||
- [ ] information_schema other views | ||
- [x] Sorting | ||
- [ ] Nested types | ||
- [ ] Lists | ||
- [x] `SHOW TABLES` | ||
- [x] `SHOW COLUMNS FROM <table/view>` | ||
- [x] `SHOW CREATE TABLE <view>` | ||
- [x] Basic SQL [Information Schema](./information_schema.md) (`TABLES`, `VIEWS`, `COLUMNS`) | ||
- [ ] Full SQL [Information Schema](./information_schema.md) support | ||
- [ ] Support for nested types (`ARRAY`/`LIST` and `STRUCT`. See [#2326](https://github.com/apache/arrow-datafusion/issues/2326) for details) | ||
- [x] Read support | ||
- [x] Write support | ||
- [x] Field access (`col['field']` and [`col[1]`]) | ||
- [x] [Array Functions](./scalar_functions.md#array-functions) | ||
- [ ] [Struct Functions](./scalar_functions.md#struct-functions) | ||
- [x] `struct` | ||
- [ ] [Postgres JSON operators](https://github.com/apache/arrow-datafusion/issues/6631) (`->`, `->>`, etc.) | ||
- [x] Subqueries | ||
- [x] Common table expressions | ||
- [x] Set Operations | ||
- [x] UNION ALL | ||
- [x] UNION | ||
- [x] INTERSECT | ||
- [x] INTERSECT ALL | ||
- [x] EXCEPT | ||
- [x] EXCEPT ALL | ||
- [x] Joins | ||
- [x] INNER JOIN | ||
- [x] LEFT JOIN | ||
- [x] RIGHT JOIN | ||
- [x] FULL JOIN | ||
- [x] CROSS JOIN | ||
- [ ] Window | ||
- [x] Empty window | ||
- [x] Common window functions | ||
- [x] Window with PARTITION BY clause | ||
- [x] Window with ORDER BY clause | ||
- [ ] Window with FILTER clause | ||
- [ ] [Window with custom WINDOW FRAME](https://github.com/apache/arrow-datafusion/issues/361) | ||
- [ ] UDF and UDAF for window functions | ||
- [x] Common Table Expressions (CTE) | ||
- [x] Set Operations (`UNION [ALL]`, `INTERSECT [ALL]`, `EXCEPT[ALL]`) | ||
- [x] Joins (`INNER`, `LEFT`, `RIGHT`, `FULL`, `CROSS`) | ||
- [x] Window Functions | ||
- [x] Empty (`OVER()`) | ||
- [x] Partitioning and ordering: (`OVER(PARTITION BY <..> ORDER BY <..>)`) | ||
- [x] Custom Window (`ORDER BY time ROWS BETWEEN 2 PRECEDING AND 0 FOLLOWING)`) | ||
- [x] User Defined Window and Aggregate Functions | ||
- [x] Catalogs | ||
- [x] Schemas (`CREATE / DROP SCHEMA`) | ||
- [x] Tables (`CREATE / DROP TABLE`, `CREATE TABLE AS SELECT`) | ||
- [ ] Data Insert | ||
- [x] `INSERT INTO` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sorry @alamb that is not very clear to me. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, that is correct Here is an example: (arrow_dev) alamb@MacBook-Pro-8:~/Software/arrow-site$ touch /tmp/foo.csv
(arrow_dev) alamb@MacBook-Pro-8:~/Software/arrow-site$ datafusion-cli
DataFusion CLI v26.0.0
❯ create external table foo (x int) stored as csv location '/tmp/foo.csv';
0 rows in set. Query took 0.004 seconds.
❯ insert into foo values (1), (2), (3);
+-------+
| count |
+-------+
| 3 |
+-------+
1 row in set. Query took 0.005 seconds.
❯
\q
(arrow_dev) alamb@MacBook-Pro-8:~/Software/arrow-site$ cat /tmp/foo.csv
1
2
3 The UX is somewhat awkward at the moment as it can only append into existing files (not create new ones). I have real hopes it will be improved There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Oh that is really cool, I want to make this happen for parquet asap. Will create a ticket and implement it. Should be straightfwd as we have parquetwriter There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
- [ ] `COPY .. INTO ..` | ||
- [x] CSV | ||
- [ ] JSON | ||
- [ ] Parquet | ||
- [ ] Avro | ||
|
||
## Runtime | ||
|
||
- [x] Streaming Grouping | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I am not sure if there are other features to highlight in the RUNTIME |
||
- [x] Streaming Window Evaluation | ||
- [x] Memory limits enforced | ||
- [x] Spilling (to disk) Sort | ||
- [ ] Spilling (to disk) Grouping | ||
- [ ] Spilling (to disk) Joins | ||
|
||
## Data Sources | ||
|
||
In addition to allowing arbitrary datasources via the `TableProvider` | ||
trait, DataFusion includes built in support for the following formats: | ||
|
||
- [x] CSV | ||
- [x] Parquet primitive types | ||
- [x] Parquet nested types | ||
- [x] Parquet (for all primitive and nested types) | ||
- [x] JSON | ||
- [x] Avro | ||
- [x] Arrow |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This link will work after #6754 is merged