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