[
https://issues.jboss.org/browse/TEIID-5061?page=com.atlassian.jira.plugin...
]
Steven Hawkins commented on TEIID-5061:
---------------------------------------
So the main problem here is how a client handles non-transational
statements because teiid returns results as quickly as possible.
Yes. We do this because otherwise the latency introduced by Teiid would be quite
significant for large results.
Can I ask you, how do you determine what is transactional statements
and what is non-transactional ones?
If the client has explicitly started a transaction (XA or local) then the statement is
considered transactional. If the client has not started a transaction (autoCommit=true),
the we consult the autoCommitTxn setting, which defaults to DETECT. In DETECT mode we
analyze the query plan with the given transaction isolation level to determine if the
engine should start a transaction at the statement level. For just selects and default
isolation level of READ_COMMITTED, then we won't consider a statement level
transaction as necessary. Typically this only affects plans with procedures or updates
that span multiple sources.
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)