[teiid-issues] [JBoss JIRA] (TEIID-6010) Salesforce: an implementation restriction when querying ContentDocumentLink table
Dmitrii Pogorelov (Jira)
issues at jboss.org
Thu Aug 13 08:39:00 EDT 2020
[ https://issues.redhat.com/browse/TEIID-6010?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14392141#comment-14392141 ]
Dmitrii Pogorelov commented on TEIID-6010:
------------------------------------------
[~shawkins] it still fails without limit clause (SQuirrel adds the limit automatically):
{code:java}
---------------------------------------------------------------------------- OPTIMIZATION COMPLETE: PROCESSOR PLAN: AccessNode(0) output=[sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility] SELECT g_0.Id, g_0.LinkedEntityId, g_0.ContentDocumentId, g_0.IsDeleted, g_0.ShareType, g_0.Visibility FROM sf34.ContentDocumentLink AS g_0 WHERE g_0.ContentDocumentId = '0691t000002aeKaAAI' ============================================================================ 2020-08-13 14:36:49,765 WARN [org.teiid.CONNECTOR] (Worker6_QueryProcessorQueue12) +DOVlogY13Ra Connector worker process failed for atomic-request=+DOVlogY13Ra.2.0.2: org.teiid.translator.TranslatorException at org.teiid.salesforce.BaseSalesforceConnection.query(BaseSalesforceConnection.java:198) at org.teiid.translator.salesforce.execution.QueryExecutionImpl.execute(QueryExecutionImpl.java:249) at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:402) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 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:228) at com.sun.proxy.$Proxy46.execute(Unknown Source) at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:302) at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:108) at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:104) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:59) at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:281) at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:124) at org.teiid.dqp.internal.process.ThreadReuseExecutor$2.run(ThreadReuseExecutor.java:212) 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) Caused by: [MalformedQueryFault [ApiQueryFault [ApiFault exceptionCode='MALFORMED_QUERY' exceptionMessage='Implementation restriction: ContentDocumentLink requires a filter by a single Id on ContentDocumentId or LinkedEntityId using the equals operator or multiple Id's using the IN operator.' ] row='-1' column='-1' ] ] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.lang.Class.newInstance(Class.java:442) at com.sforce.ws.bind.TypeMapper.readSingle(TypeMapper.java:652) at com.sforce.ws.bind.TypeMapper.readObject(TypeMapper.java:529) at com.sforce.ws.transport.SoapConnection.parseDetail(SoapConnection.java:230)
at com.sforce.ws.transport.SoapConnection.createException(SoapConnection.java:204) at com.sforce.ws.transport.SoapConnection.receive(SoapConnection.java:150) at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:99) at com.sforce.soap.partner.PartnerConnection.query(PartnerConnection.java:1078) at org.teiid.salesforce.BaseSalesforceConnection.query(BaseSalesforceConnection.java:193) ... 19 more 2020-08-13 14:36:49,768 WARN [org.teiid.PROCESSOR] (Worker5_QueryProcessorQueue13) +DOVlogY13Ra TEIID30020 Processing exception for request +DOVlogY13Ra.2 'TEIID30504 sf34: null'. Originally TeiidProcessingException sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method). Enable more detailed logging to see the entire stacktrace. {code}
> Salesforce: an implementation restriction when querying ContentDocumentLink table
> ---------------------------------------------------------------------------------
>
> Key: TEIID-6010
> URL: https://issues.redhat.com/browse/TEIID-6010
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Affects Versions: 14.0
> Reporter: Dmitrii Pogorelov
> Assignee: Steven Hawkins
> Priority: Major
>
> when running the following query:
> {code:sql}
> SELECT "Id", "LinkedEntityId", "ContentDocumentId", "IsDeleted", "ShareType", "Visibility"
> FROM "sf34.ContentDocumentLink"
> WHERE "ContentDocumentId" = '0691t000002aeKaAAI' ;; {code}
> Teiid throws out the stack trace:
> {code:java}
> 2020-08-10 14:11:56,721 WARN [org.teiid.CONNECTOR] (Worker2_QueryProcessorQueue33) SSrs8BwlD5AI Connector worker process failed for atomic-request=SSrs8BwlD5AI.14.0.0: org.teiid.translator.TranslatorException at org.teiid.salesforce.BaseSalesforceConnection.query(BaseSalesforceConnection.java:198) at org.teiid.translator.salesforce.execution.QueryExecutionImpl.execute(QueryExecutionImpl.java:249) at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:402) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 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:228) at com.sun.proxy.$Proxy46.execute(Unknown Source) at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:302) at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:108) at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:104) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:59) at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:281) at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:124) at org.teiid.dqp.internal.process.ThreadReuseExecutor$2.run(ThreadReuseExecutor.java:212) 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) Caused by: [MalformedQueryFault [ApiQueryFault [ApiFault exceptionCode='MALFORMED_QUERY' exceptionMessage='Implementation restriction: ContentDocumentLink requires a filter by a single Id on ContentDocumentId or LinkedEntityId using the equals operator or multiple Id's using the IN operator.' ] row='-1' column='-1' ] ] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.lang.Class.newInstance(Class.java:442) at com.sforce.ws.bind.TypeMapper.readSingle(TypeMapper.java:652) at com.sforce.ws.bind.TypeMapper.readObject(TypeMapper.java:529) at com.sforce.ws.transport.SoapConnection.parseDetail(SoapConnection.java:230) at com.sforce.ws.transport.SoapConnection.createException(SoapConnection.java:204) at com.sforce.ws.transport.SoapConnection.receive(SoapConnection.java:150) at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:99) at com.sforce.soap.partner.PartnerConnection.query(PartnerConnection.java:1078) at org.teiid.salesforce.BaseSalesforceConnection.query(BaseSalesforceConnection.java:193) ... 19 more{code}
> though the native query works:
> {code:sql}
> select w.* from (call sf34.native('search;SELECT Id, LinkedEntityId, ContentDocumentId, IsDeleted, ShareType, Visibility FROM ContentDocumentLink WHERE ContentDocumentId = ''0691t000002aeKaAAI''', null)) as w ;; {code}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
More information about the teiid-issues
mailing list