[teiid-issues] [JBoss JIRA] (TEIID-5941) Regression in salesforce translator when using LIKE query with wildcard

Steven Hawkins (Jira) issues at jboss.org
Mon Apr 20 10:51:42 EDT 2020


     [ https://issues.redhat.com/browse/TEIID-5941?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steven Hawkins resolved TEIID-5941.
-----------------------------------
    Fix Version/s: 14.0
                   13.1.1
       Resolution: Done


The existing logic was using .toString in several places on expressions, which results in the default translation not the salesforce expected.  So things would fail with like when the table alias was pushed.

> Regression in salesforce translator when using LIKE query with wildcard
> -----------------------------------------------------------------------
>
>                 Key: TEIID-5941
>                 URL: https://issues.redhat.com/browse/TEIID-5941
>             Project: Teiid
>          Issue Type: Bug
>          Components: Salesforce Connector
>    Affects Versions: 13.1
>            Reporter: Steven Hawkins
>            Assignee: Steven Hawkins
>            Priority: Critical
>              Labels: regression
>             Fix For: 14.0, 13.1.1
>
>   Original Estimate: 2 hours
>  Remaining Estimate: 2 hours
>
> Running any query with a LIKE and wildcard such as 
> {code:sql}
> select Name from Account where Name like 'gene%'
> {code}
> results in 
> {code}
> SQL Error [30504] [50000]: TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 bqt: null
> {code}
> In the client.
> The exception in the vdb pod is
> {code}
> org.teiid.translator.TranslatorException: null
> 	at org.teiid.spring.data.salesforce.SalesforceConnectionImpl.query(SalesforceConnectionImpl.java:247) ~[spring-data-salesforce-1.4.1.fuse-jdk11-800014-redhat-00001.jar!/:1.4.1.fuse-jdk11-800014-redhat-00001]
> 	at org.teiid.translator.salesforce.execution.QueryExecutionImpl.execute(QueryExecutionImpl.java:249) ~[translator-salesforce-13.1.1.fuse-jdk11-800017-redhat-00001.jar!/:13.1.1.fuse-jdk11-800017-redhat-00001]
> 	at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:402) ~[teiid-engine-13.1.1.fuse-jdk11-800017-redhat-00001.jar!/:13.1.1.fuse-jdk11-800017-redhat-00001]
> 	at jdk.internal.reflect.GeneratedMethodAccessor53.invoke(Unknown Source) ~[na:na]
> 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
> 	at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:228) ~[teiid-engine-13.1.1.fuse-jdk11-800017-redhat-00001.jar!/:13.1.1.fuse-jdk11-800017-redhat-00001]
> 	at com.sun.proxy.$Proxy121.execute(Unknown Source) ~[na:na]
> 	at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:302) ~[teiid-engine-13.1.1.fuse-jdk11-800017-redhat-00001.jar!/:13.1.1.fuse-jdk11-800017-redhat-00001]
> 	at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:108) ~[teiid-engine-13.1.1.fuse-jdk11-800017-redhat-00001.jar!/:13.1.1.fuse-jdk11-800017-redhat-00001]
> 	at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:104) ~[teiid-engine-13.1.1.fuse-jdk11-800017-redhat-00001.jar!/:13.1.1.fuse-jdk11-800017-redhat-00001]
> 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
> 	at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:59) ~[teiid-engine-13.1.1.fuse-jdk11-800017-redhat-00001.jar!/:13.1.1.fuse-jdk11-800017-redhat-00001]
> 	at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:281) ~[teiid-engine-13.1.1.fuse-jdk11-800017-redhat-00001.jar!/:13.1.1.fuse-jdk11-800017-redhat-00001]
> 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:124) ~[teiid-engine-13.1.1.fuse-jdk11-800017-redhat-00001.jar!/:13.1.1.fuse-jdk11-800017-redhat-00001]
> 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$2.run(ThreadReuseExecutor.java:212) ~[teiid-engine-13.1.1.fuse-jdk11-800017-redhat-00001.jar!/:13.1.1.fuse-jdk11-800017-redhat-00001]
> 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
> 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
> 	at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
> Caused by: com.sforce.soap.partner.fault.InvalidFieldFault: null
> 	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
> 	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:na]
> 	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:na]
> 	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) ~[na:na]
> 	at java.base/java.lang.Class.newInstance(Class.java:584) ~[na:na]
> 	at com.sforce.ws.bind.TypeMapper.readSingle(TypeMapper.java:673) ~[force-wsc-45.1.0.jar!/:na]
> 	at com.sforce.ws.bind.TypeMapper.readObject(TypeMapper.java:556) ~[force-wsc-45.1.0.jar!/:na]
> 	at com.sforce.ws.transport.SoapConnection.parseDetail(SoapConnection.java:236) ~[force-wsc-45.1.0.jar!/:na]
> 	at com.sforce.ws.transport.SoapConnection.createException(SoapConnection.java:210) ~[force-wsc-45.1.0.jar!/:na]
> 	at com.sforce.ws.transport.SoapConnection.receive(SoapConnection.java:156) ~[force-wsc-45.1.0.jar!/:na]
> 	at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:99) ~[force-wsc-45.1.0.jar!/:na]
> 	at com.sforce.soap.partner.PartnerConnection.query(PartnerConnection.java:1197) ~[force-partner-api-45.1.0.jar!/:na]
> 	at org.teiid.spring.data.salesforce.SalesforceConnectionImpl.query(SalesforceConnectionImpl.java:244) ~[spring-data-salesforce-1.4.1.fuse-jdk11-800014-redhat-00001.jar!/:1.4.1.fuse-jdk11-800014-redhat-00001]
> 	... 18 common frames omitted
> 2020-04-20 13:11:21.198  WARN 1 --- [ocessorQueue310] org.teiid.PROCESSOR                      : TEIID30020 Processing exception for request 9oUsxRHqO3g6.35 'TEIID30504 bqt: null'. Originally TeiidProcessingException java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method). Enable more detailed logging to see the entire stacktrace.
> {code}
> When not using a wildcard, the query passes.
> This used to work correctly in 7.6



--
This message was sent by Atlassian Jira
(v7.13.8#713008)


More information about the teiid-issues mailing list