Ivan Leventsov created SPARK-57778:
--------------------------------------
Summary: JDBC: Oracle catalog fails on objects that exist but are
not selectable as tables (synonyms to procedures/functions, invalid views)
Key: SPARK-57778
URL: https://issues.apache.org/jira/browse/SPARK-57778
Project: Spark
Issue Type: Bug
Components: Spark Core, SQL
Affects Versions: 4.0.3
Reporter: Ivan Leventsov
When using the built-in JDBC {{TableCatalog}} over Oracle, the driver's table
listing returns objects that cannot be read as tables, for example a synonym
that resolves to a PL/SQL procedure/function/package, or an invalid view.
Probing such an object ({{{}tableExists{}}} via {{{}SELECT 1 FROM <obj> WHERE
1=0{}}}, or schema resolution via {{{}SELECT * FROM <obj> WHERE 1=0{}}}) raises
{{ORA-04044}} ("procedure, function, package, or type is not allowed here") or
{{ORA-04063}} ("... has errors").
These are currently unclassified, so {{tableExists}} throws instead of
returning {{{}false{}}}, and table resolution surfaces a raw {{FAILED_JDBC}}
error.
Proposed: add a {{JdbcDialect.isNotSelectableObjectException}} predicate
(Oracle recognizes {{{}ORA-04044{}}}/{{{}ORA-04063{}}}) so {{tableExists}}
returns {{false}} for such objects and schema resolution throws a clear,
dedicated error ({{{}JDBC_OBJECT_NOT_SELECTABLE{}}}) instead of a generic
failure.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]