Package org.teiid.query.processor
Class BatchedUpdatePlan
- java.lang.Object
-
- org.teiid.query.processor.ProcessorPlan
-
- org.teiid.query.processor.BatchedUpdatePlan
-
- All Implemented Interfaces:
Cloneable
,BatchCollector.BatchProducer
public class BatchedUpdatePlan extends ProcessorPlan
Plan for execution for a batched update command. The plan executes the child plans of the individual commands in order. If variableContexts are provided, then this is a bulk update where all plans are the same object.- Since:
- 4.2
-
-
Constructor Summary
Constructors Constructor Description BatchedUpdatePlan(List<? extends ProcessorPlan> childPlans, int commandsInBatch, List<VariableContext> contexts, boolean singleResult)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BatchedUpdatePlan
clone()
Return a safe clone of the ProcessorPlan.void
close()
Close the plan after processing.PlanNode
getDescriptionProperties()
List
getOutputElements()
Get list of resolved elements describing output columns for this plan.List
getUpdatePlans()
Returns the child plans for this batch.void
initialize(CommandContext context, ProcessorDataManager dataMgr, BufferManager bufferMgr)
Initialize the plan with some required pieces of data for making queries.TupleBatch
nextBatch()
Get a batch of results or possibly an Exception.void
open()
Open the plan for processing.Boolean
requiresTransaction(boolean transactionalReads)
void
reset()
Reset a plan so that it can be processed again.void
setSingleResult(boolean singleResult)
String
toString()
-
Methods inherited from class org.teiid.query.processor.ProcessorPlan
addWarning, getBuffer, getContext, hasBuffer, setContext
-
-
-
-
Constructor Detail
-
BatchedUpdatePlan
public BatchedUpdatePlan(List<? extends ProcessorPlan> childPlans, int commandsInBatch, List<VariableContext> contexts, boolean singleResult)
- Parameters:
childPlans
- the child update plans for this batchcommandsInBatch
- The total number of commands in this batch. This does not always equal the number of plans if some commands have been batched together.singleResult
- indicates only a single update count is expected - non-single result plans are required to be top level- Since:
- 4.2
-
-
Method Detail
-
clone
public BatchedUpdatePlan clone()
Description copied from class:ProcessorPlan
Return a safe clone of the ProcessorPlan. A ProcessorPlan may only be safely cloned in between processings. That is, it is only safe to clone a plan before it isopened
or after it isclosed
.- Specified by:
clone
in classProcessorPlan
- Returns:
- safe clone of this ProcessorPlan, as long as it is not open for processing
- Since:
- 4.2
- See Also:
Object.clone()
-
initialize
public void initialize(CommandContext context, ProcessorDataManager dataMgr, BufferManager bufferMgr)
Description copied from class:ProcessorPlan
Initialize the plan with some required pieces of data for making queries. The data manager is used to make queries and the processorID must be passed with the request so the data manager can find the processor again.- Overrides:
initialize
in classProcessorPlan
- Parameters:
context
- Process execution contextdataMgr
- Data manager referencebufferMgr
- Buffer manager reference- Since:
- 4.2
- See Also:
ProcessorPlan.initialize(org.teiid.query.util.CommandContext, org.teiid.query.processor.ProcessorDataManager, org.teiid.common.buffer.BufferManager)
-
getOutputElements
public List getOutputElements()
Description copied from class:ProcessorPlan
Get list of resolved elements describing output columns for this plan.- Specified by:
getOutputElements
in interfaceBatchCollector.BatchProducer
- Specified by:
getOutputElements
in classProcessorPlan
- Returns:
- List of SingleElementSymbol
- Since:
- 4.2
- See Also:
ProcessorPlan.getOutputElements()
-
open
public void open() throws TeiidComponentException, TeiidProcessingException
Description copied from class:ProcessorPlan
Open the plan for processing.- Specified by:
open
in classProcessorPlan
- Throws:
TeiidComponentException
TeiidProcessingException
- Since:
- 4.2
- See Also:
ProcessorPlan.open()
-
nextBatch
public TupleBatch nextBatch() throws BlockedException, TeiidComponentException, TeiidProcessingException
Description copied from class:ProcessorPlan
Get a batch of results or possibly an Exception.- Specified by:
nextBatch
in interfaceBatchCollector.BatchProducer
- Specified by:
nextBatch
in classProcessorPlan
- Returns:
- Batch of results
- Throws:
BlockedException
- indicating next batch is not available yetTeiidComponentException
- for non-business rule exceptionTeiidProcessingException
- for business rule exception, related to user input or modeling- Since:
- 4.2
- See Also:
ProcessorPlan.nextBatch()
-
close
public void close() throws TeiidComponentException
Description copied from class:ProcessorPlan
Close the plan after processing.- Specified by:
close
in interfaceBatchCollector.BatchProducer
- Specified by:
close
in classProcessorPlan
- Throws:
TeiidComponentException
- Since:
- 4.2
- See Also:
ProcessorPlan.close()
-
reset
public void reset()
Description copied from class:ProcessorPlan
Reset a plan so that it can be processed again.- Overrides:
reset
in classProcessorPlan
- Since:
- 4.2
- See Also:
ProcessorPlan.reset()
-
getDescriptionProperties
public PlanNode getDescriptionProperties()
- Overrides:
getDescriptionProperties
in classProcessorPlan
-
getUpdatePlans
public List getUpdatePlans()
Returns the child plans for this batch. Used primarily for unit tests.- Returns:
- Since:
- 4.2
-
requiresTransaction
public Boolean requiresTransaction(boolean transactionalReads)
- Overrides:
requiresTransaction
in classProcessorPlan
-
setSingleResult
public void setSingleResult(boolean singleResult)
-
-