ExecStreamFactory Class Reference

ExecStreamFactory builds an ExecStreamEmbryo from the Java representation of a stream definition. More...

#include <ExecStreamFactory.h>

Inheritance diagram for ExecStreamFactory:

FemVisitor JniProxyVisitor List of all members.

Public Member Functions

 ExecStreamFactory (SharedDatabase pDatabase, SharedFtrsTableWriterFactory pTableWriterFactory, CmdInterpreter::StreamGraphHandle *pStreamGraphHandle)
void setGraphEmbryo (ExecStreamGraphEmbryo &graphEmbryo)
void setScratchAccessor (SegmentAccessor &scratchAccessor)
void addSubFactory (SharedExecStreamSubFactory pSubFactory)
SharedDatabase getDatabase ()
virtual ExecStreamEmbryo const & visitStream (ProxyExecutionStreamDef &)
 Reads the Java representation of an ExecStream.
void readTupleDescriptor (TupleDescriptor &desc, const SharedProxyTupleDescriptor def)
 makes a TupleDescriptor from its proxy definition
void createPrivateScratchSegment (ExecStreamParams &params)
 Creates a private scratch segment for an ExecStream.
void createQuotaAccessors (ExecStreamParams &params)
void readExecStreamParams (ExecStreamParams &, ProxyExecutionStreamDef &)
void readTupleStreamParams (SingleOutputExecStreamParams &, ProxyTupleStreamDef &)
void initBTreePrefetchSearchParams (BTreePrefetchSearchExecStreamParams &, ProxyIndexSearchDef &)
void readBTreeStreamParams (BTreeExecStreamParams &, ProxyIndexAccessorDef &)
void readBTreeParams (BTreeParams &, ProxyIndexAccessorDef &)
void readBTreeSearchStreamParams (BTreeSearchExecStreamParams &, ProxyIndexSearchDef &)
void readAggStreamParams (SortedAggExecStreamParams &, ProxyAggStreamDef &)
DynamicParamId readDynamicParamId (const int val)
virtual void visit (ProxyAggInvocation &)
virtual void visit (ProxyAggStreamDef &)
virtual void visit (ProxyBeginTxnCmd &)
virtual void visit (ProxyCmd &)
virtual void visit (ProxyCmdAbandonBackup &)
virtual void visit (ProxyCmdAlterSystemDeallocate &)
virtual void visit (ProxyCmdBeginTxn &)
virtual void visit (ProxyCmdBeginTxnWithCsn &)
virtual void visit (ProxyCmdCheckpoint &)
virtual void visit (ProxyCmdCloseDatabase &)
virtual void visit (ProxyCmdCommit &)
virtual void visit (ProxyCmdCompleteBackup &)
virtual void visit (ProxyCmdCreateExecutionStreamGraph &)
virtual void visit (ProxyCmdCreateIndex &)
virtual void visit (ProxyCmdCreateStreamHandle &)
virtual void visit (ProxyCmdDropIndex &)
virtual void visit (ProxyCmdGetLastCommittedTxnId &)
virtual void visit (ProxyCmdGetTxnCsn &)
virtual void visit (ProxyCmdInitiateBackup &)
virtual void visit (ProxyCmdOpenDatabase &)
virtual void visit (ProxyCmdPrepareExecutionStreamGraph &)
virtual void visit (ProxyCmdRestoreFromBackup &)
virtual void visit (ProxyCmdRollback &)
virtual void visit (ProxyCmdSavepoint &)
virtual void visit (ProxyCmdSetParam &)
virtual void visit (ProxyCmdTruncateIndex &)
virtual void visit (ProxyCmdVerifyIndex &)
virtual void visit (ProxyCmdVersionIndexRoot &)
virtual void visit (ProxyColumnName &)
virtual void visit (ProxyCorrelation &)
virtual void visit (ProxyCsnHandle &)
virtual void visit (ProxyCsnHandleReturningCmd &)
virtual void visit (ProxyDatabaseCmd &)
virtual void visit (ProxyDatabaseParam &)
virtual void visit (ProxyDbHandle &)
virtual void visit (ProxyDynamicParamUse &)
virtual void visit (ProxyDynamicParameter &)
virtual void visit (ProxyEndTxnCmd &)
virtual void visit (ProxyExecStreamDataFlow &)
virtual void visit (ProxyExecutionStreamDef &)
virtual void visit (ProxyGenericStreamDef &)
virtual void visit (ProxyHandle &)
virtual void visit (ProxyIndexAccessCmd &)
virtual void visit (ProxyIndexAccessorDef &)
virtual void visit (ProxyIndexCmd &)
virtual void visit (ProxyIndexStreamDef &)
virtual void visit (ProxyIndexWriterDef &)
virtual void visit (ProxyKeyAccessorDef &)
virtual void visit (ProxyLbmBitOpStreamDef &)
virtual void visit (ProxyLbmChopperStreamDef &)
virtual void visit (ProxyLbmGeneratorStreamDef &)
virtual void visit (ProxyLbmIntersectStreamDef &)
virtual void visit (ProxyLbmMinusStreamDef &)
virtual void visit (ProxyLbmNormalizerStreamDef &)
virtual void visit (ProxyLbmSearchStreamDef &)
virtual void visit (ProxyLbmSortedAggStreamDef &)
virtual void visit (ProxyLbmSplicerStreamDef &)
virtual void visit (ProxyLbmUnionStreamDef &)
virtual void visit (ProxyLcsClusterAppendStreamDef &)
virtual void visit (ProxyLcsClusterReplaceStreamDef &)
virtual void visit (ProxyLcsClusterScanDef &)
virtual void visit (ProxyLcsRowScanStreamDef &)
virtual void visit (ProxyMultiUseBufferingStreamDef &)
virtual void visit (ProxyReshapeParameter &)
virtual void visit (ProxySplicerIndexAccessorDef &)
virtual void visit (ProxyStreamGraphHandle &)
virtual void visit (ProxyStreamHandle &)
virtual void visit (ProxySvptHandle &)
virtual void visit (ProxyTableWriterDef &)
virtual void visit (ProxyTupleAccessor &)
virtual void visit (ProxyTupleAttrAccessor &)
virtual void visit (ProxyTupleAttrDescriptor &)
virtual void visit (ProxyTupleAttrProjection &)
virtual void visit (ProxyTupleDescriptor &)
virtual void visit (ProxyTupleProjection &)
virtual void visit (ProxyTupleStreamDef &)
virtual void visit (ProxyTupleStreamGraphCmd &)
virtual void visit (ProxyTxnCmd &)
virtual void visit (ProxyTxnHandle &)
virtual void visit (ProxyWindowDef &)
virtual void visit (ProxyWindowPartitionDef &)
virtual void visit (ProxyWindowStreamDef &)
virtual void unhandledVisit ()
 Handles case when a visitor attempts to visit a proxy whose type's visit method has not been overridden.

Static Public Attributes

static JniProxyVisitTable<
FemVisitor
visitTbl

Protected Member Functions

virtual void invokeVisit (ProxyExecutionStreamDef &)
 Dispatches to the correct visitor method; only called when no subfactory wants to handle the stream.
virtual void visit (ProxyBarrierStreamDef &)
virtual void visit (ProxyBufferingTupleStreamDef &)
virtual void visit (ProxyBufferReaderStreamDef &)
virtual void visit (ProxyBufferWriterStreamDef &)
virtual void visit (ProxyCartesianProductStreamDef &)
virtual void visit (ProxyIndexLoaderDef &)
virtual void visit (ProxyIndexScanDef &)
virtual void visit (ProxyIndexSearchDef &)
virtual void visit (ProxyJavaSinkStreamDef &)
virtual void visit (ProxyJavaTransformStreamDef &)
virtual void visit (ProxyMergeStreamDef &)
virtual void visit (ProxyMockTupleStreamDef &)
virtual void visit (ProxyTableDeleterDef &)
virtual void visit (ProxyTableInserterDef &)
virtual void visit (ProxyTableUpdaterDef &)
virtual void visit (ProxySortedAggStreamDef &)
virtual void visit (ProxySortingStreamDef &)
virtual void visit (ProxySplitterStreamDef &)
virtual void visit (ProxyValuesStreamDef &)
virtual void visit (ProxyReshapeStreamDef &)
virtual void visit (ProxyNestedLoopJoinStreamDef &)
virtual void visit (ProxyBernoulliSamplingStreamDef &)
virtual void visit (ProxyCalcTupleStreamDef &streamDef)
virtual void visit (ProxyCorrelationJoinStreamDef &streamDef)
virtual void visit (ProxyCollectTupleStreamDef &streamDef)
virtual void visit (ProxyUncollectTupleStreamDef &streamDef)
virtual void visit (ProxyFlatFileTupleStreamDef &streamDef)
virtual void visit (ProxyLhxJoinStreamDef &streamDef)
virtual void visit (ProxyLhxAggStreamDef &streamDef)
void readBTreeReadStreamParams (BTreeReadExecStreamParams &, ProxyIndexScanDef &)
void readIndexWriterParams (FtrsTableIndexWriterParams &, ProxyIndexWriterDef &)
void readTableWriterStreamParams (FtrsTableWriterExecStreamParams &, ProxyTableWriterDef &)
void readBarrierDynamicParams (BarrierExecStreamParams &, ProxyBarrierStreamDef &)
void readColumnList (ProxyFlatFileTupleStreamDef &streamDef, std::vector< std::string > &names)
void implementSortWithBTree (ProxySortingStreamDef &streamDef)
char readCharParam (const std::string &val)

Protected Attributes

SharedDatabase pDatabase
 Database to be accessed by stream.
SharedFtrsTableWriterFactory pTableWriterFactory
 Factory for creating TableWriters.
CmdInterpreter::StreamGraphHandlepStreamGraphHandle
 Handle to the stream graph being built.
SegmentAccessor scratchAccessor
 Accessor for ScratchSegment available to all streams.
ExecStreamEmbryo embryo
 Value set by visit functions.
ExecStreamGraphEmbryopGraphEmbryo
 Embryo for graph being built.
std::vector< SharedExecStreamSubFactorysubFactories
 Subfactories for extending factory behavior.

Detailed Description

ExecStreamFactory builds an ExecStreamEmbryo from the Java representation of a stream definition.

NOTE: this class is not thread-safe

Definition at line 58 of file ExecStreamFactory.h.


Constructor & Destructor Documentation

ExecStreamFactory::ExecStreamFactory ( SharedDatabase  pDatabase,
SharedFtrsTableWriterFactory  pTableWriterFactory,
CmdInterpreter::StreamGraphHandle pStreamGraphHandle 
) [explicit]

Definition at line 68 of file ExecStreamFactory.cpp.

References pDatabase, pGraphEmbryo, pStreamGraphHandle, and pTableWriterFactory.

00072 {
00073     pDatabase = pDatabaseInit;
00074     pTableWriterFactory = pTableWriterFactoryInit;
00075     pStreamGraphHandle = pStreamGraphHandleInit;
00076     pGraphEmbryo = NULL;
00077 }


Member Function Documentation

void ExecStreamFactory::invokeVisit ( ProxyExecutionStreamDef  )  [protected, virtual]

Dispatches to the correct visitor method; only called when no subfactory wants to handle the stream.

Definition at line 130 of file ExecStreamFactory.cpp.

References FemVisitor::visitTbl.

Referenced by visitStream().

00132 {
00133     FemVisitor::visitTbl.accept(*this,streamDef);
00134 }

void ExecStreamFactory::visit ( ProxyBarrierStreamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 142 of file ExecStreamFactory.cpp.

References embryo, ProxyBarrierStreamDef::getReturnMode(), ExecStreamEmbryo::init(), readBarrierDynamicParams(), readTupleStreamParams(), and BarrierExecStreamParams::returnMode.

00143 {
00144     BarrierExecStreamParams params;
00145     readTupleStreamParams(params, streamDef);
00146     params.returnMode = streamDef.getReturnMode();
00147     readBarrierDynamicParams(params, streamDef);
00148     embryo.init(new BarrierExecStream(), params);
00149 }

void ExecStreamFactory::visit ( ProxyBufferingTupleStreamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 162 of file ExecStreamFactory.cpp.

References embryo, ExecStreamEmbryo::init(), ProxyBufferingTupleStreamDef::isInMemory(), ProxyBufferingTupleStreamDef::isMultipass(), SegBufferExecStreamParams::multipass, pDatabase, and readTupleStreamParams().

00163 {
00164     SegBufferExecStreamParams params;
00165     readTupleStreamParams(params, streamDef);
00166     params.multipass = streamDef.isMultipass();
00167     if (!streamDef.isInMemory()) {
00168         params.scratchAccessor.pSegment = pDatabase->getTempSegment();
00169         params.scratchAccessor.pCacheAccessor = params.pCacheAccessor;
00170     }
00171     embryo.init(new SegBufferExecStream(), params);
00172 }

void ExecStreamFactory::visit ( ProxyBufferReaderStreamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 189 of file ExecStreamFactory.cpp.

References embryo, ExecStreamEmbryo::init(), pDatabase, readDynamicParamId(), SegBufferReaderExecStreamParams::readerRefCountParamId, and readTupleStreamParams().

00190 {
00191     SegBufferReaderExecStreamParams params;
00192     readTupleStreamParams(params, streamDef);
00193     if (!streamDef.isInMemory()) {
00194         params.scratchAccessor.pSegment = pDatabase->getTempSegment();
00195         params.scratchAccessor.pCacheAccessor = params.pCacheAccessor;
00196     }
00197     assert(streamDef.isMultipass());
00198     params.readerRefCountParamId =
00199         readDynamicParamId(streamDef.getReaderRefCountParamId());
00200     embryo.init(new SegBufferReaderExecStream(), params);
00201 }

void ExecStreamFactory::visit ( ProxyBufferWriterStreamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 174 of file ExecStreamFactory.cpp.

References embryo, ExecStreamEmbryo::init(), DiffluenceExecStreamParams::outputTupleDesc, pDatabase, readDynamicParamId(), SegBufferWriterExecStreamParams::readerRefCountParamId, readExecStreamParams(), and readTupleDescriptor().

00175 {
00176     SegBufferWriterExecStreamParams params;
00177     readExecStreamParams(params, streamDef);
00178     readTupleDescriptor(params.outputTupleDesc, streamDef.getOutputDesc());
00179     if (!streamDef.isInMemory()) {
00180         params.scratchAccessor.pSegment = pDatabase->getTempSegment();
00181         params.scratchAccessor.pCacheAccessor = params.pCacheAccessor;
00182     }
00183     assert(streamDef.isMultipass());
00184     params.readerRefCountParamId =
00185         readDynamicParamId(streamDef.getReaderRefCountParamId());
00186     embryo.init(new SegBufferWriterExecStream(), params);
00187 }

void ExecStreamFactory::visit ( ProxyCartesianProductStreamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 203 of file ExecStreamFactory.cpp.

References embryo, ExecStreamEmbryo::init(), ProxyCartesianProductStreamDef::isLeftOuter(), CartesianJoinExecStreamParams::leftOuter, and readTupleStreamParams().

00204 {
00205     CartesianJoinExecStreamParams params;
00206     readTupleStreamParams(params, streamDef);
00207     params.leftOuter = streamDef.isLeftOuter();
00208     embryo.init(new CartesianJoinExecStream(), params);
00209 }

void ExecStreamFactory::visit ( ProxyIndexLoaderDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 211 of file ExecStreamFactory.cpp.

References BTreeInsertExecStreamParams::distinctness, embryo, ProxyIndexLoaderDef::getDistinctness(), ExecStreamEmbryo::init(), ProxyIndexLoaderDef::isMonotonic(), BTreeInsertExecStreamParams::monotonic, readBTreeStreamParams(), and readTupleStreamParams().

00212 {
00213     BTreeInsertExecStreamParams params;
00214     readTupleStreamParams(params, streamDef);
00215     readBTreeStreamParams(params, streamDef);
00216     params.distinctness = streamDef.getDistinctness();
00217     params.monotonic = streamDef.isMonotonic();
00218     embryo.init(new BTreeInsertExecStream(), params);
00219 }

void ExecStreamFactory::visit ( ProxyIndexScanDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 221 of file ExecStreamFactory.cpp.

References embryo, ExecStreamEmbryo::init(), and readBTreeReadStreamParams().

00222 {
00223     BTreeScanExecStreamParams params;
00224     readBTreeReadStreamParams(params, streamDef);
00225     embryo.init(
00226         new BTreeScanExecStream(),
00227         params);
00228 }

void ExecStreamFactory::visit ( ProxyIndexSearchDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 230 of file ExecStreamFactory.cpp.

References embryo, ExecStreamEmbryo::init(), initBTreePrefetchSearchParams(), ProxyIndexSearchDef::isPrefetch(), ProxyIndexSearchDef::isUniqueKey(), and readBTreeSearchStreamParams().

00231 {
00232     assert(!(streamDef.isUniqueKey() && streamDef.isPrefetch()));
00233     if (streamDef.isPrefetch()) {
00234         BTreePrefetchSearchExecStreamParams params;
00235         initBTreePrefetchSearchParams(params, streamDef);
00236         embryo.init(
00237             new BTreePrefetchSearchExecStream(),
00238             params);
00239     } else {
00240         BTreeSearchExecStreamParams params;
00241         readBTreeSearchStreamParams(params, streamDef);
00242         embryo.init(
00243             streamDef.isUniqueKey()
00244             ? new BTreeSearchUniqueExecStream() : new BTreeSearchExecStream(),
00245             params);
00246     }
00247 }

void ExecStreamFactory::visit ( ProxyJavaSinkStreamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 259 of file ExecStreamFactory.cpp.

References embryo, ProxyJavaSinkStreamDef::getStreamId(), ExecStreamEmbryo::init(), JavaSinkExecStreamParams::javaFennelPipeTupleIterId, pStreamGraphHandle, JavaSinkExecStreamParams::pStreamGraphHandle, and readExecStreamParams().

00260 {
00261     JavaSinkExecStreamParams params;
00262     readExecStreamParams(params, streamDef);
00263     params.pStreamGraphHandle = pStreamGraphHandle;
00264     params.javaFennelPipeTupleIterId = streamDef.getStreamId();
00265     embryo.init(new JavaSinkExecStream(), params);
00266 }

void ExecStreamFactory::visit ( ProxyJavaTransformStreamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 268 of file ExecStreamFactory.cpp.

References embryo, ProxyJavaTransformStreamDef::getJavaClassName(), ExecStreamEmbryo::init(), JavaTransformExecStreamParams::javaClassName, JavaTransformExecStreamParams::outputTupleDesc, pStreamGraphHandle, JavaTransformExecStreamParams::pStreamGraphHandle, readExecStreamParams(), and readTupleDescriptor().

00269 {
00270     JavaTransformExecStreamParams params;
00271 
00272     readExecStreamParams(params, streamDef);
00273 
00274     readTupleDescriptor(params.outputTupleDesc, streamDef.getOutputDesc());
00275 
00276     params.pStreamGraphHandle = pStreamGraphHandle;
00277     params.javaClassName = streamDef.getJavaClassName();
00278     embryo.init(new JavaTransformExecStream(), params);
00279 }

void ExecStreamFactory::visit ( ProxyMergeStreamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 281 of file ExecStreamFactory.cpp.

References embryo, ExecStreamEmbryo::init(), MergeExecStreamParams::isParallel, ProxyMergeStreamDef::isPrePullInputs(), ProxyMergeStreamDef::isSequential(), and readTupleStreamParams().

00282 {
00283     MergeExecStreamParams params;
00284     readTupleStreamParams(params, streamDef);
00285     if (!streamDef.isSequential()) {
00286         params.isParallel = true;
00287     }
00288     // prePullInputs parameter isn't actually supported yet
00289     assert(!streamDef.isPrePullInputs());
00290     embryo.init(new MergeExecStream(), params);
00291 }

void ExecStreamFactory::visit ( ProxyMockTupleStreamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 293 of file ExecStreamFactory.cpp.

References embryo, ProxyMockTupleStreamDef::getRowCount(), ExecStreamEmbryo::init(), MockProducerExecStreamParams::nRows, and readTupleStreamParams().

00294 {
00295     MockProducerExecStreamParams params;
00296     readTupleStreamParams(params, streamDef);
00297     params.nRows = streamDef.getRowCount();
00298     embryo.init(new MockProducerExecStream(), params);
00299 }

void ExecStreamFactory::visit ( ProxyTableDeleterDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 301 of file ExecStreamFactory.cpp.

References FtrsTableWriter::ACTION_DELETE, FtrsTableWriterExecStreamParams::actionType, embryo, ExecStreamEmbryo::init(), and readTableWriterStreamParams().

00302 {
00303     FtrsTableWriterExecStreamParams params;
00304     params.actionType = FtrsTableWriter::ACTION_DELETE;
00305     readTableWriterStreamParams(params, streamDef);
00306     embryo.init(new FtrsTableWriterExecStream(), params);
00307 }

void ExecStreamFactory::visit ( ProxyTableInserterDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 309 of file ExecStreamFactory.cpp.

References FtrsTableWriter::ACTION_INSERT, FtrsTableWriterExecStreamParams::actionType, embryo, ExecStreamEmbryo::init(), and readTableWriterStreamParams().

00310 {
00311     FtrsTableWriterExecStreamParams params;
00312     params.actionType = FtrsTableWriter::ACTION_INSERT;
00313     readTableWriterStreamParams(params, streamDef);
00314     embryo.init(new FtrsTableWriterExecStream(), params);
00315 }

void ExecStreamFactory::visit ( ProxyTableUpdaterDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 317 of file ExecStreamFactory.cpp.

References FtrsTableWriter::ACTION_UPDATE, FtrsTableWriterExecStreamParams::actionType, embryo, ProxyTableUpdaterDef::getUpdateProj(), ExecStreamEmbryo::init(), readTableWriterStreamParams(), CmdInterpreter::readTupleProjection(), and FtrsTableWriterParams::updateProj.

00318 {
00319     FtrsTableWriterExecStreamParams params;
00320     params.actionType = FtrsTableWriter::ACTION_UPDATE;
00321     SharedProxyTupleProjection pUpdateProj = streamDef.getUpdateProj();
00322     CmdInterpreter::readTupleProjection(
00323         params.updateProj,
00324         pUpdateProj);
00325     readTableWriterStreamParams(params, streamDef);
00326     embryo.init(new FtrsTableWriterExecStream(), params);
00327 }

void ExecStreamFactory::visit ( ProxySortedAggStreamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 329 of file ExecStreamFactory.cpp.

References embryo, ExecStreamEmbryo::init(), and readAggStreamParams().

00330 {
00331     SortedAggExecStreamParams params;
00332     readAggStreamParams(params, streamDef);
00333     embryo.init(new SortedAggExecStream(), params);
00334 }

void ExecStreamFactory::visit ( ProxySortingStreamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 504 of file ExecStreamFactory.cpp.

References createPrivateScratchSegment(), ExternalSortExecStreamParams::descendingKeyColumns, ExternalSortExecStreamParams::distinctness, DUP_ALLOW, ExternalSortExecStreamParams::earlyClose, embryo, ExternalSortExecStreamParams::estimatedNumRows, getDatabase(), ProxySortingStreamDef::getDescendingProj(), ProxySortingStreamDef::getDistinctness(), ProxySortingStreamDef::getEstimatedNumRows(), ProxyKeyAccessorDef::getKeyProj(), implementSortWithBTree(), ExecStreamEmbryo::init(), ProxySortingStreamDef::isEarlyClose(), ExternalSortExecStreamParams::keyProj, ExternalSortExecStream::newExternalSortExecStream(), pDatabase, ExternalSortExecStreamParams::pTempSegment, CmdInterpreter::readTupleProjection(), readTupleStreamParams(), and ExternalSortExecStreamParams::storeFinalRun.

00505 {
00506     if (streamDef.getDistinctness() != DUP_ALLOW) {
00507         // can't handle it; fall back to BTree-based sort
00508         implementSortWithBTree(streamDef);
00509         return;
00510     }
00511 
00512     SharedDatabase pDatabase = getDatabase();
00513 
00514     ExternalSortExecStreamParams params;
00515 
00516     readTupleStreamParams(params, streamDef);
00517 
00518     // ExternalSortStream requires a private ScratchSegment.
00519     createPrivateScratchSegment(params);
00520 
00521     params.distinctness = streamDef.getDistinctness();
00522     params.pTempSegment = pDatabase->getTempSegment();
00523     params.storeFinalRun = false;
00524     params.estimatedNumRows = streamDef.getEstimatedNumRows();
00525     params.earlyClose = streamDef.isEarlyClose();
00526     CmdInterpreter::readTupleProjection(
00527         params.keyProj,
00528         streamDef.getKeyProj());
00529     params.descendingKeyColumns.resize(params.keyProj.size(), false);
00530     if (streamDef.getDescendingProj()) {
00531         TupleProjection descendingProj;
00532         CmdInterpreter::readTupleProjection(
00533             descendingProj,
00534             streamDef.getDescendingProj());
00535         for (uint i = 0; i < descendingProj.size(); ++i) {
00536             params.descendingKeyColumns[descendingProj[i]] = true;
00537         }
00538     }
00539     embryo.init(
00540         ExternalSortExecStream::newExternalSortExecStream(),
00541         params);
00542 }

void ExecStreamFactory::visit ( ProxySplitterStreamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 357 of file ExecStreamFactory.cpp.

References embryo, ExecStreamEmbryo::init(), readExecStreamParams(), and readTupleDescriptor().

00358 {
00359     SplitterExecStreamParams params;
00360     readExecStreamParams(params, streamDef);
00361     readTupleDescriptor(params.outputTupleDesc, streamDef.getOutputDesc());
00362     embryo.init(new SplitterExecStream(), params);
00363 }

void ExecStreamFactory::visit ( ProxyValuesStreamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 366 of file ExecStreamFactory.cpp.

References ValuesExecStreamParams::bufSize, JniUtil::classRhBase64, embryo, FixedBuffer, ExecStreamEmbryo::init(), JniProxy::jObject, ProxyValuesStreamDef::meth_getTupleBytesBase64, JniUtil::methBase64Decode, JniProxy::pEnv, ValuesExecStreamParams::pTupleBuffer, and readTupleStreamParams().

00367 {
00368     ValuesExecStreamParams params;
00369     readTupleStreamParams(params, streamDef);
00370 
00371     // Get the Java String object so that we can pass it to the decoder.
00372     jobject tupleBytesBase64 = streamDef.pEnv->CallObjectMethod(
00373         streamDef.jObject, ProxyValuesStreamDef::meth_getTupleBytesBase64);
00374 
00375     // Call back into Java again to perform the decode.
00376     jbyteArray jbytes = (jbyteArray) streamDef.pEnv->CallStaticObjectMethod(
00377         JniUtil::classRhBase64,
00378         JniUtil::methBase64Decode,
00379         tupleBytesBase64);
00380 
00381     // Copy the bytes from Java to our tuple buffer.
00382     params.bufSize = streamDef.pEnv->GetArrayLength(jbytes);
00383     params.pTupleBuffer.reset(new FixedBuffer[params.bufSize]);
00384     streamDef.pEnv->GetByteArrayRegion(
00385         jbytes, 0, params.bufSize,
00386         reinterpret_cast<jbyte *>(params.pTupleBuffer.get()));
00387 
00388     embryo.init(new ValuesExecStream(), params);
00389 }

void ExecStreamFactory::visit ( ProxyReshapeStreamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 391 of file ExecStreamFactory.cpp.

References JniUtil::classRhBase64, COMP_NOOP, ReshapeExecStreamParams::compOp, ReshapeExecStreamParams::dynamicParameters, embryo, FixedBuffer, ProxyReshapeStreamDef::getCompareOp(), ProxyReshapeStreamDef::getInputCompareProjection(), ProxyReshapeStreamDef::getOutputProjection(), ProxyReshapeStreamDef::getReshapeParameter(), ExecStreamEmbryo::init(), ReshapeExecStreamParams::inputCompareProj, JniProxy::jObject, MAXU, ProxyReshapeStreamDef::meth_getTupleCompareBytesBase64, JniUtil::methBase64Decode, ReshapeExecStreamParams::outputProj, ReshapeExecStreamParams::pCompTupleBuffer, JniProxy::pEnv, CmdInterpreter::readTupleProjection(), and readTupleStreamParams().

00392 {
00393     ReshapeExecStreamParams params;
00394     readTupleStreamParams(params, streamDef);
00395 
00396     params.compOp = streamDef.getCompareOp();
00397     if (params.compOp != COMP_NOOP) {
00398         // Get the Java String object so that we can pass it to the decoder.
00399         jobject tupleBytesBase64 = streamDef.pEnv->CallObjectMethod(
00400             streamDef.jObject,
00401             ProxyReshapeStreamDef::meth_getTupleCompareBytesBase64);
00402 
00403         // Call back into Java again to perform the decode.
00404         jbyteArray jbytes = (jbyteArray) streamDef.pEnv->CallStaticObjectMethod(
00405             JniUtil::classRhBase64,
00406             JniUtil::methBase64Decode,
00407             tupleBytesBase64);
00408 
00409         // Copy the bytes from Java to our tuple buffer.
00410         int bufSize = streamDef.pEnv->GetArrayLength(jbytes);
00411         params.pCompTupleBuffer.reset(new FixedBuffer[bufSize]);
00412         streamDef.pEnv->GetByteArrayRegion(
00413             jbytes, 0, bufSize,
00414             reinterpret_cast<jbyte *>(params.pCompTupleBuffer.get()));
00415 
00416         CmdInterpreter::readTupleProjection(
00417             params.inputCompareProj, streamDef.getInputCompareProjection());
00418     }
00419 
00420     CmdInterpreter::readTupleProjection(
00421         params.outputProj, streamDef.getOutputProjection());
00422 
00423     SharedProxyReshapeParameter dynamicParam = streamDef.getReshapeParameter();
00424     for (; dynamicParam; ++dynamicParam) {
00425         int offset = dynamicParam->getCompareOffset();
00426         ReshapeParameter reshapeParam(
00427             DynamicParamId(dynamicParam->getDynamicParamId()),
00428             (offset < 0) ? MAXU : uint(offset),
00429             dynamicParam->isOutputParam());
00430         params.dynamicParameters.push_back(reshapeParam);
00431     }
00432 
00433     embryo.init(new ReshapeExecStream(), params);
00434 }

void ExecStreamFactory::visit ( ProxyNestedLoopJoinStreamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 436 of file ExecStreamFactory.cpp.

References embryo, ProxyNestedLoopJoinStreamDef::getLeftJoinKey(), ExecStreamEmbryo::init(), ProxyCartesianProductStreamDef::isLeftOuter(), NestedLoopJoinExecStreamParams::leftJoinKeys, CartesianJoinExecStreamParams::leftOuter, and readTupleStreamParams().

00437 {
00438     NestedLoopJoinExecStreamParams params;
00439     readTupleStreamParams(params, streamDef);
00440     params.leftOuter = streamDef.isLeftOuter();
00441 
00442     SharedProxyCorrelation dynamicParam = streamDef.getLeftJoinKey();
00443     for (; dynamicParam; ++dynamicParam) {
00444         NestedLoopJoinKey joinKey(
00445             DynamicParamId(dynamicParam->getId()),
00446             dynamicParam->getOffset());
00447         params.leftJoinKeys.push_back(joinKey);
00448     }
00449 
00450     embryo.init(new NestedLoopJoinExecStream(), params);
00451 }

void ExecStreamFactory::visit ( ProxyBernoulliSamplingStreamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 453 of file ExecStreamFactory.cpp.

References embryo, ProxyBernoulliSamplingStreamDef::getRepeatableSeed(), ProxyBernoulliSamplingStreamDef::getSamplingRate(), ExecStreamEmbryo::init(), ProxyBernoulliSamplingStreamDef::isRepeatable(), BernoulliSamplingExecStreamParams::isRepeatable, readTupleStreamParams(), BernoulliSamplingExecStreamParams::repeatableSeed, and BernoulliSamplingExecStreamParams::samplingRate.

00454 {
00455     BernoulliSamplingExecStreamParams params;
00456     readTupleStreamParams(params, streamDef);
00457 
00458     params.samplingRate = streamDef.getSamplingRate();
00459     params.isRepeatable = streamDef.isRepeatable();
00460     params.repeatableSeed = streamDef.getRepeatableSeed();
00461 
00462     embryo.init(new BernoulliSamplingExecStream(), params);
00463 }

void ExecStreamFactory::visit ( ProxyCalcTupleStreamDef streamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 465 of file ExecStreamFactory.cpp.

References embryo, ProxyCalcTupleStreamDef::getProgram(), ExecStreamEmbryo::init(), ProxyCalcTupleStreamDef::isFilter(), CalcExecStreamParams::isFilter, CalcExecStreamParams::program, and readTupleStreamParams().

00466 {
00467     CalcExecStreamParams params;
00468     readTupleStreamParams(params, streamDef);
00469     params.program = streamDef.getProgram();
00470     params.isFilter = streamDef.isFilter();
00471     embryo.init(
00472         new CalcExecStream(),
00473         params);
00474 }

void ExecStreamFactory::visit ( ProxyCorrelationJoinStreamDef streamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 476 of file ExecStreamFactory.cpp.

References CorrelationJoinExecStreamParams::correlations, embryo, ProxyCorrelationJoinStreamDef::getCorrelations(), ExecStreamEmbryo::init(), and readTupleStreamParams().

00477 {
00478     CorrelationJoinExecStreamParams params;
00479     readTupleStreamParams(params, streamDef);
00480     SharedProxyCorrelation pCorrelation = streamDef.getCorrelations();
00481     for (; pCorrelation; ++pCorrelation) {
00482         Correlation correlation(
00483             DynamicParamId(pCorrelation->getId()),
00484             pCorrelation->getOffset());
00485         params.correlations.push_back(correlation);
00486     }
00487     embryo.init(new CorrelationJoinExecStream(), params);
00488 }

void ExecStreamFactory::visit ( ProxyCollectTupleStreamDef streamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 490 of file ExecStreamFactory.cpp.

References embryo, ExecStreamEmbryo::init(), and readTupleStreamParams().

00491 {
00492     CollectExecStreamParams params;
00493     readTupleStreamParams(params, streamDef);
00494     embryo.init(new CollectExecStream(), params);
00495 }

void ExecStreamFactory::visit ( ProxyUncollectTupleStreamDef streamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 497 of file ExecStreamFactory.cpp.

References embryo, ExecStreamEmbryo::init(), and readTupleStreamParams().

00498 {
00499     UncollectExecStreamParams params;
00500     readTupleStreamParams(params, streamDef);
00501     embryo.init(new UncollectExecStream(), params);
00502 }

void ExecStreamFactory::visit ( ProxyFlatFileTupleStreamDef streamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 553 of file ExecStreamFactory.cpp.

References FlatFileExecStreamParams::calcProgram, FlatFileExecStreamParams::columnNames, FlatFileExecStreamParams::dataFilePath, embryo, FlatFileExecStreamParams::errorFilePath, FlatFileExecStreamParams::escapeChar, FlatFileExecStreamParams::fieldDelim, FLATFILE_MODE_DESCRIBE, FLATFILE_MODE_QUERY_TEXT, FLATFILE_MODE_SAMPLE, ProxyFlatFileTupleStreamDef::getCalcProgram(), ProxyFlatFileTupleStreamDef::getDataFilePath(), ProxyFlatFileTupleStreamDef::getErrorFilePath(), ProxyFlatFileTupleStreamDef::getEscapeCharacter(), ProxyFlatFileTupleStreamDef::getFieldDelimiter(), ProxyFlatFileTupleStreamDef::getNumRowsScan(), ProxyFlatFileTupleStreamDef::getQuoteCharacter(), ProxyFlatFileTupleStreamDef::getRowDelimiter(), FlatFileExecStreamParams::header, ExecStreamEmbryo::init(), ProxyFlatFileTupleStreamDef::isHasHeader(), ProxyFlatFileTupleStreamDef::isLenient(), ProxyFlatFileTupleStreamDef::isMapped(), ProxyFlatFileTupleStreamDef::isTrim(), FlatFileExecStreamParams::lenient, FlatFileExecStreamParams::mapped, FlatFileExecStreamParams::mode, FlatFileExecStream::newFlatFileExecStream(), FlatFileExecStreamParams::numRowsScan, FlatFileExecStreamParams::quoteChar, readCharParam(), readColumnList(), readTupleStreamParams(), FlatFileExecStreamParams::rowDelim, and FlatFileExecStreamParams::trim.

00554 {
00555     FlatFileExecStreamParams params;
00556     readTupleStreamParams(params, streamDef);
00557 
00558     assert(streamDef.getDataFilePath().size() > 0);
00559     params.dataFilePath = streamDef.getDataFilePath();
00560     params.errorFilePath = streamDef.getErrorFilePath();
00561     params.fieldDelim = readCharParam(streamDef.getFieldDelimiter());
00562     params.rowDelim = readCharParam(streamDef.getRowDelimiter());
00563     params.quoteChar = readCharParam(streamDef.getQuoteCharacter());
00564     params.escapeChar = readCharParam(streamDef.getEscapeCharacter());
00565     params.header = streamDef.isHasHeader();
00566     params.lenient = streamDef.isLenient();
00567     params.trim = streamDef.isTrim();
00568     params.mapped = streamDef.isMapped();
00569     readColumnList(streamDef, params.columnNames);
00570 
00571     params.numRowsScan = streamDef.getNumRowsScan();
00572     params.calcProgram = streamDef.getCalcProgram();
00573     if (params.numRowsScan > 0 && params.calcProgram.size() > 0) {
00574         params.mode = FLATFILE_MODE_SAMPLE;
00575     } else if (params.numRowsScan > 0) {
00576         params.mode = FLATFILE_MODE_DESCRIBE;
00577     } else if (params.numRowsScan == 0 && params.calcProgram.size() == 0) {
00578         params.mode = FLATFILE_MODE_QUERY_TEXT;
00579     }
00580     embryo.init(FlatFileExecStream::newFlatFileExecStream(), params);
00581 }

void ExecStreamFactory::visit ( ProxyLhxJoinStreamDef streamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 583 of file ExecStreamFactory.cpp.

References LhxJoinExecStreamParams::cndKeys, createPrivateScratchSegment(), embryo, LhxJoinExecStreamParams::enableJoinFilter, LhxJoinExecStreamParams::enableSubPartStat, LhxJoinExecStreamParams::enableSwing, LhxJoinExecStreamParams::filterNullKeyProj, LhxJoinExecStreamParams::forcePartitionLevel, ProxyLhxJoinStreamDef::getCndBuildKeys(), getDatabase(), ProxyLhxJoinStreamDef::getFilterNullProj(), ProxyLhxJoinStreamDef::getLeftKeyProj(), ProxyLhxJoinStreamDef::getNumBuildRows(), ProxyLhxJoinStreamDef::getRightKeyProj(), ExecStreamEmbryo::init(), ProxyLhxJoinStreamDef::isLeftInner(), ProxyLhxJoinStreamDef::isLeftOuter(), ProxyLhxJoinStreamDef::isRightInner(), ProxyLhxJoinStreamDef::isRightOuter(), ProxyLhxJoinStreamDef::isSetopAll(), ProxyLhxJoinStreamDef::isSetopDistinct(), LhxJoinExecStreamParams::leftInner, LhxJoinExecStreamParams::leftKeyProj, LhxJoinExecStreamParams::leftOuter, LhxJoinExecStreamParams::numRows, pDatabase, LhxJoinExecStreamParams::pTempSegment, CmdInterpreter::readTupleProjection(), readTupleStreamParams(), LhxJoinExecStreamParams::rightInner, LhxJoinExecStreamParams::rightKeyProj, LhxJoinExecStreamParams::rightOuter, LhxJoinExecStreamParams::setopAll, and LhxJoinExecStreamParams::setopDistinct.

00584 {
00585     TupleProjection tmpProj;
00586 
00587     LhxJoinExecStreamParams params;
00588     readTupleStreamParams(params, streamDef);
00589 
00590     /*
00591      * LhxJoinExecStream requires a private ScratchSegment.
00592      */
00593     createPrivateScratchSegment(params);
00594 
00595     /*
00596      * External segment to store partitions.
00597      */
00598     SharedDatabase pDatabase = getDatabase();
00599     params.pTempSegment = pDatabase->getTempSegment();
00600 
00601     /*
00602      * These fields are currently not used by the optimizer. We know that
00603      * optimizer only supports inner equi hash join.
00604      */
00605     params.leftInner     = streamDef.isLeftInner();
00606     params.leftOuter     = streamDef.isLeftOuter();
00607     params.rightInner    = streamDef.isRightInner();
00608     params.rightOuter    = streamDef.isRightOuter();
00609     params.setopDistinct = streamDef.isSetopDistinct();
00610     params.setopAll      = streamDef.isSetopAll();
00611 
00612     /*
00613      * Set forcePartitionLevel to 0 to turn off force partitioning.
00614      */
00615     params.forcePartitionLevel = 0;
00616     params.enableJoinFilter    = true;
00617     params.enableSubPartStat   = true;
00618     params.enableSwing         = true;
00619 
00620     CmdInterpreter::readTupleProjection(
00621         params.leftKeyProj, streamDef.getLeftKeyProj());
00622 
00623     CmdInterpreter::readTupleProjection(
00624         params.rightKeyProj, streamDef.getRightKeyProj());
00625 
00626     CmdInterpreter::readTupleProjection(
00627         params.filterNullKeyProj, streamDef.getFilterNullProj());
00628 
00629     /*
00630      * The optimizer currently estimates these two values.
00631      */
00632     params.cndKeys = streamDef.getCndBuildKeys();
00633     params.numRows = streamDef.getNumBuildRows();
00634 
00635     embryo.init(new LhxJoinExecStream(), params);
00636 }

void ExecStreamFactory::visit ( ProxyLhxAggStreamDef streamDef  )  [protected, virtual]

Reimplemented from FemVisitor.

Definition at line 638 of file ExecStreamFactory.cpp.

References LhxAggExecStreamParams::cndGroupByKeys, createPrivateScratchSegment(), embryo, LhxAggExecStreamParams::enableSubPartStat, LhxAggExecStreamParams::forcePartitionLevel, ProxyLhxAggStreamDef::getCndGroupByKeys(), getDatabase(), ProxyLhxAggStreamDef::getNumRows(), ExecStreamEmbryo::init(), LhxAggExecStreamParams::numRows, pDatabase, LhxAggExecStreamParams::pTempSegment, and readAggStreamParams().

00639 {
00640     LhxAggExecStreamParams params;
00641     readAggStreamParams(params, streamDef);
00642 
00643     /*
00644      * LhxAggExecStream requires a private ScratchSegment.
00645      */
00646     createPrivateScratchSegment(params);
00647 
00648     /*
00649      * External segment to store partitions.
00650      */
00651     SharedDatabase pDatabase = getDatabase();
00652     params.pTempSegment = pDatabase->getTempSegment();
00653 
00654     /*
00655      * The optimizer currently estimates these two values.
00656      */
00657     params.cndGroupByKeys = streamDef.getCndGroupByKeys();
00658     params.numRows = streamDef.getNumRows();
00659 
00660     /*
00661      * Set forcePartitionLevel to 0 to turn off force partitioning.
00662      */
00663     params.forcePartitionLevel = 0;
00664 
00665     /*
00666      * NOTE:
00667      * Hash aggregation partitions partially aggregated results to disk.
00668      * The stat currently keeps track of the tuple count before
00669      * aggregation, so it is not very accurate. Disable sub partition stats
00670      * for now.
00671      */
00672     params.enableSubPartStat = false;
00673 
00674     embryo.init(new LhxAggExecStream(), params);
00675 }

void ExecStreamFactory::readBTreeReadStreamParams ( BTreeReadExecStreamParams ,
ProxyIndexScanDef  
) [protected]

Definition at line 834 of file ExecStreamFactory.cpp.

References ProxyIndexScanDef::getOutputProj(), BTreeReadExecStreamParams::outputProj, readBTreeStreamParams(), CmdInterpreter::readTupleProjection(), and readTupleStreamParams().

Referenced by readBTreeSearchStreamParams(), and visit().

00837 {
00838     readTupleStreamParams(params, streamDef);
00839     readBTreeStreamParams(params, streamDef);
00840     CmdInterpreter::readTupleProjection(
00841         params.outputProj,
00842         streamDef.getOutputProj());
00843 }

void ExecStreamFactory::readIndexWriterParams ( FtrsTableIndexWriterParams ,
ProxyIndexWriterDef  
) [protected]

Definition at line 845 of file ExecStreamFactory.cpp.

References BTreeInsertExecStreamParams::distinctness, ProxyIndexWriterDef::getDistinctness(), ProxyIndexWriterDef::isUpdateInPlace(), readBTreeStreamParams(), and FtrsTableIndexWriterParams::updateInPlace.

Referenced by readTableWriterStreamParams().

00848 {
00849     readBTreeStreamParams(params, indexWriterDef);
00850     params.distinctness = indexWriterDef.getDistinctness();
00851     params.updateInPlace = indexWriterDef.isUpdateInPlace();
00852 }

void ExecStreamFactory::readTableWriterStreamParams ( FtrsTableWriterExecStreamParams ,
ProxyTableWriterDef  
) [protected]

Definition at line 737 of file ExecStreamFactory.cpp.

References ANON_PAGE_OWNER_ID, ProxyTableWriterDef::getIndexWriter(), FtrsTableWriterParams::indexParams, FtrsTableWriterExecStreamParams::pActionMutex, pDatabase, pTableWriterFactory, FtrsTableWriterExecStreamParams::pTableWriterFactory, readIndexWriterParams(), CmdInterpreter::readTupleProjection(), readTupleStreamParams(), and FtrsTableWriterParams::tableId.

Referenced by visit().

00740 {
00741     readTupleStreamParams(params, streamDef);
00742     params.pTableWriterFactory = pTableWriterFactory;
00743     params.tableId = ANON_PAGE_OWNER_ID;
00744     params.pActionMutex = &(pDatabase->getCheckpointThread()->getActionMutex());
00745 
00746     SharedProxyIndexWriterDef pIndexWriterDef = streamDef.getIndexWriter();
00747     for (; pIndexWriterDef; ++pIndexWriterDef) {
00748         FtrsTableIndexWriterParams indexParams;
00749         // all index writers share some common attributes
00750         indexParams.pCacheAccessor = params.pCacheAccessor;
00751         indexParams.scratchAccessor = params.scratchAccessor;
00752         readIndexWriterParams(indexParams, *pIndexWriterDef);
00753         SharedProxyTupleProjection pInputProj =
00754             pIndexWriterDef->getInputProj();
00755         if (pInputProj) {
00756             CmdInterpreter::readTupleProjection(
00757                 indexParams.inputProj,
00758                 pInputProj);
00759         } else {
00760             // this is the clustered index; use it as a table ID
00761             params.tableId = indexParams.pageOwnerId;
00762         }
00763         params.indexParams.push_back(indexParams);
00764     }
00765     assert(params.tableId != ANON_PAGE_OWNER_ID);
00766 }

void ExecStreamFactory::readBarrierDynamicParams ( BarrierExecStreamParams ,
ProxyBarrierStreamDef  
) [protected]

Definition at line 151 of file ExecStreamFactory.cpp.

References ProxyBarrierStreamDef::getDynamicParameter(), and BarrierExecStreamParams::parameterIds.

Referenced by visit().

00154 {
00155     SharedProxyDynamicParameter dynamicParam = streamDef.getDynamicParameter();
00156     for (; dynamicParam; ++dynamicParam) {
00157         DynamicParamId p = (DynamicParamId) dynamicParam->getParameterId();
00158         params.parameterIds.push_back(p);
00159     }
00160 }

void ExecStreamFactory::readColumnList ( ProxyFlatFileTupleStreamDef streamDef,
std::vector< std::string > &  names 
) [protected]

Definition at line 677 of file ExecStreamFactory.cpp.

References ProxyFlatFileTupleStreamDef::getColumn().

Referenced by visit().

00680 {
00681     SharedProxyColumnName pColumnName = streamDef.getColumn();
00682 
00683     for (; pColumnName; ++pColumnName) {
00684         names.push_back(pColumnName->getName());
00685     }
00686 }

void ExecStreamFactory::implementSortWithBTree ( ProxySortingStreamDef streamDef  )  [protected]

Definition at line 336 of file ExecStreamFactory.cpp.

References ANON_PAGE_OWNER_ID, embryo, ProxySortingStreamDef::getDistinctness(), ProxyKeyAccessorDef::getKeyProj(), ExecStreamEmbryo::init(), NULL_PAGE_ID, pDatabase, CmdInterpreter::readTupleProjection(), readTupleStreamParams(), and Database::TEMP_SEGMENT_ID.

Referenced by visit().

00337 {
00338     BTreeSortExecStreamParams params;
00339     readTupleStreamParams(params,streamDef);
00340     params.distinctness = streamDef.getDistinctness();
00341     params.monotonic = false;
00342     params.pSegment = pDatabase->getTempSegment();
00343     params.rootPageId = NULL_PAGE_ID;
00344     params.segmentId = Database::TEMP_SEGMENT_ID;
00345     params.pageOwnerId = ANON_PAGE_OWNER_ID;
00346     params.pRootMap = NULL;
00347     params.rootPageIdParamId = DynamicParamId(0);
00348     CmdInterpreter::readTupleProjection(
00349         params.keyProj,
00350         streamDef.getKeyProj());
00351     // TODO jvs 3-Dec-2006:  pass along streamDef.getDescendingProj() once
00352     // btree can deal with it
00353     params.tupleDesc = params.outputTupleDesc;
00354     embryo.init(new BTreeSortExecStream(), params);
00355 }

char ExecStreamFactory::readCharParam ( const std::string &  val  )  [protected]

Definition at line 544 of file ExecStreamFactory.cpp.

Referenced by visit().

00545 {
00546     assert(val.size() <= 1);
00547     if (val.size() == 0) {
00548         return 0;
00549     }
00550     return val.at(0);
00551 }

void ExecStreamFactory::setGraphEmbryo ( ExecStreamGraphEmbryo graphEmbryo  ) 

Definition at line 84 of file ExecStreamFactory.cpp.

References pGraphEmbryo.

00086 {
00087     pGraphEmbryo = &graphEmbryo;
00088 }

void ExecStreamFactory::setScratchAccessor ( SegmentAccessor scratchAccessor  ) 

Definition at line 90 of file ExecStreamFactory.cpp.

References scratchAccessor.

Referenced by ExecStreamBuilder::buildStreamGraph().

00092 {
00093     scratchAccessor = scratchAccessorInit;
00094 }

void ExecStreamFactory::addSubFactory ( SharedExecStreamSubFactory  pSubFactory  ) 

Definition at line 96 of file ExecStreamFactory.cpp.

References subFactories.

00098 {
00099     subFactories.push_back(pSubFactory);
00100 }

SharedDatabase ExecStreamFactory::getDatabase (  ) 

Definition at line 79 of file ExecStreamFactory.cpp.

References pDatabase.

Referenced by ExecStreamBuilder::buildStreamGraph(), and visit().

00080 {
00081     return pDatabase;
00082 }

ExecStreamEmbryo const & ExecStreamFactory::visitStream ( ProxyExecutionStreamDef  )  [virtual]

Reads the Java representation of an ExecStream.

Definition at line 102 of file ExecStreamFactory.cpp.

References embryo, ProxyExecutionStreamDef::getName(), ExecStreamEmbryo::getStream(), invokeVisit(), and subFactories.

Referenced by ExecStreamBuilder::buildStream().

00104 {
00105     bool created = false;
00106 
00107     // first give sub-factories a shot
00108     std::vector<SharedExecStreamSubFactory>::iterator ppSubFactory;
00109     for (ppSubFactory = subFactories.begin();
00110          ppSubFactory != subFactories.end(); ++ppSubFactory)
00111     {
00112         ExecStreamSubFactory &subFactory = **ppSubFactory;
00113         created = subFactory.createStream(
00114             *this,
00115             streamDef,
00116             embryo);
00117         if (created) {
00118             break;
00119         }
00120     }
00121 
00122     if (!created) {
00123         // dispatch based on polymorphic stream type
00124         invokeVisit(streamDef);
00125     }
00126     embryo.getStream()->setName(streamDef.getName());
00127     return embryo;
00128 }

void ExecStreamFactory::readTupleDescriptor ( TupleDescriptor desc,
const SharedProxyTupleDescriptor  def 
)

makes a TupleDescriptor from its proxy definition

Definition at line 695 of file ExecStreamFactory.cpp.

References pDatabase, and CmdInterpreter::readTupleDescriptor().

Referenced by readBTreeParams(), ExecStreamSubFactory_lu::readClusterScan(), readTupleStreamParams(), ExecStreamSubFactory_lu::visit(), and visit().

00698 {
00699     assert(def);
00700     CmdInterpreter::readTupleDescriptor(
00701         desc, *def, pDatabase->getTypeFactory());
00702 }

void ExecStreamFactory::createPrivateScratchSegment ( ExecStreamParams params  ) 

Creates a private scratch segment for an ExecStream.

This must be used if the ExecStream provides early release of its scratch buffers (otherwise it will release scratch buffers for the entire graph, leading to quite bad things). This method must be called AFTER one of the standard readXyzStreamParams methods below, since those methods set up the default global scratch segment.

Parameters:
params params in which to set the private scratch segment

Definition at line 712 of file ExecStreamFactory.cpp.

References SegmentAccessor::pCacheAccessor, ExecStreamParams::pCacheAccessor, pDatabase, and ExecStreamParams::scratchAccessor.

Referenced by initBTreePrefetchSearchParams(), ExecStreamSubFactory_lu::readClusterAppendParams(), ExecStreamSubFactory_lu::visit(), and visit().

00713 {
00714     // Make sure global scratch segment was already set up.
00715     assert(params.pCacheAccessor);
00716 
00717     params.scratchAccessor =
00718         pDatabase->getSegmentFactory()->newScratchSegment(
00719             pDatabase->getCache());
00720     SharedQuotaCacheAccessor pSuperQuotaAccessor =
00721         boost::dynamic_pointer_cast<QuotaCacheAccessor>(
00722             params.pCacheAccessor);
00723     params.scratchAccessor.pCacheAccessor.reset(
00724         new QuotaCacheAccessor(
00725             pSuperQuotaAccessor,
00726             params.scratchAccessor.pCacheAccessor,
00727             UINT_MAX));
00728 }

void ExecStreamFactory::createQuotaAccessors ( ExecStreamParams params  ) 

Definition at line 730 of file ExecStreamFactory.cpp.

References ExecStreamGraphEmbryo::initStreamParams(), and pGraphEmbryo.

Referenced by readExecStreamParams().

00732 {
00733     assert(pGraphEmbryo);
00734     pGraphEmbryo->initStreamParams(params);
00735 }

void ExecStreamFactory::readExecStreamParams ( ExecStreamParams ,
ProxyExecutionStreamDef  
)

Definition at line 688 of file ExecStreamFactory.cpp.

References createQuotaAccessors().

Referenced by readTupleStreamParams(), ExecStreamSubFactory_lu::visit(), and visit().

00691 {
00692     createQuotaAccessors(params);
00693 }

void ExecStreamFactory::readTupleStreamParams ( SingleOutputExecStreamParams ,
ProxyTupleStreamDef  
)

Definition at line 704 of file ExecStreamFactory.cpp.

References SingleOutputExecStreamParams::outputTupleDesc, readExecStreamParams(), and readTupleDescriptor().

Referenced by implementSortWithBTree(), readAggStreamParams(), readBTreeReadStreamParams(), ExecStreamSubFactory_lu::readClusterAppendParams(), readTableWriterStreamParams(), ExecStreamSubFactory_lu::visit(), and visit().

00707 {
00708     readExecStreamParams(params,streamDef);
00709     readTupleDescriptor(params.outputTupleDesc, streamDef.getOutputDesc());
00710 }

void ExecStreamFactory::initBTreePrefetchSearchParams ( BTreePrefetchSearchExecStreamParams ,
ProxyIndexSearchDef  
)

Definition at line 249 of file ExecStreamFactory.cpp.

References createPrivateScratchSegment(), and readBTreeSearchStreamParams().

Referenced by ExecStreamSubFactory_lu::visit(), and visit().

00252 {
00253     readBTreeSearchStreamParams(params, streamDef);
00254     // Need a private scratch segment because scratch pages are
00255     // deallocated when the stream is closed.
00256     createPrivateScratchSegment(params);
00257 }

void ExecStreamFactory::readBTreeStreamParams ( BTreeExecStreamParams ,
ProxyIndexAccessorDef  
)

Definition at line 768 of file ExecStreamFactory.cpp.

References ExecStreamParams::pCacheAccessor, and readBTreeParams().

Referenced by readBTreeReadStreamParams(), ExecStreamSubFactory_lu::readClusterAppendParams(), ExecStreamSubFactory_lu::readClusterScan(), readIndexWriterParams(), ExecStreamSubFactory_lu::visit(), and visit().

00771 {
00772     assert(params.pCacheAccessor);
00773     readBTreeParams(params, streamDef);
00774 }

void ExecStreamFactory::readBTreeParams ( BTreeParams ,
ProxyIndexAccessorDef  
)

Definition at line 776 of file ExecStreamFactory.cpp.

References ANON_PAGE_OWNER_ID, ProxyIndexAccessorDef::getIndexId(), ProxyKeyAccessorDef::getKeyProj(), ProxyIndexAccessorDef::getRootPageId(), ProxyIndexAccessorDef::getRootPageIdParamId(), ProxyIndexAccessorDef::getSegmentId(), ProxyIndexAccessorDef::getTupleDesc(), ProxyIndexAccessorDef::isReadOnlyCommittedData(), BTreeParams::keyProj, NULL_PAGE_ID, BTreeParams::pageOwnerId, pDatabase, CmdInterpreter::StreamGraphHandle::pReadCommittedSegment, BTreeParams::pRootMap, CmdInterpreter::StreamGraphHandle::pSegment, BTreeParams::pSegment, pStreamGraphHandle, readDynamicParamId(), readTupleDescriptor(), CmdInterpreter::readTupleProjection(), BTreeParams::rootPageId, BTreeParams::rootPageIdParamId, BTreeParams::segmentId, Database::TEMP_SEGMENT_ID, and BTreeParams::tupleDesc.

Referenced by readBTreeStreamParams(), and ExecStreamSubFactory_lu::visit().

00779 {
00780     params.rootPageIdParamId =
00781         readDynamicParamId(streamDef.getRootPageIdParamId());
00782     if (params.rootPageIdParamId > DynamicParamId(0) &&
00783         streamDef.getRootPageId() == -1)
00784     {
00785         // In the case where the btree is dynamically created during
00786         // runtime, the btree will be created in the temp segment
00787         params.segmentId = Database::TEMP_SEGMENT_ID;
00788         params.pageOwnerId = ANON_PAGE_OWNER_ID;
00789         params.pSegment = pDatabase->getTempSegment();
00790         params.rootPageId = NULL_PAGE_ID;
00791         params.pRootMap = NULL;
00792     } else {
00793         params.segmentId = SegmentId(streamDef.getSegmentId());
00794         params.pageOwnerId = PageOwnerId(streamDef.getIndexId());
00795         assert(VALID_PAGE_OWNER_ID(params.pageOwnerId));
00796         // Set the btree to read from the appropriate segment, depending
00797         // on whether or not the reader needs to see uncommitted data
00798         // created upstream in the stream graph.
00799         if (streamDef.isReadOnlyCommittedData()) {
00800             params.pSegment =
00801                 pDatabase->getSegmentById(
00802                     params.segmentId,
00803                     pStreamGraphHandle->pReadCommittedSegment);
00804         } else {
00805             params.pSegment =
00806                 pDatabase->getSegmentById(
00807                     params.segmentId,
00808                     pStreamGraphHandle->pSegment);
00809         }
00810         if (streamDef.getRootPageId() != -1) {
00811             params.rootPageId = PageId(streamDef.getRootPageId());
00812             params.pRootMap = NULL;
00813         } else {
00814             params.rootPageId = NULL_PAGE_ID;
00815             if (params.rootPageIdParamId == DynamicParamId(0)) {
00816                 params.pRootMap = pStreamGraphHandle;
00817             }
00818         }
00819     }
00820     readTupleDescriptor(params.tupleDesc, streamDef.getTupleDesc());
00821     CmdInterpreter::readTupleProjection(
00822         params.keyProj,
00823         streamDef.getKeyProj());
00824 
00825 }

void ExecStreamFactory::readBTreeSearchStreamParams ( BTreeSearchExecStreamParams ,
ProxyIndexSearchDef  
)

Definition at line 854 of file ExecStreamFactory.cpp.

References ProxyIndexSearchDef::getInputDirectiveProj(), ProxyIndexSearchDef::getInputJoinProj(), ProxyIndexSearchDef::getInputKeyProj(), ProxyIndexSearchDef::getSearchKeyParameter(), BTreeSearchExecStreamParams::inputDirectiveProj, BTreeSearchExecStreamParams::inputJoinProj, BTreeSearchExecStreamParams::inputKeyProj, ProxyIndexSearchDef::isOuterJoin(), BTreeSearchExecStreamParams::outerJoin, readBTreeReadStreamParams(), CmdInterpreter::readTupleProjection(), and BTreeSearchExecStreamParams::searchKeyParams.

Referenced by initBTreePrefetchSearchParams(), and visit().

00857 {
00858     readBTreeReadStreamParams(params, streamDef);
00859     params.outerJoin = streamDef.isOuterJoin();
00860     if (streamDef.getInputKeyProj()) {
00861         CmdInterpreter::readTupleProjection(
00862             params.inputKeyProj,
00863             streamDef.getInputKeyProj());
00864     }
00865     if (streamDef.getInputJoinProj()) {
00866         CmdInterpreter::readTupleProjection(
00867             params.inputJoinProj,
00868             streamDef.getInputJoinProj());
00869     }
00870     if (streamDef.getInputDirectiveProj()) {
00871         CmdInterpreter::readTupleProjection(
00872             params.inputDirectiveProj,
00873             streamDef.getInputDirectiveProj());
00874     }
00875 
00876     SharedProxyCorrelation dynamicParam = streamDef.getSearchKeyParameter();
00877     for (; dynamicParam; ++dynamicParam) {
00878         BTreeSearchKeyParameter searchKeyParam(
00879             DynamicParamId(dynamicParam->getId()),
00880             dynamicParam->getOffset());
00881         params.searchKeyParams.push_back(searchKeyParam);
00882     }
00883 }

void ExecStreamFactory::readAggStreamParams ( SortedAggExecStreamParams ,
ProxyAggStreamDef  
)

Definition at line 885 of file ExecStreamFactory.cpp.

References SortedAggExecStreamParams::aggInvocations, ProxyAggStreamDef::getAggInvocation(), ProxyAggStreamDef::getGroupingPrefixSize(), SortedAggExecStreamParams::groupByKeyCount, and readTupleStreamParams().

Referenced by ExecStreamSubFactory_lu::visit(), and visit().

00888 {
00889     readTupleStreamParams(params,streamDef);
00890     SharedProxyAggInvocation pAggInvocation = streamDef.getAggInvocation();
00891     for (; pAggInvocation; ++pAggInvocation) {
00892         AggInvocation aggInvocation;
00893         aggInvocation.aggFunction = pAggInvocation->getFunction();
00894         aggInvocation.iInputAttr =
00895             pAggInvocation->getInputAttributeIndex();
00896         params.aggInvocations.push_back(aggInvocation);
00897     }
00898     params.groupByKeyCount = streamDef.getGroupingPrefixSize();
00899 }

DynamicParamId ExecStreamFactory::readDynamicParamId ( const int  val  ) 

Definition at line 827 of file ExecStreamFactory.cpp.

Referenced by ExecStreamSubFactory_lu::readBitOpDynamicParams(), readBTreeParams(), ExecStreamSubFactory_lu::visit(), and visit().

00828 {
00829     // NOTE: zero is a special code for no parameter id
00830     uint (id) = (val < 0) ? 0 : (uint) val;
00831     return (DynamicParamId) id;
00832 }

virtual void FemVisitor::visit ( ProxyAggInvocation  )  [inline, virtual, inherited]

Definition at line 1460 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01461 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyAggStreamDef  )  [inline, virtual, inherited]

Definition at line 1462 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01463 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyBeginTxnCmd  )  [inline, virtual, inherited]

Definition at line 1466 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01467 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmd  )  [inline, virtual, inherited]

Definition at line 1480 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01481 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdAbandonBackup  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1482 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01483 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdAlterSystemDeallocate  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1484 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01485 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdBeginTxn  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1486 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01487 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdBeginTxnWithCsn  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1488 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01489 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdCheckpoint  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1490 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01491 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdCloseDatabase  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1492 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01493 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdCommit  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1494 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01495 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdCompleteBackup  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1496 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01497 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdCreateExecutionStreamGraph  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1498 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01499 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdCreateIndex  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1500 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01501 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdCreateStreamHandle  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1502 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01503 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdDropIndex  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1504 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01505 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdGetLastCommittedTxnId  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1506 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01507 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdGetTxnCsn  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1508 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01509 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdInitiateBackup  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1510 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01511 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdOpenDatabase  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1512 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01513 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdPrepareExecutionStreamGraph  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1514 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01515 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdRestoreFromBackup  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1516 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01517 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdRollback  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1518 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01519 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdSavepoint  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1520 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01521 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdSetParam  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1522 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01523 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdTruncateIndex  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1524 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01525 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdVerifyIndex  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1526 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01527 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCmdVersionIndexRoot  )  [inline, virtual, inherited]

Reimplemented in CmdInterpreter.

Definition at line 1528 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01529 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyColumnName  )  [inline, virtual, inherited]

Definition at line 1532 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01533 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCorrelation  )  [inline, virtual, inherited]

Definition at line 1534 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01535 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCsnHandle  )  [inline, virtual, inherited]

Definition at line 1538 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01539 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyCsnHandleReturningCmd  )  [inline, virtual, inherited]

Definition at line 1540 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01541 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyDatabaseCmd  )  [inline, virtual, inherited]

Definition at line 1542 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01543 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyDatabaseParam  )  [inline, virtual, inherited]

Definition at line 1544 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01545 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyDbHandle  )  [inline, virtual, inherited]

Definition at line 1546 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01547 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyDynamicParamUse  )  [inline, virtual, inherited]

Definition at line 1548 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01549 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyDynamicParameter  )  [inline, virtual, inherited]

Definition at line 1550 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01551 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyEndTxnCmd  )  [inline, virtual, inherited]

Definition at line 1552 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01553 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyExecStreamDataFlow  )  [inline, virtual, inherited]

Definition at line 1554 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01555 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyExecutionStreamDef  )  [inline, virtual, inherited]

Definition at line 1556 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01557 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyGenericStreamDef  )  [inline, virtual, inherited]

Definition at line 1560 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01561 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyHandle  )  [inline, virtual, inherited]

Definition at line 1562 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01563 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyIndexAccessCmd  )  [inline, virtual, inherited]

Definition at line 1564 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01565 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyIndexAccessorDef  )  [inline, virtual, inherited]

Definition at line 1566 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01567 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyIndexCmd  )  [inline, virtual, inherited]

Definition at line 1568 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01569 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyIndexStreamDef  )  [inline, virtual, inherited]

Definition at line 1576 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01577 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyIndexWriterDef  )  [inline, virtual, inherited]

Definition at line 1578 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01579 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyKeyAccessorDef  )  [inline, virtual, inherited]

Definition at line 1584 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01585 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyLbmBitOpStreamDef  )  [inline, virtual, inherited]

Definition at line 1586 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01587 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyLbmChopperStreamDef  )  [inline, virtual, inherited]

Reimplemented in ExecStreamSubFactory_lu.

Definition at line 1588 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01589 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyLbmGeneratorStreamDef  )  [inline, virtual, inherited]

Reimplemented in ExecStreamSubFactory_lu.

Definition at line 1590 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01591 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyLbmIntersectStreamDef  )  [inline, virtual, inherited]

Reimplemented in ExecStreamSubFactory_lu.

Definition at line 1592 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01593 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyLbmMinusStreamDef  )  [inline, virtual, inherited]

Reimplemented in ExecStreamSubFactory_lu.

Definition at line 1594 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01595 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyLbmNormalizerStreamDef  )  [inline, virtual, inherited]

Reimplemented in ExecStreamSubFactory_lu.

Definition at line 1596 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01597 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyLbmSearchStreamDef  )  [inline, virtual, inherited]

Reimplemented in ExecStreamSubFactory_lu.

Definition at line 1598 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01599 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyLbmSortedAggStreamDef  )  [inline, virtual, inherited]

Reimplemented in ExecStreamSubFactory_lu.

Definition at line 1600 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01601 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyLbmSplicerStreamDef  )  [inline, virtual, inherited]

Reimplemented in ExecStreamSubFactory_lu.

Definition at line 1602 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01603 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyLbmUnionStreamDef  )  [inline, virtual, inherited]

Reimplemented in ExecStreamSubFactory_lu.

Definition at line 1604 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01605 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyLcsClusterAppendStreamDef  )  [inline, virtual, inherited]

Reimplemented in ExecStreamSubFactory_lu.

Definition at line 1606 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01607 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyLcsClusterReplaceStreamDef  )  [inline, virtual, inherited]

Reimplemented in ExecStreamSubFactory_lu.

Definition at line 1608 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01609 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyLcsClusterScanDef  )  [inline, virtual, inherited]

Definition at line 1610 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01611 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyLcsRowScanStreamDef  )  [inline, virtual, inherited]

Reimplemented in ExecStreamSubFactory_lu.

Definition at line 1612 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01613 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyMultiUseBufferingStreamDef  )  [inline, virtual, inherited]

Definition at line 1622 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01623 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyReshapeParameter  )  [inline, virtual, inherited]

Definition at line 1626 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01627 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxySplicerIndexAccessorDef  )  [inline, virtual, inherited]

Definition at line 1634 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01635 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyStreamGraphHandle  )  [inline, virtual, inherited]

Definition at line 1638 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01639 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyStreamHandle  )  [inline, virtual, inherited]

Definition at line 1640 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01641 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxySvptHandle  )  [inline, virtual, inherited]

Definition at line 1642 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01643 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyTableWriterDef  )  [inline, virtual, inherited]

Definition at line 1650 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01651 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyTupleAccessor  )  [inline, virtual, inherited]

Definition at line 1652 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01653 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyTupleAttrAccessor  )  [inline, virtual, inherited]

Definition at line 1654 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01655 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyTupleAttrDescriptor  )  [inline, virtual, inherited]

Definition at line 1656 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01657 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyTupleAttrProjection  )  [inline, virtual, inherited]

Definition at line 1658 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01659 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyTupleDescriptor  )  [inline, virtual, inherited]

Definition at line 1660 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01661 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyTupleProjection  )  [inline, virtual, inherited]

Definition at line 1662 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01663 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyTupleStreamDef  )  [inline, virtual, inherited]

Definition at line 1664 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01665 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyTupleStreamGraphCmd  )  [inline, virtual, inherited]

Definition at line 1666 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01667 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyTxnCmd  )  [inline, virtual, inherited]

Definition at line 1668 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01669 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyTxnHandle  )  [inline, virtual, inherited]

Definition at line 1670 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01671 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyWindowDef  )  [inline, virtual, inherited]

Definition at line 1676 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01677 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyWindowPartitionDef  )  [inline, virtual, inherited]

Definition at line 1678 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01679 { unhandledVisit(); }

virtual void FemVisitor::visit ( ProxyWindowStreamDef  )  [inline, virtual, inherited]

Definition at line 1680 of file FemGeneratedClasses.h.

References JniProxyVisitor::unhandledVisit().

01681 { unhandledVisit(); }

void JniProxyVisitor::unhandledVisit (  )  [virtual, inherited]

Handles case when a visitor attempts to visit a proxy whose type's visit method has not been overridden.

Default action is to throw an assertion failure; subclasses may override to ignore or whatever.

Reimplemented in ExecStreamSubFactory_lu.

Definition at line 50 of file JniProxy.cpp.

Referenced by FemVisitor::visit().

00051 {
00052     permAssert(false);
00053 }


Member Data Documentation

SharedDatabase ExecStreamFactory::pDatabase [protected]

Database to be accessed by stream.

Definition at line 65 of file ExecStreamFactory.h.

Referenced by createPrivateScratchSegment(), ExecStreamFactory(), getDatabase(), implementSortWithBTree(), readBTreeParams(), readTableWriterStreamParams(), readTupleDescriptor(), and visit().

SharedFtrsTableWriterFactory ExecStreamFactory::pTableWriterFactory [protected]

Factory for creating TableWriters.

Definition at line 70 of file ExecStreamFactory.h.

Referenced by ExecStreamFactory(), and readTableWriterStreamParams().

CmdInterpreter::StreamGraphHandle* ExecStreamFactory::pStreamGraphHandle [protected]

Handle to the stream graph being built.

Definition at line 75 of file ExecStreamFactory.h.

Referenced by ExecStreamFactory(), readBTreeParams(), and visit().

SegmentAccessor ExecStreamFactory::scratchAccessor [protected]

Accessor for ScratchSegment available to all streams.

Definition at line 80 of file ExecStreamFactory.h.

Referenced by setScratchAccessor().

ExecStreamEmbryo ExecStreamFactory::embryo [protected]

Value set by visit functions.

Definition at line 85 of file ExecStreamFactory.h.

Referenced by implementSortWithBTree(), visit(), and visitStream().

ExecStreamGraphEmbryo* ExecStreamFactory::pGraphEmbryo [protected]

Embryo for graph being built.

Definition at line 90 of file ExecStreamFactory.h.

Referenced by createQuotaAccessors(), ExecStreamFactory(), and setGraphEmbryo().

std::vector<SharedExecStreamSubFactory> ExecStreamFactory::subFactories [protected]

Subfactories for extending factory behavior.

Definition at line 95 of file ExecStreamFactory.h.

Referenced by addSubFactory(), and visitStream().

JniProxyVisitTable< FemVisitor > FemVisitor::visitTbl [static, inherited]

Definition at line 1459 of file FemGeneratedClasses.h.

Referenced by ExecStreamSubFactory_lu::createStream(), CmdInterpreter::executeCommand(), invokeVisit(), and JNI_OnLoad().


The documentation for this class was generated from the following files:
Generated on Mon Jun 22 04:00:30 2009 for Fennel by  doxygen 1.5.1