[JBoss JIRA] (TEIID-2605) Optimization substitutes wrong column in where clause
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2605?page=com.atlassian.jira.plugin... ]
Steven Hawkins closed TEIID-2605.
---------------------------------
> Optimization substitutes wrong column in where clause
> -----------------------------------------------------
>
> Key: TEIID-2605
> URL: https://issues.jboss.org/browse/TEIID-2605
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.1
> Environment: z/OS
> Reporter: Jeff Hayes
> Assignee: Steven Hawkins
> Attachments: query_plan.txt, views.xml
>
>
> Optimization results in a query with a different column in the WHERE clause producing an empty result set.
> Full query plan is attached but the beginning and ending queries are shown below. Note that the subject column of the IN clause is SCOPEID but optimization changes it to AUTHID for some reason.
> USER COMMAND:
> SELECT * FROM SECURITY.SCPXREF AS CHORUS_B WHERE (CHORUS_B.SYSID = 'DE29') AND ((CHORUS_B.SCOPEID IN (SELECT SN5.SCOPEID FROM SECURI
> TY.SCPNEXT AS SN5 WHERE (SYSID = 'DE29') AND (NEXTREC IN (SELECT SN4.SCOPEID FROM SECURITY.SCPNEXT AS SN4 WHERE (SYSID = 'DE29') AND
> (NEXTREC IN (SELECT SN3.SCOPEID FROM SECURITY.SCPNEXT AS SN3 WHERE (SYSID = 'DE29') AND (NEXTREC IN (SELECT SN2.SCOPEID FROM SECURI
> TY.SCPNEXT AS SN2 WHERE (SYSID = 'DE29') AND (NEXTREC = 'CHRDEPT1'))))))))) OR (CHORUS_B.SCOPEID IN (SELECT SN4.SCOPEID FROM SECURIT
> Y.SCPNEXT AS SN4 WHERE (SYSID = 'DE29') AND (NEXTREC IN (SELECT SN3.SCOPEID FROM SECURITY.SCPNEXT AS SN3 WHERE (SYSID = 'DE29') AND
> (NEXTREC IN (SELECT SN2.SCOPEID FROM SECURITY.SCPNEXT AS SN2 WHERE (SYSID = 'DE29') AND (NEXTREC = 'CHRDEPT1'))))))) OR (CHORUS_B.SC
> OPEID IN (SELECT SN3.SCOPEID FROM SECURITY.SCPNEXT AS SN3 WHERE (SYSID = 'DE29') AND (NEXTREC IN (SELECT SN2.SCOPEID FROM SECURITY.S
> CPNEXT AS SN2 WHERE (SYSID = 'DE29') AND (NEXTREC = 'CHRDEPT1'))))) OR (CHORUS_B.SCOPEID IN (SELECT SN2.SCOPEID FROM SECURITY.SCPNEX
> T AS SN2 WHERE (SYSID = 'DE29') AND (NEXTREC = 'CHRDEPT1'))) OR (CHORUS_B.SCOPEID = 'CHRDEPT1'))
> OPTIMIZATION COMPLETE:
> PROCESSOR PLAN:
> AccessNode(10) output=[x.sysid AS sysid, x.scopeid AS authid, x.authid AS scopeid, x.authtype AS authtype] SELECT g_0.SYSID, g_0.SCO
> PEID, g_0.AUTHID, g_0.AUTHTYPE FROM SECURITY_CIA_DB2_D91BPTIB_CIADB01.SCPXREF AS g_0 WHERE (g_0.SYSID = 'DE29') AND ((g_0.AUTHID IN
> (SELECT g_1.SCOPEID FROM SECURITY_CIA_DB2_D91BPTIB_CIADB01.SCPNEXT AS g_1 WHERE (g_1.SYSID = 'DE29') AND (g_1.NEXTREC IN (SELECT g_2
> .SCOPEID FROM SECURITY_CIA_DB2_D91BPTIB_CIADB01.SCPNEXT AS g_2 WHERE (g_2.SYSID = 'DE29') AND (g_2.NEXTREC IN (SELECT g_3.SCOPEID FR
> OM SECURITY_CIA_DB2_D91BPTIB_CIADB01.SCPNEXT AS g_3 WHERE (g_3.SYSID = 'DE29') AND (g_3.NEXTREC IN (SELECT g_4.SCOPEID FROM SECURITY
> _CIA_DB2_D91BPTIB_CIADB01.SCPNEXT AS g_4 WHERE (g_4.SYSID = 'DE29') AND (g_4.NEXTREC = 'CHRDEPT1'))))))))) OR (g_0.AUTHID IN (SELECT
> g_5.SCOPEID FROM SECURITY_CIA_DB2_D91BPTIB_CIADB01.SCPNEXT AS g_5 WHERE (g_5.SYSID = 'DE29') AND (g_5.NEXTREC IN (SELECT g_6.SCOPEI
> D FROM SECURITY_CIA_DB2_D91BPTIB_CIADB01.SCPNEXT AS g_6 WHERE (g_6.SYSID = 'DE29') AND (g_6.NEXTREC IN (SELECT g_7.SCOPEID FROM SECU
> RITY_CIA_DB2_D91BPTIB_CIADB01.SCPNEXT AS g_7 WHERE (g_7.SYSID = 'DE29') AND (g_7.NEXTREC = 'CHRDEPT1'))))))) OR (g_0.AUTHID IN (SELE
> CT g_8.SCOPEID FROM SECURITY_CIA_DB2_D91BPTIB_CIADB01.SCPNEXT AS g_8 WHERE (g_8.SYSID = 'DE29') AND (g_8.NEXTREC IN (SELECT g_9.SCOP
> EID FROM SECURITY_CIA_DB2_D91BPTIB_CIADB01.SCPNEXT AS g_9 WHERE (g_9.SYSID = 'DE29') AND (g_9.NEXTREC = 'CHRDEPT1'))))) OR (g_0.AUTH
> ID IN (SELECT g_10.SCOPEID FROM SECURITY_CIA_DB2_D91BPTIB_CIADB01.SCPNEXT AS g_10 WHERE (g_10.SYSID = 'DE29') AND (g_10.NEXTREC = 'C
> HRDEPT1'))) OR (g_0.AUTHID = 'CHRDEPT1'))
> The view definitions are shown below:
> <view name="SCPNEXT">
> <columns>
> <column name="sysid" type="varchar"/>
> <column name="scopeid" type="varchar"/>
> <column name="nextrec" type="varchar"/>
> </columns>
> <definition>
> #if ($db.count("select count(*) from sys.tables where Name='config' and SchemaName = 'security_db'") > 0)
> #set ($count = 0)
> #foreach($t in $db.query("select DB_TYPE, DB_LOC, DB_QUAL from security_db.config WHERE TYPE = 'CIA'"))
> #if ($db.count("select count(*) from sys.tables where SchemaName = 'SECURITY_CIA_${t.DB_TYPE}_${t.DB_LOC}_${t.DB_QUAL}'") == 0)
> #set ($count = $count + 1)
> #end
> #end
> #if ($count == 0)
> SELECT t.sysid, t.scopeid, t.nextrec
> FROM (
> #foreach($t in $db.query("select DB_TYPE, DB_LOC, DB_QUAL from security_db.config WHERE TYPE = 'CIA'"))
> SELECT n.sysid, n.scopeid, n.nextrec
> FROM SECURITY_CIA_${t.DB_TYPE}_${t.DB_LOC}_${t.DB_QUAL}.SCPNEXT n
> #if( $velocityHasNext ) UNION #end
> #end
> ) AS t
> #end
> #end
> </definition>
> </view>
> <view name="SCPXREF">
> <columns>
> <column name="sysid" type="varchar"/>
> <column name="authid" type="varchar"/>
> <column name="scopeid" type="varchar"/>
> <column name="authtype" type="varchar"/>
> </columns>
> <definition>
> #if ($db.count("select count(*) from sys.tables where Name='config' and SchemaName = 'security_db'") > 0)
> #set ($count = 0)
> #foreach($t in $db.query("select DB_TYPE, DB_LOC, DB_QUAL from security_db.config WHERE TYPE = 'CIA'"))
> #if ($db.count("select count(*) from sys.tables where SchemaName = 'SECURITY_CIA_${t.DB_TYPE}_${t.DB_LOC}_${t.DB_QUAL}'") == 0)
> #set ($count = $count + 1)
> #end
> #end
> #if ($count == 0)
> SELECT sysid, scopeid, authid, authtype
> FROM (
> #foreach($t in $db.query("select DB_TYPE, DB_LOC, DB_QUAL from security_db.config WHERE TYPE = 'CIA'"))
> SELECT x.sysid, x.scopeid, x.authid, x.authtype
> FROM SECURITY_CIA_${t.DB_TYPE}_${t.DB_LOC}_${t.DB_QUAL}.SCPXREF x
> #if( $velocityHasNext ) UNION #end
> #end
> ) AS t
> #end
> #end
> </definition>
> </view>
> I guess the best way to test this is to define these views and run the input query with SHOWPLAN=DEBUG and see if the AUTHID substitution is occurring.
> Thanks!
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
4 days, 8 hours
[JBoss JIRA] (TEIID-5856) Teiid generate wrong request to salesforce
by Renat Eskenin (Jira)
[ https://issues.jboss.org/browse/TEIID-5856?page=com.atlassian.jira.plugin... ]
Renat Eskenin commented on TEIID-5856:
--------------------------------------
I think do not working self references generation only. If i try to use SQL
{code}
SELECT Account.BillingCountry__c, Account.Name from Contact LEFT OUTER JOIN Account on Contact.AccountId = Account.id LIMIT 1
{code}
Generated SOQL is
{code}
SELECT Account.BillingCountry__c, Account.Name FROM Contact LIMIT 1
{code}
> Teiid generate wrong request to salesforce
> ------------------------------------------
>
> Key: TEIID-5856
> URL: https://issues.jboss.org/browse/TEIID-5856
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Environment: spring-boot teiid salesforce-connector
> Reporter: Renat Eskenin
> Assignee: Steven Hawkins
> Priority: Major
>
> When i call request to salesforce teiid get very long wrong request and then OOM, because teiid request all data in salesforce object.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 11 months
[JBoss JIRA] (TEIID-5856) Teiid generate wrong request to salesforce
by Renat Eskenin (Jira)
[ https://issues.jboss.org/browse/TEIID-5856?page=com.atlassian.jira.plugin... ]
Renat Eskenin edited comment on TEIID-5856 at 11/28/19 3:35 AM:
----------------------------------------------------------------
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
In this plan we have two SOQL requests from CONNECTOR to sf
First real request to SF
{code}
[2019-11-28 08:24:03,575 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue0]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.2: Executing Query: SELECT Product_License__c.ReplacementLicenseID__c, Product_License__c.Id, Product_License__c.Status__c, Product_License__c.LicenseId__c, Product_License__c.vlic_Contract_Number__c FROM Product_License__c WHERE Product_License__c.vlic_Contract_Number__c = '11111aaaaa'
{code}
Second real request
{code}
[2019-11-28 08:24:04,025 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue1]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.3: Incoming Query: SELECT Product_License__c.Id, Product_License__c.LicenseId__c FROM Product_License__c WHERE Product_License__c.Id = 'asdasdasdadasdasd
{code}
But need one :(
was (Author: i3draven):
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
In this plan we have two sql requests
First real request to SF
{code}
[2019-11-28 08:24:03,575 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue0]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.2: Executing Query: SELECT Product_License__c.ReplacementLicenseID__c, Product_License__c.Id, Product_License__c.Status__c, Product_License__c.LicenseId__c, Product_License__c.vlic_Contract_Number__c FROM Product_License__c WHERE Product_License__c.vlic_Contract_Number__c = '11111aaaaa'
{code}
Second real request
{code}
[2019-11-28 08:24:04,025 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue1]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.3: Incoming Query: SELECT Product_License__c.Id, Product_License__c.LicenseId__c FROM Product_License__c WHERE Product_License__c.Id = 'asdasdasdadasdasd
{code}
But need one :(
> Teiid generate wrong request to salesforce
> ------------------------------------------
>
> Key: TEIID-5856
> URL: https://issues.jboss.org/browse/TEIID-5856
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Environment: spring-boot teiid salesforce-connector
> Reporter: Renat Eskenin
> Assignee: Steven Hawkins
> Priority: Major
>
> When i call request to salesforce teiid get very long wrong request and then OOM, because teiid request all data in salesforce object.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 11 months
[JBoss JIRA] (TEIID-5856) Teiid generate wrong request to salesforce
by Renat Eskenin (Jira)
[ https://issues.jboss.org/browse/TEIID-5856?page=com.atlassian.jira.plugin... ]
Renat Eskenin edited comment on TEIID-5856 at 11/28/19 3:31 AM:
----------------------------------------------------------------
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
In this plan we have two sql requests
First real request to SF
{code}
[2019-11-28 08:24:03,575 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue0]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.2: Executing Query: SELECT Product_License__c.ReplacementLicenseID__c, Product_License__c.Id, Product_License__c.Status__c, Product_License__c.LicenseId__c, Product_License__c.vlic_Contract_Number__c FROM Product_License__c WHERE Product_License__c.vlic_Contract_Number__c = '11111aaaaa'
{code}
Second real request
{code}
[2019-11-28 08:24:04,025 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue1]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.3: Incoming Query: SELECT Product_License__c.Id, Product_License__c.LicenseId__c FROM Product_License__c WHERE Product_License__c.Id = 'asdasdasdadasdasd
{code}
But need one :(
was (Author: i3draven):
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
In this plan we have two sql requests
First real request to SF
{code}
[2019-11-28 08:24:03,575 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue0]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.2: Executing Query: SELECT Product_License__c.ReplacementLicenseID__c, Product_License__c.Id, Product_License__c.Status__c, Product_License__c.LicenseId__c, Product_License__c.vlic_Contract_Number__c FROM Product_License__c WHERE Product_License__c.vlic_Contract_Number__c = '11111aaaaa'
{code}
Second real request
{code}
[2019-11-28 08:24:04,025 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue1]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.3: Incoming Query: SELECT Product_License__c.Id, Product_License__c.LicenseId__c FROM Product_License__c WHERE Product_License__c.Id = 'asdasdasdadasdasd
{code}
> Teiid generate wrong request to salesforce
> ------------------------------------------
>
> Key: TEIID-5856
> URL: https://issues.jboss.org/browse/TEIID-5856
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Environment: spring-boot teiid salesforce-connector
> Reporter: Renat Eskenin
> Assignee: Steven Hawkins
> Priority: Major
>
> When i call request to salesforce teiid get very long wrong request and then OOM, because teiid request all data in salesforce object.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 11 months
[JBoss JIRA] (TEIID-5856) Teiid generate wrong request to salesforce
by Renat Eskenin (Jira)
[ https://issues.jboss.org/browse/TEIID-5856?page=com.atlassian.jira.plugin... ]
Renat Eskenin edited comment on TEIID-5856 at 11/28/19 3:29 AM:
----------------------------------------------------------------
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
In this plan we have two sql requests
First real request to SF
{code}
[2019-11-28 08:24:03,575 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue0]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.2: Executing Query: SELECT Product_License__c.ReplacementLicenseID__c, Product_License__c.Id, Product_License__c.Status__c, Product_License__c.LicenseId__c, Product_License__c.vlic_Contract_Number__c FROM Product_License__c WHERE Product_License__c.vlic_Contract_Number__c = '11111aaaaa'
{code}
Second real request
{code}
[2019-11-28 08:24:04,025 GMT] DEBUG [salesforce-failover-facade,,,] [salesforce-failover-facade-56f467f5f8-q8mml] org.teiid.CONNECTOR [Worker0_QueryProcessorQueue1]: salesforce.87EGAL91ieOh.87EGAL91ieOh.0.3: Incoming Query: SELECT Product_License__c.Id, Product_License__c.LicenseId__c FROM Product_License__c WHERE Product_License__c.Id = 'asdasdasdadasdasd
{code}
was (Author: i3draven):
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
In this plan we have two sql requests
> Teiid generate wrong request to salesforce
> ------------------------------------------
>
> Key: TEIID-5856
> URL: https://issues.jboss.org/browse/TEIID-5856
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Environment: spring-boot teiid salesforce-connector
> Reporter: Renat Eskenin
> Assignee: Steven Hawkins
> Priority: Major
>
> When i call request to salesforce teiid get very long wrong request and then OOM, because teiid request all data in salesforce object.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 11 months
[JBoss JIRA] (TEIID-5856) Teiid generate wrong request to salesforce
by Renat Eskenin (Jira)
[ https://issues.jboss.org/browse/TEIID-5856?page=com.atlassian.jira.plugin... ]
Renat Eskenin edited comment on TEIID-5856 at 11/28/19 3:19 AM:
----------------------------------------------------------------
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
was (Author: i3draven):
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
> Teiid generate wrong request to salesforce
> ------------------------------------------
>
> Key: TEIID-5856
> URL: https://issues.jboss.org/browse/TEIID-5856
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Environment: spring-boot teiid salesforce-connector
> Reporter: Renat Eskenin
> Assignee: Steven Hawkins
> Priority: Major
>
> When i call request to salesforce teiid get very long wrong request and then OOM, because teiid request all data in salesforce object.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 11 months
[JBoss JIRA] (TEIID-5856) Teiid generate wrong request to salesforce
by Renat Eskenin (Jira)
[ https://issues.jboss.org/browse/TEIID-5856?page=com.atlassian.jira.plugin... ]
Renat Eskenin edited comment on TEIID-5856 at 11/28/19 3:20 AM:
----------------------------------------------------------------
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
In this plan we have two sql requests
was (Author: i3draven):
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
For this request i maked SQL:
{code:sql}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.LicenseId__c as replacementLicenseLicenseId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseLicenseId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.LicenseId__c AS replacementLicenseLicenseId
+ Data Bytes Sent:7
+ Planning Time:9
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=6, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id1, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.LicenseId__c AS replacementLicenseLicenseId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
> Teiid generate wrong request to salesforce
> ------------------------------------------
>
> Key: TEIID-5856
> URL: https://issues.jboss.org/browse/TEIID-5856
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Environment: spring-boot teiid salesforce-connector
> Reporter: Renat Eskenin
> Assignee: Steven Hawkins
> Priority: Major
>
> When i call request to salesforce teiid get very long wrong request and then OOM, because teiid request all data in salesforce object.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 11 months
[JBoss JIRA] (TEIID-5856) Teiid generate wrong request to salesforce
by Renat Eskenin (Jira)
[ https://issues.jboss.org/browse/TEIID-5856?page=com.atlassian.jira.plugin... ]
Renat Eskenin commented on TEIID-5856:
--------------------------------------
Real SOQL for this SQL will be generated is
{code:sql}
SELECT Id,Status__c,ReplacementLicenseID__c,ReplacementLicenseID__r.LicenseId__c,LicenseId__c,vlic_Contract_Number__c FROM Product_License__c WHERE vlic_Contract_Number__c=${contractNumber}
{code}
It is one request to salesforce. But i think references generation do not working in teiid now :(
> Teiid generate wrong request to salesforce
> ------------------------------------------
>
> Key: TEIID-5856
> URL: https://issues.jboss.org/browse/TEIID-5856
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Environment: spring-boot teiid salesforce-connector
> Reporter: Renat Eskenin
> Assignee: Steven Hawkins
> Priority: Major
>
> When i call request to salesforce teiid get very long wrong request and then OOM, because teiid request all data in salesforce object.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 11 months
[JBoss JIRA] (TEIID-5858) Orcale collation issue with Teiid 9.1.1
by Ivan Chan (Jira)
Ivan Chan created TEIID-5858:
--------------------------------
Summary: Orcale collation issue with Teiid 9.1.1
Key: TEIID-5858
URL: https://issues.jboss.org/browse/TEIID-5858
Project: Teiid
Issue Type: Bug
Components: JDBC Connector
Affects Versions: 9.1.1
Reporter: Ivan Chan
Assignee: Steven Hawkins
One of customers run into this following error:
org.teiid.core.TeiidComponentException: TEIID31202 Detected that an already sorted set of values was not in the expected order (typically UTF-16 / UCS-2). Please check the translator settings to ensure character columns used for joining are sorted as expected.
And they were trying to join multiple oracle databases together. And they are running Teiid 9.1.1
It seems like I need to change the collation. And I tried to change those values, but it didn't seem to do anything.
org.teiid.requireTeiidCollation
org.teiid.collationLocale
org.teiid.assumeMatchingCollation
Here is how we create the tables in Oracle:
CREATE TABLE "DWH_MSFL"."MW_CATEGORY" CREATE TABLE "DWH_MSFL"."MW_CATEGORY" ( "CAT_ID" NUMBER(*,0), "CAT_TITLE" VARCHAR2(255 CHAR), "CAT_TITLE_ORIGIN" VARCHAR2(255 CHAR), "CAT_PAGES" NUMBER(*,0), "CAT_SUBCATS" NUMBER(*,0), "CAT_FILES" NUMBER(*,0) ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS NOLOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "DWH_MSFL" ;
--------------------------
CREATE TABLE "DWH_MSFL"."MW_CATEGORYLINKS" CREATE TABLE "DWH_MSFL"."MW_CATEGORYLINKS" ( "CL_FROM" NUMBER(*,0), "CL_TO" VARCHAR2(255 CHAR), "CL_SORTKEY" VARCHAR2(230 CHAR), "CL_TIMESTAMP" TIMESTAMP (0), "CL_SORTKEY_PREFIX" VARCHAR2(255 CHAR), "CL_COLLATION" VARCHAR2(32 CHAR), "CL_TYPE" VARCHAR2(10 CHAR) ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS NOLOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "DWH_MSFL" ;
Notwithstanding, can't the issue somehow be related to categorylinks>category relation or Column-Level Collation (CI_COLLATION)which is set to Uppercase(see insert to categorylinks table in DWH_MSFL.sql). We have an issue exactly with a category and title column(CAT_TITLE)
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 11 months
[JBoss JIRA] (TEIID-5856) Teiid generate wrong request to salesforce
by Renat Eskenin (Jira)
[ https://issues.jboss.org/browse/TEIID-5856?page=com.atlassian.jira.plugin... ]
Renat Eskenin edited comment on TEIID-5856 at 11/27/19 6:29 AM:
----------------------------------------------------------------
Used ddl:
{code}
CREATE DATABASE db;
USE DATABASE db;
CREATE FOREIGN DATA WRAPPER salesforce;
CREATE FOREIGN DATA WRAPPER mysalesforce type salesforce OPTIONS (supportsOrderBy true);
CREATE SERVER salesforce FOREIGN DATA WRAPPER salesforce OPTIONS ("resource-name" 'salesforce');
CREATE SCHEMA sf SERVER salesforce;
IMPORT FROM SERVER salesforce INTO sf OPTIONS("importer.useFullSchemaName" 'false', "importer.NormalizeNames" 'false', "importer.modelAuditFields" 'true', "importer.importStatstics" 'true');
{code}
{code}
SELECT * FROM SYS.tables WHERE Name='Product_License__c'
{code}
{code}
{
"Description": null,
"Cardinality": -1,
"NameInSource": "Product_License__c",
"Name": "Product_License__c",
"UID": "tid:000005adccd6-9897fe32-00000545",
"Type": "Table",
"IsPhysical": true,
"SupportsUpdates": true,
"IsMaterialized": false,
"VDBName": "db",
"IsSystem": false,
"SchemaUID": "tid:000005adccd6-00000e53-00000000",
"SchemaName": "sf"
}
{code}
SQL:
{code}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.Id as replacementLicenseObjectId FROM Product_License__c originalLicense LEFT OUTER JOIN Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
PLAN
{code}
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseObjectId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
6: Id (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
AccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c
+ Model Name:sf
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.Id AS replacementLicenseObjectId
+ Data Bytes Sent:7
+ Planning Time:6
{code}
IF I USED SQL:
{code}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.Id as replacementLicenseObjectId FROM Product_License__c originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
PLAN
{code}
PLAN:
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseObjectId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
6: Id (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
DependentAccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
+ Model Name:sf
+ Dependent Join:true
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.Id AS replacementLicenseObjectId
+ Data Bytes Sent:7
+ Planning Time:28
END PLAN
DEBUG LOG :
============================================================================
USER COMMAND:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
OPTIMIZE:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId FROM sf.Product_License__c AS originalLicense LEFT OUTER JOIN /*+ MAKEDEP */ sf.Product_License__c AS replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id WHERE originalLicense.vlic_Contract_Number__c = ?
CANONICAL PLAN:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c, replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
============================================================================
EXECUTING RemoveOptionalJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c, replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId]})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c, replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id]})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c]})
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, replacementLicense.LicenseId__c, replacementLicense.Id]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5})
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[]})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushLargeIn
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
LOW [Relational Planner] MAKE_DEP hint detected - marking as dependent side of join Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2}
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id0, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id0, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id0, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=null})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=null, APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], APPROXIMATE_OUTPUT_COLUMNS=7})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id], APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id0, EST_CARDINALITY=null})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c]})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=MERGE, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id], APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id0, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id], APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id0, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Select(groups=[sf.Product_License__c AS originalLicense], props={SELECT_CRITERIA=originalLicense.vlic_Contract_Number__c = ?, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}})
Source(groups=[sf.Product_License__c AS originalLicense], props={OUTPUT_COLS=[originalLicense.vlic_Contract_Number__c, originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[2.0, 2.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, EST_CARDINALITY=-1.0})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Select(groups=[sf.Product_License__c AS replacementLicense], props={SELECT_CRITERIA=replacementLicense.Id IN (<dependent values>), IS_DEPENDENT_SET=true, IS_PUSHED=true, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}})
Source(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING PlanSubqueries
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={JOIN_TYPE=LEFT OUTER JOIN, JOIN_STRATEGY=ENHANCED_SORT, JOIN_CRITERIA=[originalLicense.ReplacementLicenseID__c = replacementLicense.Id], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id], APPROXIMATE_OUTPUT_COLUMNS=7, IS_COPIED=true, LEFT_EXPRESSIONS=[originalLicense.ReplacementLicenseID__c], RIGHT_EXPRESSIONS=[replacementLicense.Id], NON_EQUI_JOIN_CRITERIA=[], DEPENDENT_VALUE_SOURCE=$dsc/id0, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}, SORT_LEFT=SORT, IS_RIGHT_DISTINCT=true, SORT_RIGHT=SORT})
Access(groups=[sf.Product_License__c AS originalLicense])
Select(groups=[sf.Product_License__c AS originalLicense])
Source(groups=[sf.Product_License__c AS originalLicense])
Access(groups=[sf.Product_License__c AS replacementLicense])
Select(groups=[sf.Product_License__c AS replacementLicense])
Source(groups=[sf.Product_License__c AS replacementLicense])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense], props={PROJECT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], OUTPUT_COLS=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId], APPROXIMATE_OUTPUT_COLUMNS=7, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.Status__c=[-1.0, -1.0, -1.0], originalLicense.ReplacementLicenseID__c=[-1.0, -1.0, -1.0], originalLicense.LicenseId__c=[-1.0, -1.0, -1.0], ...}})
Join(groups=[sf.Product_License__c AS originalLicense, sf.Product_License__c AS replacementLicense])
Access(groups=[sf.Product_License__c AS originalLicense], props={SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c], APPROXIMATE_OUTPUT_COLUMNS=5, EST_CARDINALITY=-1.0, EST_COL_STATS={originalLicense.Id=[-1.0, -1.0, -1.0], originalLicense.IsDeleted=[-1.0, -1.0, -1.0], originalLicense.Name=[-1.0, -1.0, -1.0], originalLicense.CreatedDate=[-1.0, -1.0, -1.0], ...}, ATOMIC_REQUEST=SELECT originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c FROM sf.Product_License__c AS originalLicense WHERE originalLicense.vlic_Contract_Number__c = ?})
Access(groups=[sf.Product_License__c AS replacementLicense], props={MAKE_DEP=, SOURCE_HINT=null, MODEL_ID=Schema name=sf, nameInSource=null, uuid=tid:000005adccd6-00000e53-00000000, OUTPUT_COLS=[replacementLicense.Id, replacementLicense.LicenseId__c], APPROXIMATE_OUTPUT_COLUMNS=2, IS_DEPENDENT_SET=true, EST_CARDINALITY=-1.0, EST_COL_STATS={replacementLicense.Id=[-1.0, -1.0, -1.0], replacementLicense.LicenseId__c=[-1.0, -1.0, -1.0]}, ATOMIC_REQUEST=SELECT replacementLicense.Id, replacementLicense.LicenseId__c FROM sf.Product_License__c AS replacementLicense WHERE replacementLicense.Id IN (<dependent values>)})
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId] [originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c AS replacementLicenseId, replacementLicense.Id AS replacementLicenseObjectId]
JoinNode(1) [Dependent] [ENHANCED SORT JOIN (SORT/SORT)] [LEFT OUTER JOIN] criteria=[originalLicense.ReplacementLicenseID__c=replacementLicense.Id] output=[originalLicense.Id, originalLicense.Status__c, originalLicense.ReplacementLicenseID__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c, replacementLicense.LicenseId__c, replacementLicense.Id]
AccessNode(2) output=[originalLicense.ReplacementLicenseID__c, originalLicense.Id, originalLicense.Status__c, originalLicense.LicenseId__c, originalLicense.vlic_Contract_Number__c] SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
DependentAccessNode(3) output=[replacementLicense.Id, replacementLicense.LicenseId__c] SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c WHERE sf.Product_License__c.Id IN (<dependent values>)
============================================================================
END DEBUG LOG
{code}
was (Author: i3draven):
Used ddl:
{code}
CREATE DATABASE db;
USE DATABASE db;
CREATE FOREIGN DATA WRAPPER salesforce;
CREATE FOREIGN DATA WRAPPER mysalesforce type salesforce OPTIONS (supportsOrderBy true);
CREATE SERVER salesforce FOREIGN DATA WRAPPER salesforce OPTIONS ("resource-name" 'salesforce');
CREATE SCHEMA sf SERVER salesforce;
IMPORT FROM SERVER salesforce INTO sf OPTIONS("importer.useFullSchemaName" 'false', "importer.NormalizeNames" 'false', "importer.modelAuditFields" 'true', "importer.importStatstics" 'true');
{code}
{code}
SELECT * FROM SYS.tables WHERE Name='Product_License__c'
{code}
{code}
{
"Description": null,
"Cardinality": -1,
"NameInSource": "Product_License__c",
"Name": "Product_License__c",
"UID": "tid:000005adccd6-9897fe32-00000545",
"Type": "Table",
"IsPhysical": true,
"SupportsUpdates": true,
"IsMaterialized": false,
"VDBName": "db",
"IsSystem": false,
"SchemaUID": "tid:000005adccd6-00000e53-00000000",
"SchemaName": "sf"
}
{code}
SQL:
{code}
SELECT originalLicense.Id,originalLicense.Status__c,originalLicense.ReplacementLicenseID__c,originalLicense.LicenseId__c,originalLicense.vlic_Contract_Number__c,replacementLicense.LicenseId__c as replacementLicenseId ,replacementLicense.Id as replacementLicenseObjectId FROM Product_License__c originalLicense LEFT OUTER JOIN Product_License__c replacementLicense ON originalLicense.ReplacementLicenseID__c = replacementLicense.Id where originalLicense.vlic_Contract_Number__c = :contractNumber
{code}
PLAN
{code}
ProjectNode
+ Relational Node ID:0
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: replacementLicenseId (string)
6: replacementLicenseObjectId (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
JoinNode
+ Relational Node ID:1
+ Output Columns:
0: Id (string)
1: Status__c (string)
2: ReplacementLicenseID__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
5: LicenseId__c (string)
6: Id (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Child 0:
AccessNode
+ Relational Node ID:2
+ Output Columns:
0: ReplacementLicenseID__c (string)
1: Id (string)
2: Status__c (string)
3: LicenseId__c (string)
4: vlic_Contract_Number__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.ReplacementLicenseID__c, sf.Product_License__c.Id, sf.Product_License__c.Status__c, sf.Product_License__c.LicenseId__c, sf.Product_License__c.vlic_Contract_Number__c FROM sf.Product_License__c WHERE sf.Product_License__c.vlic_Contract_Number__c = ?
+ Model Name:sf
+ Child 1:
AccessNode
+ Relational Node ID:3
+ Output Columns:
0: Id (string)
1: LicenseId__c (string)
+ Cost Estimates:Estimated Node Cardinality: -1.0
+ Query:SELECT sf.Product_License__c.Id, sf.Product_License__c.LicenseId__c FROM sf.Product_License__c
+ Model Name:sf
+ Join Strategy:ENHANCED SORT JOIN (SORT/SORT)
+ Join Type:LEFT OUTER JOIN
+ Join Criteria:originalLicense.ReplacementLicenseID__c=replacementLicense.Id
+ Select Columns:
0: originalLicense.Id
1: originalLicense.Status__c
2: originalLicense.ReplacementLicenseID__c
3: originalLicense.LicenseId__c
4: originalLicense.vlic_Contract_Number__c
5: replacementLicense.LicenseId__c AS replacementLicenseId
6: replacementLicense.Id AS replacementLicenseObjectId
+ Data Bytes Sent:7
+ Planning Time:6
{code}
> Teiid generate wrong request to salesforce
> ------------------------------------------
>
> Key: TEIID-5856
> URL: https://issues.jboss.org/browse/TEIID-5856
> Project: Teiid
> Issue Type: Bug
> Components: Salesforce Connector
> Environment: spring-boot teiid salesforce-connector
> Reporter: Renat Eskenin
> Assignee: Steven Hawkins
> Priority: Major
>
> When i call request to salesforce teiid get very long wrong request and then OOM, because teiid request all data in salesforce object.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 11 months