[
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)