[
https://issues.apache.org/jira/browse/CALCITE-4585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Julian Hyde resolved CALCITE-4585.
----------------------------------
Fix Version/s: 1.27.0
Resolution: Fixed
Fixed in
[9c870eef|https://github.com/apache/calcite/commit/9c870eef69ff2a0066125517c635f25857106607];
thanks for the PR, [~nobigo]!
> Improve error message from RelRunner
> ------------------------------------
>
> Key: CALCITE-4585
> URL: https://issues.apache.org/jira/browse/CALCITE-4585
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.26.0
> Reporter: duan xiong
> Assignee: Julian Hyde
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.27.0
>
> Time Spent: 2h 50m
> Remaining Estimate: 0h
>
> When use prepareStatement parse and run RelNode error, the exception's error
> message is confusing.
> In particular, if you prepare the statement using
> {{RelRunner.prepare(RelNode)}} and prepare fails, the exception should report
> the {{RelNode}} plan. Currently it tries to report the SQL, and for this kind
> of query, there is no SQL.
> This code capture the exception,But Only the output of SQL exception is
> processed.So need to add the procedure to handle extra exception.
> {code:java}
> //
> try {
> final Meta.Signature signature =
> parseQuery(query, createPrepareContext(), -1);
> final CalcitePreparedStatement calcitePreparedStatement =
> (CalcitePreparedStatement) factory.newPreparedStatement(this, null,
> signature, resultSetType, resultSetConcurrency,
> resultSetHoldability);
>
> server.getStatement(calcitePreparedStatement.handle).setSignature(signature);
> return calcitePreparedStatement;
> } catch (Exception e) {
> throw Helper.INSTANCE.createException(
> "Error while preparing statement [" + query.sql + "]", e);
> }
> {code}
> When we run RelNode or queryable show wrong,this exception can be:
> "Error while preparing statement [null]"
> can't log the real exception
--
This message was sent by Atlassian Jira
(v8.3.4#803005)