[teiid-issues] [JBoss JIRA] (TEIID-5061) UNION query does not fail or fails with incorrect error message

Steven Hawkins (JIRA) issues at jboss.org
Tue Sep 12 14:03:01 EDT 2017


    [ https://issues.jboss.org/browse/TEIID-5061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13462993#comment-13462993 ] 

Steven Hawkins commented on TEIID-5061:
---------------------------------------

> I can see just empty result

We generally won't return an empty resultset.  There is at least a single row, but it's not being shown by Squirrel.

> with error message but the error message is like just info message

Squirrel must be suppressing the actual exception on ResultSet.next and only showing the following exceptions acting against the now defunct resultset.

You can confirm the behavior I'm describing in your own java program.  This mostly highlights that Squirel must not expect exceptions like these on the ResultSet.next method.

For us to be able to return the exception instead of results initially of course requires fully processing the resultset on the server side.  This is avoided for non-transactional statements - which is non-standard behavior, but does greatly reduce latency.  But you could change this to be an enhancement request to always fully process before returning any results.






> UNION query does not fail or fails with incorrect error message
> ---------------------------------------------------------------
>
>                 Key: TEIID-5061
>                 URL: https://issues.jboss.org/browse/TEIID-5061
>             Project: Teiid
>          Issue Type: Bug
>          Components: Query Engine
>    Affects Versions: 9.3.1
>         Environment: teiid-9.3.1 on WildFly Full 10.0.0.Final (WildFly Core 2.0.10.Final)
>            Reporter: dalex dalex
>            Assignee: Steven Hawkins
>            Priority: Blocker
>         Attachments: errorevaluating_1.jpg, errorevaluating_2.jpg, errorevaluating_2_1.jpg
>
>
> Running the following queries:
> {code:sql}
> select a from test_pg.test_a 
> union all
> select 1
> union all 
> select * from (call procs.pr()) x
> {code}
> or
> {code:sql}
> select a from test_pg.test_a 
> union all
> select 1
> union all 
> select * from (call procs.pr()) x
> union all
> select a from test_pg.test_a
> {code}
> UNION queries do not fail or fail with an incorrect error message returning no results. 
> That is the first run will return the following stacktrace in logs:
> {noformat}
> 2017-09-12 15:06:26,585 WARN  [org.teiid.PROCESSOR] (Worker2_QueryProcessorQueue7) XH74byN2GJ4K TEIID30020 Processing exception for request XH74byN2GJ4K.0 'TEIID30167 org.teiid.jdbc.
> TeiidSQLException: TEIID30328 Unable to evaluate (1 / 0): TEIID30384 Error while evaluating function /'. Originally ProcedureErrorInstructionException '/ by zero' FunctionMethods.jav
> a:296. Enable more detailed logging to see the entire stacktrace.
> {noformat}
> returning no results, the second run of the same query will return:
> {noformat}
> 2017-09-12 15:07:39,427 WARN  [org.teiid.PROCESSOR] (Worker2_QueryProcessorQueue10) XH74byN2GJ4K TEIID30020 Processing exception for request XH74byN2GJ4K.1 'TEIID30167 org.teiid.jdbc
> .TeiidSQLException: TEIID30328 Unable to evaluate (1 / 0): TEIID30384 Error while evaluating function /'. Originally ProcedureErrorInstructionException '/ by zero' FunctionMethods.ja
> va:296. Enable more detailed logging to see the entire stacktrace.
> 2017-09-12 15:07:39,434 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,450 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,454 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,465 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,470 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,474 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,483 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,487 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,500 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,506 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,516 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,520 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,534 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,538 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,549 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> {noformat}
> again without any query results.
> So these queries should return error messages like usual call of the virtual procedure pr does:
> {code:sql}
> call procs.pr()
> {code}
> instead of just closing requests.



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the teiid-issues mailing list