|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.lucidera.lcs.LcsAppendStreamDef
public class LcsAppendStreamDef
LcsAppendStreamDef creates an append execution stream def
Field Summary | |
---|---|
private boolean |
alterTable
|
protected FennelRel |
appendRel
|
protected List<FemLocalIndex> |
clusteredIndexes
|
protected FemLocalIndex |
deletionIndex
|
private Double |
estimatedNumInputRows
|
protected boolean |
hasIndexes
|
protected LcsIndexGuide |
indexGuide
|
private FemExecutionStreamDef |
inputStream
|
protected LcsTable |
lcsTable
|
protected boolean |
replaceColumns
|
protected FarragoRepos |
repos
|
protected List<FemLocalIndex> |
unclusteredIndexes
|
Constructor Summary | |
---|---|
LcsAppendStreamDef(FarragoRepos repos,
LcsTable lcsTable,
FemExecutionStreamDef inputStream,
FennelRel appendRel,
Double estimatedNumInputRows)
|
Method Summary | |
---|---|
FemBarrierStreamDef |
createBitmapAppendStreams(FennelRelImplementor implementor,
FemBarrierStreamDef clusterAppendBarrier,
int writeRowCountParamId)
Creates the bottom half of an insert execution stream, i.e., the part the inserts into the unclustered indexes. |
protected void |
createClusterAppends(FennelRelImplementor implementor,
List<FemLcsClusterAppendStreamDef> clusterAppendDefs)
|
FemBarrierStreamDef |
createClusterAppendStreams(FennelRelImplementor implementor)
Creates the top half of an insert execution stream, i.e., the part that appends the clustered indexes. |
FemLbmSplicerStreamDef |
createDeleteRidStream(FennelRelImplementor implementor,
FemExecutionStreamDef inputStream,
Double inputRowCount,
int writeRowCountParamId,
boolean removeDups)
Creates a substream that takes an input stream of rids, sorts them, optionally removes duplicates, and then adds them into the deletion index associated with the table we're appending to |
protected FemSplitterStreamDef |
createSplitter()
|
private FemLbmSplicerStreamDef |
createViolationStream(FennelRelImplementor implementor,
ArrayList<LcsCompositeStreamDef> bitmapAppendDefs,
int numUniqueIndexes)
Creates the substream that inserts unique constraint violations into the table's deletion index. |
private LcsIndexGuide |
getIndexGuide(FemLocalIndex unclusteredIndex)
Returns an index guide specific to an unclustered index |
protected void |
setupIndexes()
Initializes the clustered and unclustered indexes relevant to the stream that will be created. |
boolean |
streamHasIndexes()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected FarragoRepos repos
protected LcsTable lcsTable
private FemExecutionStreamDef inputStream
protected FennelRel appendRel
private Double estimatedNumInputRows
protected LcsIndexGuide indexGuide
protected List<FemLocalIndex> clusteredIndexes
protected List<FemLocalIndex> unclusteredIndexes
protected FemLocalIndex deletionIndex
protected boolean replaceColumns
protected boolean hasIndexes
private boolean alterTable
Constructor Detail |
---|
public LcsAppendStreamDef(FarragoRepos repos, LcsTable lcsTable, FemExecutionStreamDef inputStream, FennelRel appendRel, Double estimatedNumInputRows)
Method Detail |
---|
protected void setupIndexes()
public FemBarrierStreamDef createClusterAppendStreams(FennelRelImplementor implementor)
implementor
- FennelRel implementor
protected FemSplitterStreamDef createSplitter()
protected void createClusterAppends(FennelRelImplementor implementor, List<FemLcsClusterAppendStreamDef> clusterAppendDefs)
public boolean streamHasIndexes()
public FemBarrierStreamDef createBitmapAppendStreams(FennelRelImplementor implementor, FemBarrierStreamDef clusterAppendBarrier, int writeRowCountParamId)
implementor
- FennelRel implementorclusterAppendBarrier
- the barrier from the cluster appends that
serves as the producer for the unclustered index append streamswriteRowCountParamId
- parameter id the final barrier will use to
retrieve the upstream deletion rowcount, in the case of a MERGE statement
private LcsIndexGuide getIndexGuide(FemLocalIndex unclusteredIndex)
unclusteredIndex
- the unclustered indexprivate FemLbmSplicerStreamDef createViolationStream(FennelRelImplementor implementor, ArrayList<LcsCompositeStreamDef> bitmapAppendDefs, int numUniqueIndexes)
Bitmap appenders that do not write to unique indexes don't need to be involved. In fact, the violation substream can even proceed before those appenders have finished because they don't access the deletion index and therefore there is no conflict.
implementor
- FennelRel implementorbitmapAppendDefs
- bitmap append substreams that created the
violationsnumUniqueIndexes
- number of unique indexes on the table; must be
> 0
public FemLbmSplicerStreamDef createDeleteRidStream(FennelRelImplementor implementor, FemExecutionStreamDef inputStream, Double inputRowCount, int writeRowCountParamId, boolean removeDups)
implementor
- FennelRel implementorinputStream
- input stream containing ridsinputRowCount
- estimated number of rids to be added to the deletion
indexwriteRowCountParamId
- > 0 if the splicer that writes to the
deletion index needs to return a count of the number of rids writtenremoveDups
- if true, remove duplicate rids from the stream
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |