[JBoss JIRA] (TEIID-6010) Salesforce: an implementation restriction when querying ContentDocumentLink table
by Steven Hawkins (Jira)
[ https://issues.redhat.com/browse/TEIID-6010?page=com.atlassian.jira.plugi... ]
Steven Hawkins commented on TEIID-6010:
---------------------------------------
The only difference with what you are showing is the limit clause. Does it work without it?
> 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)
3 years, 8 months
[JBoss JIRA] (TEIID-6017) Not able to connect GCP bucket using S3 translator
by Nayan Bija (Jira)
[ https://issues.redhat.com/browse/TEIID-6017?page=com.atlassian.jira.plugi... ]
Nayan Bija updated TEIID-6017:
------------------------------
Description:
As suggested in the ticket TEIID-6015
We have tried to connect the GCP bucket using the S3 translator(not amazon-s3).
As mentioned, S3 doesn't support google authentication,
so we have created access key and secret key of Google bucket by logging into the GCP accoudnt.
We have followed below steps to create access key and secret key.
_*Storage->Setting->INTEROPERABILITY-> Service account HMAC->Create a key for service account"*_
We have also created below adapter file and VDB but still, we are not able to connect to GCP.
<resource-adapter id="amazon-s3-custom">
<module slot="main" id="org.jboss.teiid.resource-adapter.s3"/>
<transaction-support>NoTransaction</transaction-support>
<connection-definitions>
<connection-definition class-name="org.teiid.resource.adapter.s3.S3ManagedConnectionFactory" jndi-name="java:/s3DS" enabled="true" use-java-context="true" pool-name="teiid-s3-ds">
<config-property name="bucket">abc</config-property>
<config-property name="endpoint">[https://storage.googleapis.com|https://storage.googleapis.com/]</config-property>
<config-property name="secretKey">xxx</config-property>
<config-property name="accessKey">xxx</config-property>
</connection-definition>
</connection-definitions>
</resource-adapter>
VDB
----
<?xml version="1.0"?>
<vdb name="gcp" version="1">
<connection-type>BY_VERSION</connection-type>
<model name="s3">
<source name="web-connector" translator-name="amazon-s3-custom" connection-jndi-name="java:/s3DS"/>
</model>
<translator name="amazon-s3-custom" type="amazon-s3">
<property name="accesskey" value="xxx"/>
<property name="secretkey" value="xxx"/>
<property name="bucket" value="abc"/>
</translator>
</vdb
as we tried to connect we are getting below error.
org.teiid.jdbc.TeiidSQLException: TEIID20018 Unable to find a component used authenticate on to Teiid
In the above configuration, where should we mention the File name?
As I have read the properties in the documentation, I could see bucket property, where we can add a bucket name. but where should we add the file name which is present in the bucket?
Could you please help us with it?
was:
As suggested in the ticket TEIID-6015
We have tried to connect the GCP bucket using the S3 translator(not amazon-s3).
So as mentioned, S3 doesn't support google authentication,
so we have created access key and secret key of Google bucket under _*"Service account HMAC"*_ (Storage->Setting->INTEROPERABILITY).
We have also created below adapter file and VDB but still, we are not able to connect to GCP.
<resource-adapter id="amazon-s3-custom">
<module slot="main" id="org.jboss.teiid.resource-adapter.s3"/>
<transaction-support>NoTransaction</transaction-support>
<connection-definitions>
<connection-definition class-name="org.teiid.resource.adapter.s3.S3ManagedConnectionFactory" jndi-name="java:/s3DS" enabled="true" use-java-context="true" pool-name="teiid-s3-ds">
<config-property name="bucket">abc</config-property>
<config-property name="endpoint">[https://storage.googleapis.com|https://storage.googleapis.com/]</config-property>
<config-property name="secretKey">xxx</config-property>
<config-property name="accessKey">xxx</config-property>
</connection-definition>
</connection-definitions>
</resource-adapter>
VDB
----
<?xml version="1.0"?>
<vdb name="gcp" version="1">
<connection-type>BY_VERSION</connection-type>
<model name="s3">
<source name="web-connector" translator-name="amazon-s3-custom" connection-jndi-name="java:/s3DS"/>
</model>
<translator name="amazon-s3-custom" type="amazon-s3">
<property name="accesskey" value="xxx"/>
<property name="secretkey" value="xxx"/>
<property name="bucket" value="abc"/>
</translator>
</vdb
as we tried to connect we are getting below error.
org.teiid.jdbc.TeiidSQLException: TEIID20018 Unable to find a component used authenticate on to Teiid
In the above configuration, where should we mention the File name?
As I have read the properties in the documentation, I could see bucket property, where we can add a bucket name. but where should we add the file name which is present in the bucket?
Could you please help us with it?
> Not able to connect GCP bucket using S3 translator
> --------------------------------------------------
>
> Key: TEIID-6017
> URL: https://issues.redhat.com/browse/TEIID-6017
> Project: Teiid
> Issue Type: Feature Request
> Reporter: Nayan Bija
> Assignee: Steven Hawkins
> Priority: Major
>
> As suggested in the ticket TEIID-6015
> We have tried to connect the GCP bucket using the S3 translator(not amazon-s3).
> As mentioned, S3 doesn't support google authentication,
> so we have created access key and secret key of Google bucket by logging into the GCP accoudnt.
> We have followed below steps to create access key and secret key.
> _*Storage->Setting->INTEROPERABILITY-> Service account HMAC->Create a key for service account"*_
>
> We have also created below adapter file and VDB but still, we are not able to connect to GCP.
>
> <resource-adapter id="amazon-s3-custom">
> <module slot="main" id="org.jboss.teiid.resource-adapter.s3"/>
> <transaction-support>NoTransaction</transaction-support>
> <connection-definitions>
> <connection-definition class-name="org.teiid.resource.adapter.s3.S3ManagedConnectionFactory" jndi-name="java:/s3DS" enabled="true" use-java-context="true" pool-name="teiid-s3-ds">
> <config-property name="bucket">abc</config-property>
> <config-property name="endpoint">[https://storage.googleapis.com|https://storage.googleapis.com/]</config-property>
> <config-property name="secretKey">xxx</config-property>
> <config-property name="accessKey">xxx</config-property>
> </connection-definition>
> </connection-definitions>
> </resource-adapter>
>
>
>
> VDB
> ----
>
> <?xml version="1.0"?>
> <vdb name="gcp" version="1">
> <connection-type>BY_VERSION</connection-type>
> <model name="s3">
> <source name="web-connector" translator-name="amazon-s3-custom" connection-jndi-name="java:/s3DS"/>
> </model>
> <translator name="amazon-s3-custom" type="amazon-s3">
> <property name="accesskey" value="xxx"/>
> <property name="secretkey" value="xxx"/>
> <property name="bucket" value="abc"/>
> </translator>
> </vdb
>
>
> as we tried to connect we are getting below error.
>
> org.teiid.jdbc.TeiidSQLException: TEIID20018 Unable to find a component used authenticate on to Teiid
>
> In the above configuration, where should we mention the File name?
> As I have read the properties in the documentation, I could see bucket property, where we can add a bucket name. but where should we add the file name which is present in the bucket?
>
>
>
> Could you please help us with it?
>
>
>
>
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
3 years, 8 months
[JBoss JIRA] (TEIID-6017) Not able to connect GCP bucket using S3 translator
by Nayan Bija (Jira)
[ https://issues.redhat.com/browse/TEIID-6017?page=com.atlassian.jira.plugi... ]
Nayan Bija updated TEIID-6017:
------------------------------
Description:
As suggested in the ticket TEIID-6015
We have tried to connect the GCP bucket using the S3 translator(not amazon-s3).
So mentioned, S3 doesn't support google authentication,
so we have created access key and secret key of Google bucket under _*"Service account HMAC"*_ (Storage->Setting->INTEROPERABILITY).
We have also created below adapter file and VDB but still, we are not able to connect to GCP.
<resource-adapter id="amazon-s3-custom">
<module slot="main" id="org.jboss.teiid.resource-adapter.s3"/>
<transaction-support>NoTransaction</transaction-support>
<connection-definitions>
<connection-definition class-name="org.teiid.resource.adapter.s3.S3ManagedConnectionFactory" jndi-name="java:/s3DS" enabled="true" use-java-context="true" pool-name="teiid-s3-ds">
<config-property name="bucket">abc</config-property>
<config-property name="endpoint">https://storage.googleapis.com</config-property>
<config-property name="secretKey">xxx</config-property>
<config-property name="accessKey">xxx</config-property>
</connection-definition>
</connection-definitions>
</resource-adapter>
VDB
-----
<?xml version="1.0"?>
<vdb name="gcp" version="1">
<connection-type>BY_VERSION</connection-type>
<model name="s3">
<source name="web-connector" translator-name="amazon-s3-custom" connection-jndi-name="java:/s3DS"/>
</model>
<translator name="amazon-s3-custom" type="amazon-s3">
<property name="accesskey" value="xxx"/>
<property name="secretkey" value="xxx"/>
<property name="bucket" value="abc"/>
</translator>
</vdb
as we tried to connect we are getting below error.
org.teiid.jdbc.TeiidSQLException: TEIID20018 Unable to find a component used authenticate on to Teiid
In the above configuration, where should we mention the File name?
As I have read the properties in the documentation, I could see bucket property, where we can add a bucket name. but where should we add the file name which is present in the bucket?
Could you please help us with it?
> Not able to connect GCP bucket using S3 translator
> --------------------------------------------------
>
> Key: TEIID-6017
> URL: https://issues.redhat.com/browse/TEIID-6017
> Project: Teiid
> Issue Type: Feature Request
> Reporter: Nayan Bija
> Assignee: Steven Hawkins
> Priority: Major
>
> As suggested in the ticket TEIID-6015
> We have tried to connect the GCP bucket using the S3 translator(not amazon-s3).
> So mentioned, S3 doesn't support google authentication,
> so we have created access key and secret key of Google bucket under _*"Service account HMAC"*_ (Storage->Setting->INTEROPERABILITY).
>
> We have also created below adapter file and VDB but still, we are not able to connect to GCP.
>
>
> <resource-adapter id="amazon-s3-custom">
> <module slot="main" id="org.jboss.teiid.resource-adapter.s3"/>
> <transaction-support>NoTransaction</transaction-support>
> <connection-definitions>
> <connection-definition class-name="org.teiid.resource.adapter.s3.S3ManagedConnectionFactory" jndi-name="java:/s3DS" enabled="true" use-java-context="true" pool-name="teiid-s3-ds">
> <config-property name="bucket">abc</config-property>
> <config-property name="endpoint">https://storage.googleapis.com</config-property>
> <config-property name="secretKey">xxx</config-property>
> <config-property name="accessKey">xxx</config-property>
> </connection-definition>
> </connection-definitions>
> </resource-adapter>
>
>
>
> VDB
> -----
>
> <?xml version="1.0"?>
> <vdb name="gcp" version="1">
> <connection-type>BY_VERSION</connection-type>
> <model name="s3">
> <source name="web-connector" translator-name="amazon-s3-custom" connection-jndi-name="java:/s3DS"/>
> </model>
> <translator name="amazon-s3-custom" type="amazon-s3">
> <property name="accesskey" value="xxx"/>
> <property name="secretkey" value="xxx"/>
> <property name="bucket" value="abc"/>
> </translator>
> </vdb
>
>
> as we tried to connect we are getting below error.
>
> org.teiid.jdbc.TeiidSQLException: TEIID20018 Unable to find a component used authenticate on to Teiid
>
> In the above configuration, where should we mention the File name?
> As I have read the properties in the documentation, I could see bucket property, where we can add a bucket name. but where should we add the file name which is present in the bucket?
>
>
>
> Could you please help us with it?
>
>
>
>
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
3 years, 8 months
[JBoss JIRA] (TEIID-6017) Not able to connect GCP bucket using S3 translator
by Nayan Bija (Jira)
[ https://issues.redhat.com/browse/TEIID-6017?page=com.atlassian.jira.plugi... ]
Nayan Bija updated TEIID-6017:
------------------------------
Description:
As suggested in the ticket TEIID-6015
We have tried to connect the GCP bucket using the S3 translator(not amazon-s3).
So as mentioned, S3 doesn't support google authentication,
so we have created access key and secret key of Google bucket under _*"Service account HMAC"*_ (Storage->Setting->INTEROPERABILITY).
We have also created below adapter file and VDB but still, we are not able to connect to GCP.
<resource-adapter id="amazon-s3-custom">
<module slot="main" id="org.jboss.teiid.resource-adapter.s3"/>
<transaction-support>NoTransaction</transaction-support>
<connection-definitions>
<connection-definition class-name="org.teiid.resource.adapter.s3.S3ManagedConnectionFactory" jndi-name="java:/s3DS" enabled="true" use-java-context="true" pool-name="teiid-s3-ds">
<config-property name="bucket">abc</config-property>
<config-property name="endpoint">[https://storage.googleapis.com|https://storage.googleapis.com/]</config-property>
<config-property name="secretKey">xxx</config-property>
<config-property name="accessKey">xxx</config-property>
</connection-definition>
</connection-definitions>
</resource-adapter>
VDB
----
<?xml version="1.0"?>
<vdb name="gcp" version="1">
<connection-type>BY_VERSION</connection-type>
<model name="s3">
<source name="web-connector" translator-name="amazon-s3-custom" connection-jndi-name="java:/s3DS"/>
</model>
<translator name="amazon-s3-custom" type="amazon-s3">
<property name="accesskey" value="xxx"/>
<property name="secretkey" value="xxx"/>
<property name="bucket" value="abc"/>
</translator>
</vdb
as we tried to connect we are getting below error.
org.teiid.jdbc.TeiidSQLException: TEIID20018 Unable to find a component used authenticate on to Teiid
In the above configuration, where should we mention the File name?
As I have read the properties in the documentation, I could see bucket property, where we can add a bucket name. but where should we add the file name which is present in the bucket?
Could you please help us with it?
was:
As suggested in the ticket TEIID-6015
We have tried to connect the GCP bucket using the S3 translator(not amazon-s3).
So mentioned, S3 doesn't support google authentication,
so we have created access key and secret key of Google bucket under _*"Service account HMAC"*_ (Storage->Setting->INTEROPERABILITY).
We have also created below adapter file and VDB but still, we are not able to connect to GCP.
<resource-adapter id="amazon-s3-custom">
<module slot="main" id="org.jboss.teiid.resource-adapter.s3"/>
<transaction-support>NoTransaction</transaction-support>
<connection-definitions>
<connection-definition class-name="org.teiid.resource.adapter.s3.S3ManagedConnectionFactory" jndi-name="java:/s3DS" enabled="true" use-java-context="true" pool-name="teiid-s3-ds">
<config-property name="bucket">abc</config-property>
<config-property name="endpoint">https://storage.googleapis.com</config-property>
<config-property name="secretKey">xxx</config-property>
<config-property name="accessKey">xxx</config-property>
</connection-definition>
</connection-definitions>
</resource-adapter>
VDB
-----
<?xml version="1.0"?>
<vdb name="gcp" version="1">
<connection-type>BY_VERSION</connection-type>
<model name="s3">
<source name="web-connector" translator-name="amazon-s3-custom" connection-jndi-name="java:/s3DS"/>
</model>
<translator name="amazon-s3-custom" type="amazon-s3">
<property name="accesskey" value="xxx"/>
<property name="secretkey" value="xxx"/>
<property name="bucket" value="abc"/>
</translator>
</vdb
as we tried to connect we are getting below error.
org.teiid.jdbc.TeiidSQLException: TEIID20018 Unable to find a component used authenticate on to Teiid
In the above configuration, where should we mention the File name?
As I have read the properties in the documentation, I could see bucket property, where we can add a bucket name. but where should we add the file name which is present in the bucket?
Could you please help us with it?
> Not able to connect GCP bucket using S3 translator
> --------------------------------------------------
>
> Key: TEIID-6017
> URL: https://issues.redhat.com/browse/TEIID-6017
> Project: Teiid
> Issue Type: Feature Request
> Reporter: Nayan Bija
> Assignee: Steven Hawkins
> Priority: Major
>
> As suggested in the ticket TEIID-6015
> We have tried to connect the GCP bucket using the S3 translator(not amazon-s3).
> So as mentioned, S3 doesn't support google authentication,
> so we have created access key and secret key of Google bucket under _*"Service account HMAC"*_ (Storage->Setting->INTEROPERABILITY).
>
> We have also created below adapter file and VDB but still, we are not able to connect to GCP.
>
>
> <resource-adapter id="amazon-s3-custom">
> <module slot="main" id="org.jboss.teiid.resource-adapter.s3"/>
> <transaction-support>NoTransaction</transaction-support>
> <connection-definitions>
> <connection-definition class-name="org.teiid.resource.adapter.s3.S3ManagedConnectionFactory" jndi-name="java:/s3DS" enabled="true" use-java-context="true" pool-name="teiid-s3-ds">
> <config-property name="bucket">abc</config-property>
> <config-property name="endpoint">[https://storage.googleapis.com|https://storage.googleapis.com/]</config-property>
> <config-property name="secretKey">xxx</config-property>
> <config-property name="accessKey">xxx</config-property>
> </connection-definition>
> </connection-definitions>
> </resource-adapter>
>
>
>
> VDB
> ----
>
> <?xml version="1.0"?>
> <vdb name="gcp" version="1">
> <connection-type>BY_VERSION</connection-type>
> <model name="s3">
> <source name="web-connector" translator-name="amazon-s3-custom" connection-jndi-name="java:/s3DS"/>
> </model>
> <translator name="amazon-s3-custom" type="amazon-s3">
> <property name="accesskey" value="xxx"/>
> <property name="secretkey" value="xxx"/>
> <property name="bucket" value="abc"/>
> </translator>
> </vdb
>
>
> as we tried to connect we are getting below error.
>
> org.teiid.jdbc.TeiidSQLException: TEIID20018 Unable to find a component used authenticate on to Teiid
>
> In the above configuration, where should we mention the File name?
> As I have read the properties in the documentation, I could see bucket property, where we can add a bucket name. but where should we add the file name which is present in the bucket?
>
>
>
> Could you please help us with it?
>
>
>
>
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
3 years, 8 months
[JBoss JIRA] (TEIID-6010) Salesforce: an implementation restriction when querying ContentDocumentLink table
by Dmitrii Pogorelov (Jira)
[ https://issues.redhat.com/browse/TEIID-6010?page=com.atlassian.jira.plugi... ]
Dmitrii Pogorelov commented on TEIID-6010:
------------------------------------------
[~shawkins] That's strange. Nothing special, just Teiid 14.0.0 with the original Salesforce connector and the query from the description above.
>Do you have a query plan of this failing?
sure:
{code:java}
============================================================================ USER COMMAND: SELECT sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility FROM sf34.ContentDocumentLink WHERE sf34.ContentDocumentLink.ContentDocumentId = '0691t000002aeKaAAI' LIMIT 100 ---------------------------------------------------------------------------- OPTIMIZE: SELECT sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility FROM sf34.ContentDocumentLink WHERE sf34.ContentDocumentLink.ContentDocumentId = '0691t000002aeKaAAI' LIMIT 100 ---------------------------------------------------------------------------- GENERATE CANONICAL: SELECT sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility FROM sf34.ContentDocumentLink WHERE sf34.ContentDocumentLink.ContentDocumentId = '0691t000002aeKaAAI' LIMIT 100 CANONICAL PLAN: TupleLimit(groups=[], props={MAX_TUPLE_LIMIT=100}) Project(groups=[sf34.ContentDocumentLink], props={PROJECT_COLS=[sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility]}) Select(groups=[sf34.ContentDocumentLink], props={SELECT_CRITERIA=sf34.ContentDocumentLink.ContentDocumentId = '0691t000002aeKaAAI'}) Source(groups=[sf34.ContentDocumentLink]) ============================================================================ EXECUTING PlaceAccess AFTER: TupleLimit(groups=[], props={MAX_TUPLE_LIMIT=100}) Project(groups=[sf34.ContentDocumentLink], props={PROJECT_COLS=[sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility]}) Select(groups=[sf34.ContentDocumentLink], props={SELECT_CRITERIA=sf34.ContentDocumentLink.ContentDocumentId = '0691t000002aeKaAAI'}) Access(groups=[sf34.ContentDocumentLink], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf34, nameInSource=null, uuid=tid:5c9ab47baa23-0035cbf4-00000000}) Source(groups=[sf34.ContentDocumentLink]) ============================================================================ EXECUTING PushSelectCriteria AFTER: TupleLimit(groups=[]) Project(groups=[sf34.ContentDocumentLink], props={PROJECT_COLS=[sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility]}) Access(groups=[sf34.ContentDocumentLink], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf34, nameInSource=null, uuid=tid:5c9ab47baa23-0035cbf4-00000000}) Select(groups=[sf34.ContentDocumentLink], props={SELECT_CRITERIA=sf34.ContentDocumentLink.ContentDocumentId = '0691t000002aeKaAAI'}) Source(groups=[sf34.ContentDocumentLink]) ============================================================================
EXECUTING CleanCriteria AFTER: TupleLimit(groups=[], props={MAX_TUPLE_LIMIT=100, OUTPUT_COLS=null}) Project(groups=[sf34.ContentDocumentLink], props={PROJECT_COLS=[sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility], OUTPUT_COLS=null}) Access(groups=[sf34.ContentDocumentLink], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf34, nameInSource=null, uuid=tid:5c9ab47baa23-0035cbf4-00000000, OUTPUT_COLS=null}) Select(groups=[sf34.ContentDocumentLink], props={SELECT_CRITERIA=sf34.ContentDocumentLink.ContentDocumentId = '0691t000002aeKaAAI', OUTPUT_COLS=null}) Source(groups=[sf34.ContentDocumentLink], props={OUTPUT_COLS=null}) ============================================================================ EXECUTING RaiseAccess AFTER: Access(groups=[sf34.ContentDocumentLink], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf34, nameInSource=null, uuid=tid:5c9ab47baa23-0035cbf4-00000000, OUTPUT_COLS=null}) TupleLimit(groups=[], props={MAX_TUPLE_LIMIT=100, OUTPUT_COLS=null}) Project(groups=[sf34.ContentDocumentLink], props={PROJECT_COLS=[sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility], OUTPUT_COLS=null}) Select(groups=[sf34.ContentDocumentLink], props={SELECT_CRITERIA=sf34.ContentDocumentLink.ContentDocumentId = '0691t000002aeKaAAI', OUTPUT_COLS=null}) Source(groups=[sf34.ContentDocumentLink]) ============================================================================ EXECUTING PushLargeIn AFTER: Access(groups=[sf34.ContentDocumentLink]) TupleLimit(groups=[]) Project(groups=[sf34.ContentDocumentLink]) Select(groups=[sf34.ContentDocumentLink]) Source(groups=[sf34.ContentDocumentLink]) ============================================================================
EXECUTING AssignOutputElements AFTER: Access(groups=[sf34.ContentDocumentLink], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf34, nameInSource=null, uuid=tid:5c9ab47baa23-0035cbf4-00000000, OUTPUT_COLS=[sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility]}) TupleLimit(groups=[], props={MAX_TUPLE_LIMIT=100, OUTPUT_COLS=[sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility]}) Project(groups=[sf34.ContentDocumentLink], props={PROJECT_COLS=[sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility], OUTPUT_COLS=[sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility]}) Select(groups=[sf34.ContentDocumentLink], props={SELECT_CRITERIA=sf34.ContentDocumentLink.ContentDocumentId = '0691t000002aeKaAAI', OUTPUT_COLS=[sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility]}) Source(groups=[sf34.ContentDocumentLink], props={OUTPUT_COLS=[sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility]}) ============================================================================ EXECUTING PushLimit AFTER: Access(groups=[sf34.ContentDocumentLink]) TupleLimit(groups=[]) Project(groups=[sf34.ContentDocumentLink]) Select(groups=[sf34.ContentDocumentLink]) Source(groups=[sf34.ContentDocumentLink]) ============================================================================
EXECUTING CalculateCost AFTER: Access(groups=[sf34.ContentDocumentLink], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf34, nameInSource=null, uuid=tid:5c9ab47baa23-0035cbf4-00000000, OUTPUT_COLS=[sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility], EST_CARDINALITY=100.0, EST_COL_STATS={sf34.ContentDocumentLink.Id=[-1.0, -1.0, -1.0], sf34.ContentDocumentLink.LinkedEntityId=[-1.0, -1.0, -1.0], sf34.ContentDocumentLink.ContentDocumentId=[1.0, 1.0, 0.0], sf34.ContentDocumentLink.IsDeleted=[-1.0, -1.0, -1.0], ...}}) TupleLimit(groups=[], props={MAX_TUPLE_LIMIT=100, OUTPUT_COLS=[sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility], EST_CARDINALITY=100.0, EST_COL_STATS={sf34.ContentDocumentLink.Id=[-1.0, -1.0, -1.0], sf34.ContentDocumentLink.LinkedEntityId=[-1.0, -1.0, -1.0], sf34.ContentDocumentLink.ContentDocumentId=[1.0, 1.0, 0.0], sf34.ContentDocumentLink.IsDeleted=[-1.0, -1.0, -1.0], ...}}) Project(groups=[sf34.ContentDocumentLink], props={PROJECT_COLS=[sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility], OUTPUT_COLS=[sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility], EST_CARDINALITY=-1.0, EST_COL_STATS={sf34.ContentDocumentLink.Id=[-1.0, -1.0, -1.0], sf34.ContentDocumentLink.LinkedEntityId=[-1.0, -1.0, -1.0], sf34.ContentDocumentLink.ContentDocumentId=[1.0, 1.0, 0.0], sf34.ContentDocumentLink.IsDeleted=[-1.0, -1.0, -1.0], ...}}) Select(groups=[sf34.ContentDocumentLink], props={SELECT_CRITERIA=sf34.ContentDocumentLink.ContentDocumentId = '0691t000002aeKaAAI', OUTPUT_COLS=[sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility], EST_CARDINALITY=-1.0, EST_COL_STATS={sf34.ContentDocumentLink.Id=[-1.0, -1.0, -1.0], sf34.ContentDocumentLink.LinkedEntityId=[-1.0, -1.0, -1.0], sf34.ContentDocumentLink.ContentDocumentId=[1.0, 1.0, 0.0], sf34.ContentDocumentLink.IsDeleted=[-1.0, -1.0, -1.0], ...}}) Source(groups=[sf34.ContentDocumentLink], props={OUTPUT_COLS=[sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility], EST_COL_STATS={sf34.ContentDocumentLink.ContentDocumentId=[-1.0, -1.0, -1.0], sf34.ContentDocumentLink.Id=[-1.0, -1.0, -1.0], sf34.ContentDocumentLink.LinkedEntityId=[-1.0, -1.0, -1.0], sf34.ContentDocumentLink.IsDeleted=[2.0, 2.0, -1.0], ...}, EST_CARDINALITY=-1.0}) ============================================================================ EXECUTING PlanSubqueries AFTER: Access(groups=[sf34.ContentDocumentLink]) TupleLimit(groups=[]) Project(groups=[sf34.ContentDocumentLink]) Select(groups=[sf34.ContentDocumentLink]) Source(groups=[sf34.ContentDocumentLink]) ============================================================================
EXECUTING MergeCriteria AFTER: Access(groups=[sf34.ContentDocumentLink]) TupleLimit(groups=[]) Project(groups=[sf34.ContentDocumentLink]) Select(groups=[sf34.ContentDocumentLink]) Source(groups=[sf34.ContentDocumentLink]) ============================================================================ EXECUTING PlanSorts AFTER: Access(groups=[sf34.ContentDocumentLink]) TupleLimit(groups=[]) Project(groups=[sf34.ContentDocumentLink]) Select(groups=[sf34.ContentDocumentLink]) Source(groups=[sf34.ContentDocumentLink]) ============================================================================ EXECUTING CollapseSource AFTER: Access(groups=[sf34.ContentDocumentLink], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf34, nameInSource=null, uuid=tid:5c9ab47baa23-0035cbf4-00000000, OUTPUT_COLS=[sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility], EST_CARDINALITY=100.0, EST_COL_STATS={sf34.ContentDocumentLink.Id=[-1.0, -1.0, -1.0], sf34.ContentDocumentLink.LinkedEntityId=[-1.0, -1.0, -1.0], sf34.ContentDocumentLink.ContentDocumentId=[1.0, 1.0, 0.0], sf34.ContentDocumentLink.IsDeleted=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT sf34.ContentDocumentLink.Id, sf34.ContentDocumentLink.LinkedEntityId, sf34.ContentDocumentLink.ContentDocumentId, sf34.ContentDocumentLink.IsDeleted, sf34.ContentDocumentLink.ShareType, sf34.ContentDocumentLink.Visibility FROM sf34.ContentDocumentLink WHERE sf34.ContentDocumentLink.ContentDocumentId = '0691t000002aeKaAAI' LIMIT 100}) ============================================================================ CONVERTING PLAN TREE TO PROCESS TREE PROCESS 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' LIMIT 100 ============================================================================ ----------------------------------------------------------------------------
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' LIMIT 100 ============================================================================ 2020-08-13 13:55:22,288 WARN [org.teiid.CONNECTOR] (Worker0_QueryProcessorQueue6) +DOVlogY13Ra Connector worker process failed for atomic-request=+DOVlogY13Ra.0.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 2020-08-13 13:55:22,298 WARN [org.teiid.PROCESSOR] (Worker2_QueryProcessorQueue7) +DOVlogY13Ra TEIID30020 Processing exception for request +DOVlogY13Ra.0 '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)
3 years, 8 months
[JBoss JIRA] (TEIID-6010) Salesforce: an implementation restriction when querying ContentDocumentLink table
by Steven Hawkins (Jira)
[ https://issues.redhat.com/browse/TEIID-6010?page=com.atlassian.jira.plugi... ]
Steven Hawkins commented on TEIID-6010:
---------------------------------------
Yes that exact query against Teiid's 34 and 41 salesforce sources. It of course did not return a result for me, but nor did it error out. Only when the predicate was left off could I reproduce that error message. Is there something more happening here, such as view layers inhibiting the pushdown? Do you have a query plan of this failing?
> 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)
3 years, 8 months
[JBoss JIRA] (TEIID-6010) Salesforce: an implementation restriction when querying ContentDocumentLink table
by Dmitrii Pogorelov (Jira)
[ https://issues.redhat.com/browse/TEIID-6010?page=com.atlassian.jira.plugi... ]
Dmitrii Pogorelov commented on TEIID-6010:
------------------------------------------
Hi [~shawkins] thx for checking it, did you try to provide the same condition:
"ContentDocumentId" = '0691t000002aeKaAAI'
? I didn't want to add any test data because on my side the problem can be reproduced even with a fake id in the query. The problem is that even having all needed data we can't query ContentDocumentLink by any ContentDocumentId value.
> 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)
3 years, 8 months
[JBoss JIRA] (TEIID-6010) Salesforce: an implementation restriction when querying ContentDocumentLink table
by Steven Hawkins (Jira)
[ https://issues.redhat.com/browse/TEIID-6010?page=com.atlassian.jira.plugi... ]
Steven Hawkins resolved TEIID-6010.
-----------------------------------
Fix Version/s: (was: 16.0)
(was: 15.0.1)
(was: 14.0.2)
Resolution: Cannot Reproduce
The may be some missing information here. With what you have I cannot reproduce this with either salesforce 34 or 41. I could only cause the same exception if I left the predicate off entirely.
> 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)
3 years, 9 months