[JBoss JIRA] (TEIID-5856) Teiid generate wrong request to salesforce
by Renat Eskenin (Jira)
[ https://issues.jboss.org/browse/TEIID-5856?page=com.atlassian.jira.plugin... ]
Renat Eskenin commented on TEIID-5856:
--------------------------------------
I think do not working self references generation only. If i try to use SQL
{code}
SELECT Account.BillingCountry__c, Account.Name from Contact LEFT OUTER JOIN Account on Contact.AccountId = Account.id LIMIT 1
{code}
Generated SOQL is
{code}
SELECT Account.BillingCountry__c, Account.Name FROM Contact LIMIT 1
{code}
> Teiid generate wrong request to salesforce
> ------------------------------------------
>
> Key: TEIID-5856
> URL: https://issues.jboss.org/browse/TEIID-5856
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Environment: spring-boot teiid salesforce-connector
> Reporter: Renat Eskenin
> Assignee: Steven Hawkins
> Priority: Major
>
> When i call request to salesforce teiid get very long wrong request and then OOM, because teiid request all data in salesforce object.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years
[JBoss JIRA] (TEIID-5856) Teiid generate wrong request to salesforce
by Renat Eskenin (Jira)
[ https://issues.jboss.org/browse/TEIID-5856?page=com.atlassian.jira.plugin... ]
Renat Eskenin edited comment on TEIID-5856 at 11/28/19 3:35 AM:
----------------------------------------------------------------
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
In this plan we have two SOQL requests from CONNECTOR to sf
First real request to SF
{code}
[2019-11-28 08:24:03,575 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue0]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.2: Executing Query: SELECT Product_License__c.ReplacementLicenseID__c, Product_License__c.Id, Product_License__c.Status__c, Product_License__c.LicenseId__c, Product_License__c.vlic_Contract_Number__c FROM Product_License__c WHERE Product_License__c.vlic_Contract_Number__c = '11111aaaaa'
{code}
Second real request
{code}
[2019-11-28 08:24:04,025 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue1]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.3: Incoming Query: SELECT Product_License__c.Id, Product_License__c.LicenseId__c FROM Product_License__c WHERE Product_License__c.Id = 'asdasdasdadasdasd
{code}
But need one :(
was (Author: i3draven):
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
In this plan we have two sql requests
First real request to SF
{code}
[2019-11-28 08:24:03,575 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue0]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.2: Executing Query: SELECT Product_License__c.ReplacementLicenseID__c, Product_License__c.Id, Product_License__c.Status__c, Product_License__c.LicenseId__c, Product_License__c.vlic_Contract_Number__c FROM Product_License__c WHERE Product_License__c.vlic_Contract_Number__c = '11111aaaaa'
{code}
Second real request
{code}
[2019-11-28 08:24:04,025 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue1]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.3: Incoming Query: SELECT Product_License__c.Id, Product_License__c.LicenseId__c FROM Product_License__c WHERE Product_License__c.Id = 'asdasdasdadasdasd
{code}
But need one :(
> Teiid generate wrong request to salesforce
> ------------------------------------------
>
> Key: TEIID-5856
> URL: https://issues.jboss.org/browse/TEIID-5856
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Environment: spring-boot teiid salesforce-connector
> Reporter: Renat Eskenin
> Assignee: Steven Hawkins
> Priority: Major
>
> When i call request to salesforce teiid get very long wrong request and then OOM, because teiid request all data in salesforce object.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years
[JBoss JIRA] (TEIID-5856) Teiid generate wrong request to salesforce
by Renat Eskenin (Jira)
[ https://issues.jboss.org/browse/TEIID-5856?page=com.atlassian.jira.plugin... ]
Renat Eskenin edited comment on TEIID-5856 at 11/28/19 3:31 AM:
----------------------------------------------------------------
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
In this plan we have two sql requests
First real request to SF
{code}
[2019-11-28 08:24:03,575 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue0]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.2: Executing Query: SELECT Product_License__c.ReplacementLicenseID__c, Product_License__c.Id, Product_License__c.Status__c, Product_License__c.LicenseId__c, Product_License__c.vlic_Contract_Number__c FROM Product_License__c WHERE Product_License__c.vlic_Contract_Number__c = '11111aaaaa'
{code}
Second real request
{code}
[2019-11-28 08:24:04,025 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue1]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.3: Incoming Query: SELECT Product_License__c.Id, Product_License__c.LicenseId__c FROM Product_License__c WHERE Product_License__c.Id = 'asdasdasdadasdasd
{code}
But need one :(
was (Author: i3draven):
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
In this plan we have two sql requests
First real request to SF
{code}
[2019-11-28 08:24:03,575 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue0]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.2: Executing Query: SELECT Product_License__c.ReplacementLicenseID__c, Product_License__c.Id, Product_License__c.Status__c, Product_License__c.LicenseId__c, Product_License__c.vlic_Contract_Number__c FROM Product_License__c WHERE Product_License__c.vlic_Contract_Number__c = '11111aaaaa'
{code}
Second real request
{code}
[2019-11-28 08:24:04,025 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue1]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.3: Incoming Query: SELECT Product_License__c.Id, Product_License__c.LicenseId__c FROM Product_License__c WHERE Product_License__c.Id = 'asdasdasdadasdasd
{code}
> Teiid generate wrong request to salesforce
> ------------------------------------------
>
> Key: TEIID-5856
> URL: https://issues.jboss.org/browse/TEIID-5856
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Environment: spring-boot teiid salesforce-connector
> Reporter: Renat Eskenin
> Assignee: Steven Hawkins
> Priority: Major
>
> When i call request to salesforce teiid get very long wrong request and then OOM, because teiid request all data in salesforce object.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years
[JBoss JIRA] (TEIID-5856) Teiid generate wrong request to salesforce
by Renat Eskenin (Jira)
[ https://issues.jboss.org/browse/TEIID-5856?page=com.atlassian.jira.plugin... ]
Renat Eskenin edited comment on TEIID-5856 at 11/28/19 3:29 AM:
----------------------------------------------------------------
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
In this plan we have two sql requests
First real request to SF
{code}
[2019-11-28 08:24:03,575 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue0]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.2: Executing Query: SELECT Product_License__c.ReplacementLicenseID__c, Product_License__c.Id, Product_License__c.Status__c, Product_License__c.LicenseId__c, Product_License__c.vlic_Contract_Number__c FROM Product_License__c WHERE Product_License__c.vlic_Contract_Number__c = '11111aaaaa'
{code}
Second real request
{code}
[2019-11-28 08:24:04,025 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue1]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.3: Incoming Query: SELECT Product_License__c.Id, Product_License__c.LicenseId__c FROM Product_License__c WHERE Product_License__c.Id = 'asdasdasdadasdasd
{code}
was (Author: i3draven):
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
In this plan we have two sql requests
> Teiid generate wrong request to salesforce
> ------------------------------------------
>
> Key: TEIID-5856
> URL: https://issues.jboss.org/browse/TEIID-5856
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Environment: spring-boot teiid salesforce-connector
> Reporter: Renat Eskenin
> Assignee: Steven Hawkins
> Priority: Major
>
> When i call request to salesforce teiid get very long wrong request and then OOM, because teiid request all data in salesforce object.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years
[JBoss JIRA] (TEIID-5856) Teiid generate wrong request to salesforce
by Renat Eskenin (Jira)
[ https://issues.jboss.org/browse/TEIID-5856?page=com.atlassian.jira.plugin... ]
Renat Eskenin edited comment on TEIID-5856 at 11/28/19 3:19 AM:
----------------------------------------------------------------
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
was (Author: i3draven):
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
> Teiid generate wrong request to salesforce
> ------------------------------------------
>
> Key: TEIID-5856
> URL: https://issues.jboss.org/browse/TEIID-5856
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Environment: spring-boot teiid salesforce-connector
> Reporter: Renat Eskenin
> Assignee: Steven Hawkins
> Priority: Major
>
> When i call request to salesforce teiid get very long wrong request and then OOM, because teiid request all data in salesforce object.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years
[JBoss JIRA] (TEIID-5856) Teiid generate wrong request to salesforce
by Renat Eskenin (Jira)
[ https://issues.jboss.org/browse/TEIID-5856?page=com.atlassian.jira.plugin... ]
Renat Eskenin edited comment on TEIID-5856 at 11/28/19 3:20 AM:
----------------------------------------------------------------
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
In this plan we have two sql requests
was (Author: i3draven):
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
> Teiid generate wrong request to salesforce
> ------------------------------------------
>
> Key: TEIID-5856
> URL: https://issues.jboss.org/browse/TEIID-5856
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Environment: spring-boot teiid salesforce-connector
> Reporter: Renat Eskenin
> Assignee: Steven Hawkins
> Priority: Major
>
> When i call request to salesforce teiid get very long wrong request and then OOM, because teiid request all data in salesforce object.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years
[JBoss JIRA] (TEIID-5856) Teiid generate wrong request to salesforce
by Renat Eskenin (Jira)
[ https://issues.jboss.org/browse/TEIID-5856?page=com.atlassian.jira.plugin... ]
Renat Eskenin commented on TEIID-5856:
--------------------------------------
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
> Teiid generate wrong request to salesforce
> ------------------------------------------
>
> Key: TEIID-5856
> URL: https://issues.jboss.org/browse/TEIID-5856
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Environment: spring-boot teiid salesforce-connector
> Reporter: Renat Eskenin
> Assignee: Steven Hawkins
> Priority: Major
>
> When i call request to salesforce teiid get very long wrong request and then OOM, because teiid request all data in salesforce object.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years
[JBoss JIRA] (TEIID-5858) Orcale collation issue with Teiid 9.1.1
by Ivan Chan (Jira)
Ivan Chan created TEIID-5858:
--------------------------------
Summary: Orcale collation issue with Teiid 9.1.1
Key: TEIID-5858
URL: https://issues.jboss.org/browse/TEIID-5858
Project: Teiid
Issue Type: Bug
Components: JDBC Connector
Affects Versions: 9.1.1
Reporter: Ivan Chan
Assignee: Steven Hawkins
One of customers run into this following error:
org.teiid.core.TeiidComponentException: TEIID31202 Detected that an already sorted set of values was not in the expected order (typically UTF-16 / UCS-2). Please check the translator settings to ensure character columns used for joining are sorted as expected.
And they were trying to join multiple oracle databases together. And they are running Teiid 9.1.1
It seems like I need to change the collation. And I tried to change those values, but it didn't seem to do anything.
org.teiid.requireTeiidCollation
org.teiid.collationLocale
org.teiid.assumeMatchingCollation
Here is how we create the tables in Oracle:
CREATE TABLE "DWH_MSFL"."MW_CATEGORY" CREATE TABLE "DWH_MSFL"."MW_CATEGORY" ( "CAT_ID" NUMBER(*,0), "CAT_TITLE" VARCHAR2(255 CHAR), "CAT_TITLE_ORIGIN" VARCHAR2(255 CHAR), "CAT_PAGES" NUMBER(*,0), "CAT_SUBCATS" NUMBER(*,0), "CAT_FILES" NUMBER(*,0) ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS NOLOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "DWH_MSFL" ;
--------------------------
CREATE TABLE "DWH_MSFL"."MW_CATEGORYLINKS" CREATE TABLE "DWH_MSFL"."MW_CATEGORYLINKS" ( "CL_FROM" NUMBER(*,0), "CL_TO" VARCHAR2(255 CHAR), "CL_SORTKEY" VARCHAR2(230 CHAR), "CL_TIMESTAMP" TIMESTAMP (0), "CL_SORTKEY_PREFIX" VARCHAR2(255 CHAR), "CL_COLLATION" VARCHAR2(32 CHAR), "CL_TYPE" VARCHAR2(10 CHAR) ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS NOLOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "DWH_MSFL" ;
Notwithstanding, can't the issue somehow be related to categorylinks>category relation or Column-Level Collation (CI_COLLATION)which is set to Uppercase(see insert to categorylinks table in DWH_MSFL.sql). We have an issue exactly with a category and title column(CAT_TITLE)
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years
[JBoss JIRA] (TEIID-5856) Teiid generate wrong request to salesforce
by Renat Eskenin (Jira)
[ https://issues.jboss.org/browse/TEIID-5856?page=com.atlassian.jira.plugin... ]
Renat Eskenin edited comment on TEIID-5856 at 11/27/19 6:29 AM:
----------------------------------------------------------------
Used ddl:
{code}
CREATE DATABASE db;
USE DATABASE db;
CREATE FOREIGN DATA WRAPPER salesforce;
CREATE FOREIGN DATA WRAPPER mysalesforce type salesforce OPTIONS (supportsOrderBy true);
CREATE SERVER salesforce FOREIGN DATA WRAPPER salesforce OPTIONS ("resource-name" 'salesforce');
CREATE SCHEMA sf SERVER salesforce;
IMPORT FROM SERVER salesforce INTO sf OPTIONS("importer.useFullSchemaName" 'false', "importer.NormalizeNames" 'false', "importer.modelAuditFields" 'true', "importer.importStatstics" 'true');
{code}
{code}
SELECT * FROM SYS.tables WHERE Name='Product_License__c'
{code}
{code}
{
"Description": null,
"Cardinality": -1,
"NameInSource": "Product_License__c",
"Name": "Product_License__c",
"UID": "tid:000005adccd6-9897fe32-00000545",
"Type": "Table",
"IsPhysical": true,
"SupportsUpdates": true,
"IsMaterialized": false,
"VDBName": "db",
"IsSystem": false,
"SchemaUID": "tid:000005adccd6-00000e53-00000000",
"SchemaName": "sf"
}
{code}
SQL:
{code}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.Id as replacementLicenseObjectId FROM Product_License__c originalLicense LEFT OUTER JOIN Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
PLAN
{code}
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseObjectId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
6: Id (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
AccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c
+ Model Name:sf
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.Id AS replacementLicenseObjectId
+ Data Bytes Sent:7
+ Planning Time:6
{code}
IF I USED SQL:
{code}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.Id as replacementLicenseObjectId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
PLAN
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseObjectId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
6: Id (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.Id AS replacementLicenseObjectId
+ Data Bytes Sent:7
+ Planning Time:28
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c, replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c, replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c, replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c, replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id0, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id0, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id0, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id], APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id0, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id], APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id0, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id], APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id0, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id], APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id0, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
was (Author: i3draven):
Used ddl:
{code}
CREATE DATABASE db;
USE DATABASE db;
CREATE FOREIGN DATA WRAPPER salesforce;
CREATE FOREIGN DATA WRAPPER mysalesforce type salesforce OPTIONS (supportsOrderBy true);
CREATE SERVER salesforce FOREIGN DATA WRAPPER salesforce OPTIONS ("resource-name" 'salesforce');
CREATE SCHEMA sf SERVER salesforce;
IMPORT FROM SERVER salesforce INTO sf OPTIONS("importer.useFullSchemaName" 'false', "importer.NormalizeNames" 'false', "importer.modelAuditFields" 'true', "importer.importStatstics" 'true');
{code}
{code}
SELECT * FROM SYS.tables WHERE Name='Product_License__c'
{code}
{code}
{
"Description": null,
"Cardinality": -1,
"NameInSource": "Product_License__c",
"Name": "Product_License__c",
"UID": "tid:000005adccd6-9897fe32-00000545",
"Type": "Table",
"IsPhysical": true,
"SupportsUpdates": true,
"IsMaterialized": false,
"VDBName": "db",
"IsSystem": false,
"SchemaUID": "tid:000005adccd6-00000e53-00000000",
"SchemaName": "sf"
}
{code}
SQL:
{code}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.Id as replacementLicenseObjectId FROM Product_License__c originalLicense LEFT OUTER JOIN Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
PLAN
{code}
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseObjectId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
6: Id (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
AccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c
+ Model Name:sf
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.Id AS replacementLicenseObjectId
+ Data Bytes Sent:7
+ Planning Time:6
{code}
> Teiid generate wrong request to salesforce
> ------------------------------------------
>
> Key: TEIID-5856
> URL: https://issues.jboss.org/browse/TEIID-5856
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Environment: spring-boot teiid salesforce-connector
> Reporter: Renat Eskenin
> Assignee: Steven Hawkins
> Priority: Major
>
> When i call request to salesforce teiid get very long wrong request and then OOM, because teiid request all data in salesforce object.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years
[JBoss JIRA] (TEIID-5856) Teiid generate wrong request to salesforce
by Renat Eskenin (Jira)
[ https://issues.jboss.org/browse/TEIID-5856?page=com.atlassian.jira.plugin... ]
Renat Eskenin commented on TEIID-5856:
--------------------------------------
Used ddl:
{code}
CREATE DATABASE db;
USE DATABASE db;
CREATE FOREIGN DATA WRAPPER salesforce;
CREATE FOREIGN DATA WRAPPER mysalesforce type salesforce OPTIONS (supportsOrderBy true);
CREATE SERVER salesforce FOREIGN DATA WRAPPER salesforce OPTIONS ("resource-name" 'salesforce');
CREATE SCHEMA sf SERVER salesforce;
IMPORT FROM SERVER salesforce INTO sf OPTIONS("importer.useFullSchemaName" 'false', "importer.NormalizeNames" 'false', "importer.modelAuditFields" 'true', "importer.importStatstics" 'true');
{code}
{code}
SELECT * FROM SYS.tables WHERE Name='Product_License__c'
{code}
{code}
{
"Description": null,
"Cardinality": -1,
"NameInSource": "Product_License__c",
"Name": "Product_License__c",
"UID": "tid:000005adccd6-9897fe32-00000545",
"Type": "Table",
"IsPhysical": true,
"SupportsUpdates": true,
"IsMaterialized": false,
"VDBName": "db",
"IsSystem": false,
"SchemaUID": "tid:000005adccd6-00000e53-00000000",
"SchemaName": "sf"
}
{code}
SQL:
{code}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.Id as replacementLicenseObjectId FROM Product_License__c originalLicense LEFT OUTER JOIN Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
PLAN
{code}
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseObjectId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
6: Id (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
AccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c
+ Model Name:sf
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.Id AS replacementLicenseObjectId
+ Data Bytes Sent:7
+ Planning Time:6
{code}
> Teiid generate wrong request to salesforce
> ------------------------------------------
>
> Key: TEIID-5856
> URL: https://issues.jboss.org/browse/TEIID-5856
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Environment: spring-boot teiid salesforce-connector
> Reporter: Renat Eskenin
> Assignee: Steven Hawkins
> Priority: Major
>
> When i call request to salesforce teiid get very long wrong request and then OOM, because teiid request all data in salesforce object.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years