[teiid-issues] [JBoss JIRA] (TEIID-5005) Boolean expression is incorrectly rewritten in WHERE condition and cause errors on PG
Steven Hawkins (JIRA)
issues at jboss.org
Tue Jul 25 08:55:00 EDT 2017
[ https://issues.jboss.org/browse/TEIID-5005?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13439855#comment-13439855 ]
Steven Hawkins commented on TEIID-5005:
---------------------------------------
The fix for TEIID-4877 was too narrow. We need to nest more expression types in parens to satisfy the pg parser.
> Boolean expression is incorrectly rewritten in WHERE condition and cause errors on PG
> -------------------------------------------------------------------------------------
>
> Key: TEIID-5005
> URL: https://issues.jboss.org/browse/TEIID-5005
> 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
>
> when running the following query on PG:
> {code:sql}
> select * from test_pg.test_bool_exps where ((b=true) and (a=1)) = true ;;
> {code}
> teiid returns the following error:
> {code}
> 2017-07-25 13:19:10,211 WARN [org.teiid.CONNECTOR] (Worker5_QueryProcessorQueue329) o4ihy1GzEdYV Connector worker process failed for atomic-request=o4ihy1GzEdYV.89.0.71: org.teiid.t
> ranslator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT g_0."a" AS c_0, g_0."b" AS c_1 FROM "public"."test_bool_
> exps" AS g_0 WHERE g_0."b" = TRUE AND g_0."a" = 1 = TRUE LIMIT 100]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:365)
> at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:220)
> at com.sun.proxy.$Proxy28.execute(Unknown Source)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:306)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:112)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:108)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:65)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:284)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> {code}
> though the same query on MySQL, MSSQL and Oracle works correctly.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
More information about the teiid-issues
mailing list