Top Description Fields Constructors Methods
org.apache.derby.impl.sql.compile

pack-priv Class MaterializeSubqueryNode

extends ResultSetNode
Class Inheritance
Imports
org.apache.derby.shared.common.error.StandardException, org.apache.derby.shared.common.reference.ClassName, org.apache.derby.iapi.services.classfile.VMOpcode, org.apache.derby.iapi.services.compiler.LocalField, .MethodBuilder, org.apache.derby.iapi.services.context.ContextManager

A MaterializeSubqueryNode is used to replace the nodes for a subquery, to facilitate code generation for materialization if possible. See beetle 4373 for details.

Field Summary

Modifier and TypeField and Description
private LocalField

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
pack-priv void
decrementLevel(int
The amount to decrement by.
decrement
)

Implements abstract org.apache.derby.impl.sql.compile.ResultSetNode.decrementLevel.

Decrement (query block) level (0-based) for all of the tables in this ResultSet tree.

pack-priv void
generate(ActivationClassBuilder
The ActivationClassBuilder for the class being built
acb
,
MethodBuilder
The method for the generated code to go into
mb
)

Overrides org.apache.derby.impl.sql.compile.QueryTreeNode.generate.

Do the code generation for this node.

Inherited from org.apache.derby.impl.sql.compile.ResultSetNode:
acceptChildrenaddNewPredicateadjustForSortEliminationadjustForSortEliminationassignResultSetNumberbindExpressionsbindExpressionsWithTablesbindNonVTITablesbindResultColumnsbindResultColumnsbindTargetExpressionsbindUntypedNullsToResultColumnsbindVTITableschangeAccessPathcolumnTypesAndLengthsMatchconsiderMaterializationenhanceRCLForInsertensurePredicateListfillInReferencedTableMapflattenableInFromSubquerygenerateNormalizationResultSetgenerateResultSetgenProjectRestrictgenProjectRestrictgenProjectRestrictForReorderinggetAllResultColumnsgetCandidateFinalCostEstimategetCostEstimategetCursorTargetTablegetFinalCostEstimategetFromListgetFromTableByNamegetMatchingColumngetNewCostEstimategetOptimizergetOptimizerImplgetRCLForInsertgetReferencedTableMapgetResultColumnsgetResultSetNumbergetScratchCostEstimateisCursorTargetTableisInsertSourceisNotExistsisOneRowResultSetisOrderedOnisPossibleDistinctScanisStatementResultSetisUpdatableCursorLOJgetReferencedTablesmakeResultDescriptionmakeResultDescriptorsmarkAsCursorTargetTablemarkForDistinctScanmarkStatementResultSetmodifyAccessPathsmodifyAccessPathsnotCursorTargetTablenotFlattenableJoinnumDistinctAggregatesoptimizeparseDefaultperformMaterializationpreprocessprintQueryExpressionSuffixClausesprintSubNodesprojectResultColumnspushOffsetFetchFirstpushOrderByListpushQueryExpressionSuffixreferencesTargetrejectParametersrejectXMLValuesrenameGeneratedResultNamesreplaceOrForbidDefaultsreturnsAtMostOneRowsetCandidateFinalCostEstimatesetCostEstimatesetCursorTargetTablesetInsertSourcesetOptimizersetReferencedTableMapsetResultColumnssetResultSetNumbersetResultToBooleanTrueNodesetScratchCostEstimatesetTableConstructorTypessubqueryReferencesTargettoStringupdateTargetLockModeverifySelectStarSubquery

Field Detail

lfback to summary
private LocalField lf

Constructor Detail

MaterializeSubqueryNodeback to summary
pack-priv MaterializeSubqueryNode(LocalField lf, ContextManager cm)

Method Detail

decrementLevelback to summary
pack-priv void decrementLevel(int decrement)

Implements abstract org.apache.derby.impl.sql.compile.ResultSetNode.decrementLevel.

Doc from org.apache.derby.impl.sql.compile.ResultSetNode.decrementLevel.

Decrement (query block) level (0-based) for all of the tables in this ResultSet tree. This is useful when flattening a subquery.

Parameters
decrement:int

The amount to decrement by.

generateback to summary
pack-priv void generate(ActivationClassBuilder acb, MethodBuilder mb) throws StandardException

Overrides org.apache.derby.impl.sql.compile.QueryTreeNode.generate.

Doc from org.apache.derby.impl.sql.compile.QueryTreeNode.generate.

Do the code generation for this node. This is a place-holder method - it should be over-ridden in the sub-classes.

Parameters
acb:ActivationClassBuilder

The ActivationClassBuilder for the class being built

mb:MethodBuilder

The method for the generated code to go into

Annotations
@Override
Exceptions
StandardException:
Thrown on error