]
Steven Hawkins commented on TEIID-3636:
---------------------------------------
I don't think we have a great workaround for this. The best we could do is that with
an updated api version an offset clause is supported, which would mean that we could
paginate at the translator level. But support for new api versions is effectively
dependent upon TEIID-3492/TEIID-3587 so this likely won't get resolved until 8.12 at
the soonest, and then it could require the manual step of generating salesforce
connectivity for a later api version.
SalesForce.com aggregate function query issues
----------------------------------------------
Key: TEIID-3636
URL:
https://issues.jboss.org/browse/TEIID-3636
Project: Teiid
Issue Type: Quality Risk
Components: Query Engine
Affects Versions: 8.7.1
Environment: RHEL 6, AWS VM, JBoss EAP (standalone) 6.3.2.GA
JBoss Data Virtualization 6.1.0.ER4
Reporter: Jorge Herrera
Assignee: Steven Hawkins
Priority: Minor
When executing a query against
salesforce.com with an aggregate function (select max(),
min(), sum() ) With a 'group by' clause with a 'SalesForce ID' returns
with the following error:
TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 SalesForce_Sales:
com.sforce.soap.partner.UnexpectedErrorFault: EXCEEDED_ID_LIMIT: Aggregate query does not
support queryMore(), use LIMIT to restrict the results to a single batch [SQL State=50000,
DB Errorcode=30504]
Example Queries That FAIL:
----------
SELECT accountid, sum(amount)
FROM salesforce_sales.salesforce.opportunity where closedate > '2016-02-01'
group by accountid;
----------
SELECT aid, sum(amt) from (
SELECT accountid aid, amount amt FROM salesforce_sales.salesforce.opportunity where
closedate > '2016-02-01'
) as tmp group by aid;
Queries that DO Work:
SELECT closedate, sum(amount)
FROM salesforce_sales.salesforce.opportunity where closedate > '2016-02-01'
group by closedate
;
SELECT isdeleted, sum(amount)
FROM salesforce_sales.salesforce.opportunity where closedate > '2016-02-01'
group by isdeleted
;
SELECT campaignid, sum(amount)
FROM salesforce_sales.salesforce.opportunity where closedate > '2016-02-01'
group by campaignid
;