Bug 781092 (SOA-3582)

Summary: RFE/possible optimization: push down parts of some aggregate expressions
Product: [JBoss] JBoss Enterprise SOA Platform 5 Reporter: dsteigne
Component: EDSAssignee: Van Halbert <vhalbert>
Status: CLOSED DEFERRED QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 5.1.0 GA   
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/SOA-3582
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-11-14 20:12:05 UTC Type: Feature Request
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description dsteigne 2011-11-14 15:29:10 UTC
Help Desk Ticket Reference: https://c.na7.visual.force.com/apex/Case_View?id=500A0000008ULPj
project_key: SOA

suggestion for a potential optimization: It concerns federated queries which do expressions. This is an extremely common requirement in the banking business, the main example being when monetary amounts need to be converted into a reporting currency using a rate in another database.

With the query below, it makes sense that despite the group by, EDS will pull back all the rows so it can multiply one by the other. Unfortunately this is often many millions of records.

Would it be feasible to have an optimization which push-down most of the aggregation to the source, then do a further aggregation in EDS? 

 * sum the tsl.func_amount, grouped by tsl.currency
 * next: get the conversion rates for all the currency codes which have been returned, then sum(total * rate)

Of course, this can only be done for certain kinds of expressions.

select sum(tsl.func_amount * ccy.EuroConversionLegacyRate)
  from TSL_FINANCIAL_ACCOUNT_ITEMS_T2 tsl
  join t_sdm_currency ccy on tsl.currency = ccy.currencycode
 where tsl.business_date = '2011-06-29'
 group by ccy.EuroConversionLegacyRate

Comment 1 Van Halbert 2011-11-14 15:44:27 UTC
Link: Added: This issue Cloned to SOA-3583