After you define the connector metadata for pushdown capability and generate the code, the Informatica Connector Toolkit adds the pushdown specific parameters to the
adapter.contribution.plugin.xml
.
Changes to adapter.contribution.plugin.xml
Informatica Connector Toolkit adds the following section to the adapter.contribution.plugin.xml file:
The SourceToTargetPushdown section defines the connections for which you want to support full pushdown.
The SourceToTargetPushdown section is populated with the following attributes as defined in the connector metadata:
adapterID. Specifies the connector ID of the source.
sourcePushdown. Set to true if you enable
Support Source Pushdown
in the connector metadata.
The Informatica Connector Toolkit currently does not implement the source pushdown logic for a connector.
multiTargetSupport. Set to true if you enable
Support Multi Target
in the connector metadata.
The InputProjectionSupport section defines the support for full pushdown for different transformations.
The InputProjectionSupport section includes the following elements:
FilterOperation
JoinOperation
ExpressionOperation
AggregatorOperation
LookupOperation
SortOperation
If you enable full pushdown for a transformation in the connector metadata, the Informatica Connector Toolkit sets the supportsPushdown attribute to true for the respective transformation element.
runtime.pdo
The Informatica Connector Toolkit provides the following classes and interfaces to implement pushdown logic:
Renderer Class
This class converts the ASG to an SQL query string by traversing each node type. Each node type represents a query concept. Each rendered node type will return a string. Once all the node types are traversed successfully, a pushdown SQL Query is generated.
Visitor Class
The connector can override the visitXXXNode functions to generate a connector specific query. The expression visitor functions are not directly invoked. These functions are invoked when connector runs the utility API such as
SDKPushdownUtils::getPushdownSQL
either at runtime to generate the connector specific SQL query or during the validation phase to check if the connector supports the generated query.
TypeHandler Class
Implements the typeHandler interface to create the connector context and type conversion handler that is used to generate the pushdown query.
TypeConversionHandler Class
This class implements the TypeConversionHandler interface to handle the conversion from the platform type to the AdapterType or from the Adapter native type to the AdapterType.
TypeContext Class
The TypeContext captures the container typesystem context belongs to the platform type or the AdapterType.
Pair Class
The Pair class and the respective functions are used in the ASG traversal. Do not modify this class or any function in this class.
AdapterType Interface
Native typesystem is a limited or static interface based on proprietary Informatica APIs and XML based registries. It does not allow you to control the type semantics programmatically using APIs such as
AdapterType::isA
or add plain old java objects such as
public static class Varchar implements AdapterType
.
AdapterType is a part of SDkQueryNode hierarchy.
Engine Class
The Engine class implements SDKEngine interface that helps you to identify the engine type for mappings and elastic mappings
Post Proc Class
The Post Proc class extends the Renderer class to traverse ASG and generate the SQL query string. It also optimizes the pushdown query.
For more information about implementing these classes, see the sample source code of the MySQL_Cloud Connector available with the Informatica Connector Toolkit.