Skip to content

Commit

Permalink
clarify how to change behavior
Browse files Browse the repository at this point in the history
  • Loading branch information
alamb committed Dec 10, 2024
1 parent b674a42 commit 8fd7f44
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions docs/source/user-guide/sql/dialect.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,22 +32,22 @@ Notable exceptions:
- DataFusion's type system is based on the [Apache Arrow type system], and the mapping to PostgrSQL types is not always 1:1.
- DataFusion has its own syntax (dialect) for certain operations (like [`CREATE EXTERNAL TABLE`])

As Apache DataFusion is designed to be fully customizable, systems built on
DataFusion can and do implement different SQL semantics. Using DataFusion's APs,
you can provide alternate function definitions, type rules, and/or SQL syntax
that matches other systems such as Apache Spark or MySQL or your own custom
semantics.

[postgresql sql dialect]: https://www.postgresql.org/docs/current/sql.html
[sql planner]: https://docs.rs/datafusion/latest/datafusion/sql/planner/struct.SqlToRel.html
[duckdb sql dialect]: https://duckdb.org/docs/sql/functions/array
[apache arrow type system]: https://arrow.apache.org/docs/format/Columnar.html#data-types
[`create external table`]: ddl.md#create-external-table

As Apache DataFusion is designed to be fully customizable, systems built on
DataFusion can and do update functions, type rules, and SQL syntax to follow
other systems, such as Apache Spark or MySQL.

## Rationale

SQL Engines have a choice to either use an existing SQL dialect or define their
own. Using an existing dialect may not fit perfectly as it is hard to match
semantics exactly (need bug-for-bug compatibility), and is likely not what all
users want. However, it avoids the (very significant) effort of defining
semantics as well as documenting and teaching users about them.


0 comments on commit 8fd7f44

Please sign in to comment.