[
https://issues.apache.org/jira/browse/SPARK-59891?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated SPARK-59891:
-----------------------------------
Labels: pull-request-available (was: )
> Classify only syntax error codes as syntax errors in Teradata dialect
> ---------------------------------------------------------------------
>
> Key: SPARK-59891
> URL: https://issues.apache.org/jira/browse/SPARK-59891
> Project: Spark
> Issue Type: Bug
> Components: SQL
> Affects Versions: 5.0.0
> Reporter: sepuri sai krishna
> Priority: Major
> Labels: pull-request-available
>
> {{TeradataDialect}} treats every SQLSTATE of class 42 as a syntax error
> ({{startsWith("42")}}), but {{JdbcDialect.isSyntaxErrorBestEffort}} promises
> that a {{true}} result is guaranteed to be a syntax error.
> The Teradata JDBC driver maps Teradata error codes to SQLSTATEs with a fixed
> table in the driver. With that table:
> * Syntax errors 3706, 3707, 3708 and 3709 ("Syntax error: ...", "Syntax
> error, expected something like ...", ...) map to {{42000}}.
> * Access errors map to the same {{42000}}, e.g. 3523 ("... does not have
> SELECT access to ...") and 3524 ("... does not have ... access to database
> ...").
> * A missing object (3807) maps to {{42S02}} and a missing column (3810) to
> {{42S22}}.
> So all of these are reported as {{JDBC_EXTERNAL_ENGINE_SYNTAX_ERROR}} instead
> of keeping the driver's exception, and SQLSTATE alone cannot tell a syntax
> error from a missing privilege. The dialect already uses Teradata error codes
> for {{isObjectNotFoundException}} (3807), so syntax errors can be matched by
> error code in the same way.
> Message texts: https://docs.teradata.com/r/VMware/Analytics-Database-Messages
> This is a follow-up of SPARK-59336, which made the same change for
> PostgreSQL. The same pattern in other dialects was pointed out in its review:
> https://github.com/apache/spark/pull/58621#discussion_r3968178897
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]