[SPARK-33649][SQL][DOC] Improve the doc of spark.sql.ansi.enabled
### What changes were proposed in this pull request? Improve the documentation of SQL configuration `spark.sql.ansi.enabled` ### Why are the changes needed? As there are more and more new features under the SQL configuration `spark.sql.ansi.enabled`, we should make it more clear about: 1. what exactly it is 2. where can users find all the features of the ANSI mode 3. whether all the features are exactly from the SQL standard ### Does this PR introduce _any_ user-facing change? No ### How was this patch tested? It's just doc change. Closes #30593 from gengliangwang/reviseAnsiDoc. Authored-by: Gengliang Wang <gengliang.wang@databricks.com> Signed-off-by: Gengliang Wang <gengliang.wang@databricks.com>
This commit is contained in:
parent
85949588b7
commit
29e415deac
|
@ -21,7 +21,8 @@ license: |
|
|||
|
||||
Since Spark 3.0, Spark SQL introduces two experimental options to comply with the SQL standard: `spark.sql.ansi.enabled` and `spark.sql.storeAssignmentPolicy` (See a table below for details).
|
||||
|
||||
When `spark.sql.ansi.enabled` is set to `true`, Spark SQL follows the standard in basic behaviours (e.g., arithmetic operations, type conversion, SQL functions and SQL parsing).
|
||||
When `spark.sql.ansi.enabled` is set to `true`, Spark SQL uses an ANSI compliant dialect instead of being Hive compliant. For example, Spark will throw an exception at runtime instead of returning null results if the inputs to a SQL operator/function are invalid. Some ANSI dialect features may be not from the ANSI SQL standard directly, but their behaviors align with ANSI SQL's style.
|
||||
|
||||
Moreover, Spark SQL has an independent option to control implicit casting behaviours when inserting rows in a table.
|
||||
The casting behaviours are defined as store assignment rules in the standard.
|
||||
|
||||
|
|
|
@ -2209,11 +2209,12 @@ object SQLConf {
|
|||
.createWithDefault(StoreAssignmentPolicy.ANSI.toString)
|
||||
|
||||
val ANSI_ENABLED = buildConf("spark.sql.ansi.enabled")
|
||||
.doc("When true, Spark tries to conform to the ANSI SQL specification: 1. Spark will " +
|
||||
"throw an exception at runtime if the inputs to a SQL operator/function are invalid, " +
|
||||
"e.g. overflow in arithmetic operations, out-of-range index when accessing array elements. " +
|
||||
"2. Spark will forbid using the reserved keywords of ANSI SQL as identifiers in " +
|
||||
"the SQL parser. 3. Spark will return NULL for null input for function `size`.")
|
||||
.doc("When true, Spark SQL uses an ANSI compliant dialect instead of being Hive compliant. " +
|
||||
"For example, Spark will throw an exception at runtime instead of returning null results " +
|
||||
"when the inputs to a SQL operator/function are invalid." +
|
||||
"For full details of this dialect, you can find them in the section \"ANSI Compliance\" of " +
|
||||
"Spark's documentation. Some ANSI dialect features may be not from the ANSI SQL " +
|
||||
"standard directly, but their behaviors align with ANSI SQL's style")
|
||||
.version("3.0.0")
|
||||
.booleanConf
|
||||
.createWithDefault(false)
|
||||
|
|
Loading…
Reference in a new issue