]
Steven Hawkins commented on TEIID-5061:
---------------------------------------
For transactional statements - that that are participating in or start a transaction - any
exception with creating the result set will be determined before any results are sent to
the client. For non-transactional statements, we return results as quickly as possible -
which yes does mean that it's up to the client how errors that are seen in walking the
results are treated.
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.