Fennel: LbmSearchTest Class Reference (original) (raw)

Testcase for scanning a single bitmap index using equality search on all index keys. More...

Inheritance diagram for LbmSearchTest:

List of all members.

Public Member Functions
LbmSearchTest ()
void testCaseSetUp ()
Equivalent to JUnit TestCase.setUp; this is called before each test case method is invoked.
void testCaseTearDown ()
Equivalent to JUnit TestCase.tearDown; this is called after each test case method is invoked.
void testScans (uint nRows)
void testScanOneLevel ()
void testScanTwoLevel ()
void testMultipleRanges ()
virtual void openStorage (DeviceMode openMode)
virtual void openSegmentStorage (DeviceMode openMode)
virtual void openRandomSegment ()
SharedSegment createLinearDeviceSegment (DeviceId deviceId, uint nPages)
void closeLinearSegment ()
void closeRandomSegment ()
void closeVersionedRandomSegment ()
void closeSnapshotRandomSegment ()
virtual void closeStorage ()
Cache & getCache ()
virtual SharedCache newCache ()
SharedRandomAccessDevice openDevice (std::string devName, DeviceMode openMode, uint nDevicePages, DeviceId deviceId)
void closeDevice (DeviceId deviceId, SharedRandomAccessDevice &pDevice)
TestSuite * releaseTestSuite ()
void beforeTestCase (std::string testCaseName)
void afterTestCase (std::string testCaseName)
virtual void notifyTrace (std::string source, TraceLevel level, std::string message)
Receives notification when a trace event occurs.
virtual TraceLevel getSourceTraceLevel (std::string source)
Gets the level at which a particular source should be traced.
Static Public Member Functions
static uint getTupleInterval (std::vector< int > const &repeatSeqValues, uint nKeys=0)
Find the interval for which an entire tuple's sequence repeats.
static void readParams (int argc, char **argv)
Parses the command line.
Static Public Attributes
static ParamName paramTestSuiteName
static ParamName paramTraceFileName
static ParamName paramDictionaryFileName
static ParamName paramTraceLevel
static ParamName paramStatsFileName
static ParamName paramTraceStdout
static ParamName paramDegreeOfParallelism
static ConfigMap configMap
Configuration parameters.
Protected Types
enum VictimPolicy { victimTwoQ, victimLRU, victimRandom }
The available victim policy implementations. More...
Protected Member Functions
void initBTreeExecStreamParam (BTreeExecStreamParams &param, shared_ptr< BTreeDescriptor > pBTreeDesc)
Initializes a BTreeExecStreamParam structure.
void initBTreeParam (BTreeParams &param, shared_ptr< BTreeDescriptor > pBTreeDesc)
Initializes BTreeParams structure.
void initClusterScanDef (LcsRowScanBaseExecStreamParams &generatorParams, struct LcsClusterScanDef &clusterScanDef, uint bTreeIndex)
Initializes a cluster scan def structure for a LcsRowScanBase exec stream.
void initBTreeBitmapDesc (TupleDescriptor &tupleDesc, TupleProjection &keyProj, uint nKeys)
Initializes BTreeExecStreamParam corresponding to a bitmap index.
void initBTreeTupleDesc (TupleDescriptor &tupleDesc, uint nKeys)
Initializes a tuple descriptor corresponding to a bitmap index.
void loadTableAndIndex (uint nRows, uint nClusters, std::vector< int > const &repeatSeqValues, bool newRoot)
Loads a table with nClusters clusters, 1 column per cluster, and nRows rows.
void testScanFullKey (uint nRows, uint nKeys, std::vector< int > const &repeatSeqValues, bool useDynamicKeys, bool includeRid)
Tests equality scan on the table created in loadTableAndIndex, using the entire index key (minus the rid).
void testScanPartialKey (uint nRows, uint nKeys, std::vector< int > const &repeatSeqValues)
Tests equality scan on the table created in loadTableAndIndex, using the all keys except the rid and the last key.
void testScanIdx (uint totalKeys, uint nKeys, uint bufSize, boost::shared_array< FixedBuffer > inputBuffer, uint expectedNBitmaps, PBuffer expectedBitmaps, bool dynamicRootPageId, bool useDynamicKeys, bool includeRid, const boost::scoped_array< uint64_t > &vals)
Performs an index search using the key values/directives passed in.
void initEqualSearch (uint nKeys, uint nInputTuples, boost::scoped_array< uint64_t > &vals, char &lowerDirective, char &upperDirective, TupleAccessor &inputTupleAccessor, TupleData &inputTupleData, boost::shared_array< FixedBuffer > &inputBuffer, bool useDynamicKeys)
Initializes input search key and directives for an equality search.
void setSearchKey (char lowerDirective, char upperDirective, uint64_t lowerVal, uint64_t upperVal, PBuffer inputBuf, uint &offset, TupleAccessor &inputTupleAccessor, TupleData &inputTupleData)
void initBitmapInput (BitmapInput &bmInput, uint nRows, InputData const &inputData)
void initBitmapInput (BitmapInput &bmInput, uint nRows, LbmNumberStreamInput input)
void generateBitmaps (uint nRows, LbmNumberStreamInput input, BitmapInput &bmInput)
void generateBitmaps (uint nRows, uint start, uint skipRows, PBuffer pBuf, uint &bufSize, uint fullBufSize, uint &nBitmaps, bool includeKeys=false)
Generate bitmaps to used in verifying result of bitmap index scan.
void produceEntry (LbmEntry &lbmEntry, TupleAccessor &bitmapTupleAccessor, BitmapInput &bmInput)
void produceEntry (LbmEntry &lbmEntry, TupleAccessor &bitmapTupleAccessor, PBuffer pBuf, uint &bufSize, uint &nBitmaps, bool includeKeys)
void initValuesExecStream (uint idx, ValuesExecStreamParams &valuesParams, ExecStreamEmbryo &valuesStreamEmbryo, BitmapInput &bmInput)
void initSorterExecStream (ExternalSortExecStreamParams &params, ExecStreamEmbryo &embryo, TupleDescriptor const &outputDesc, uint nKeys=1)
void initNormalizerExecStream (LbmNormalizerExecStreamParams &params, ExecStreamEmbryo &embryo, uint nKeys)
uint resultBitmapSize (uint start, uint end)
Calculates size of result bitmap.
uint resultBitmapSize (uint nRids)
void initKeyBitmap (uint nRows, std::vector< int > const &repeatSeqValues)
Initialize bitmaps with keys.
SharedExecStream prepareSourceGraph (ExecStreamEmbryo &sourceStreamEmbryo)
Defines and prepares a graph consisting of one source stream.
SharedExecStream prepareTransformGraph (ExecStreamEmbryo &sourceStreamEmbryo, ExecStreamEmbryo &transformStreamEmbryo)
Defines and prepares a graph consisting of one source stream and one transform stream.
SharedExecStream prepareTransformGraph (ExecStreamEmbryo &sourceStreamEmbryo, std::vector< ExecStreamEmbryo > &transforms)
Defines and prepares a graph consisting of one source stream and one or multiple transform streams.
SharedExecStream prepareConfluenceGraph (ExecStreamEmbryo &sourceStreamEmbryo1, ExecStreamEmbryo &sourceStreamEmbryo2, ExecStreamEmbryo &confluenceStreamEmbryo)
Defines and prepares a graph consisting of two source streams and one confluence stream.
SharedExecStream prepareConfluenceGraph (std::vector< ExecStreamEmbryo > &sourceStreamEmbryos, ExecStreamEmbryo &confluenceStreamEmbryo)
Defines and prepares a graph consisting of a list of source streams and one confluence stream.
SharedExecStream prepareConfluenceGraph (std::vector< std::vector< ExecStreamEmbryo > > &sourceStreamEmbryosList, ExecStreamEmbryo &confluenceStreamEmbryo)
Defines and prepares a graph consisting of one or more source streams and one confluence stream.
SharedExecStream prepareConfluenceTransformGraph (ExecStreamEmbryo &sourceStreamEmbryo1, ExecStreamEmbryo &sourceStreamEmbryo2, ExecStreamEmbryo &confluenceStreamEmbryo, ExecStreamEmbryo &transformStreamEmbryo)
Defines and prepares a graph consisting of two source streams, one confluence stream, and one transform stream.
SharedExecStream prepareDAG (ExecStreamEmbryo &srcStreamEmbryo, ExecStreamEmbryo &splitterStreamEmbryo, std::vector< ExecStreamEmbryo > &interStreamEmbryos, ExecStreamEmbryo &destStreamEmbryo, bool createSink=true, bool saveSrc=true)
Defines and prepares a graph consisting of a source, a splitter, and one or more parallel transform streams which flow together into a confluence stream.
SharedExecStream prepareDAG (ExecStreamEmbryo &srcStreamEmbryo, ExecStreamEmbryo &splitterStreamEmbryo, std::vector< std::vector< ExecStreamEmbryo > > &interStreamEmbryosList, ExecStreamEmbryo &destStreamEmbryo, bool createSink=true, bool saveSrc=true)
Defines and prepares a graph consisting of a source, a splitter, and one or more parallel transform streams which flow together into a confluence stream.
void verifyOutput (ExecStream &stream, uint nRowsExpected, MockProducerExecStreamGenerator &verifier, bool stopEarly=false)
Executes the prepared stream graph and verifies that its output matches that produced by a value generator.
void verifyConstantOutput (ExecStream &stream, const TupleData &expectedTuple, uint nRowsExpected)
Executes the prepared stream graph and verifies that all output tuples matche an expected and given one.
void verifyBufferedOutput (ExecStream &stream, TupleDescriptor outputTupleDesc, uint nRowsExpected, PBuffer expectedBuffer)
Executes the prepared stream graph and verifies the resultant tuples against a set of tuples supplied in an input buffer.
void resetExecStreamTest ()
Reset stream graph so multiple iterations of a method can be called within a single testcase.
virtual void tearDownExecStreamTest ()
ExecStream-specific handler called from testCaseTearDown.
virtual SharedExecStreamGraph newStreamGraph ()
Creates a stream graph.
virtual SharedExecStreamGraphEmbryo newStreamGraphEmbryo (SharedExecStreamGraph)
Creates an embryo for a stream graph.
virtual ExecStreamScheduler * newScheduler ()
Creates a scheduler.
virtual ExecStreamGovernor * newResourceGovernor (ExecStreamResourceKnobs const &knobSettings, ExecStreamResourceQuantity const &resourcesAvailable)
Creates the resource governor.
void snooze (uint nSeconds)
Static Protected Member Functions
static const std::string & getTraceName ()
Protected Attributes
TupleAttributeDescriptor attrDesc_char1
TupleAttributeDescriptor attrDesc_nullableInt64
vector< boost::shared_ptr< BTreeDescriptor > > bTreeClusters
BTrees corresponding to the clusters.
vector< PageId > savedBTreeClusterRootIds
Saved root pageids of btrees corresponding to clusters; used to append to existing table and to read from them.
vector< boost::shared_ptr< BTreeDescriptor > > bTreeBitmaps
BTrees corresponding to the bitmaps.
vector< PageId > savedBTreeBitmapRootIds
Saved root pageids of btrees corresponding to bitmaps; used to append to existing table and to read from them.
StandardTypeDescriptorFactory stdTypeFactory
TupleAttributeDescriptor attrDesc_int64
TupleAttributeDescriptor attrDesc_bitmap
uint bitmapColSize
Size of bitmap columns.
TupleDescriptor bitmapTupleDesc
Tuple descriptor, tupledata, and accessor for a bitmap segment: (rid, segment descriptor, bitmap segments).
TupleData bitmapTupleData
TupleAccessor bitmapTupleAccessor
TupleDescriptor keyBitmapTupleDesc
Tuple descriptor, data, and accessor for key-containting bitmaps (keys, srid, segment descriptor, bitmap segments).
TupleData keyBitmapTupleData
TupleAccessor keyBitmapTupleAccessor
boost::shared_array< FixedBuffer > keyBitmapBuf
uint keyBitmapBufSize
SharedExecStreamGraph pGraph
SharedExecStreamGraphEmbryo pGraphEmbryo
SharedExecStreamScheduler pScheduler
SharedExecStreamGovernor pResourceGovernor
SharedCacheAccessor pCacheAccessor
SharedSegmentFactory pSegmentFactory
SharedSegment pLinearSegment
Segment supporting linear page allocation.
SharedSegment pRandomSegment
(Optional) segment supporting random page allocation.
SharedSegment pVersionedRandomSegment
(Optional) segment supporting versioned random page allocation.
SharedSegment pSnapshotRandomSegment
(Optional) segment supporting snapshot random page allocation.
VictimPolicy victimPolicy
VictimPolicy to instantiate.
CacheParams cacheParams
Parameters for cache initialization.
SharedCache pCache
Cache instance being tested.
SharedRandomAccessDevice pRandomAccessDevice
The default cached device.
uint nMemPages
Size of cache in memory pages.
uint nDiskPages
Size of device in disk pages.
uint cbPageFull
Disk page size.
DeviceId dataDeviceId
Fixed ID to assign to data device.
TestSuite * pTestSuite
Boost test suite.
boost::shared_ptr< TestBase > pTestObj
std::ofstream traceStream
Output file stream for tracing.
StrictMutex traceMutex
Protects traceStream.
std::string testName
Name of test.
TraceLevel traceLevel
Level at which to trace test execution.
FileStatsTarget statsTarget
Output for stats.
StatsTimer statsTimer
Timer for stats collection.
bool traceStdout
Copy trace output to stdout.
bool traceFile
Copy trace output to file.
TestCaseGroup defaultTests
TestCaseGroup extraTests
Static Protected Attributes
static const uint DefaultCacheReservePercent = 5
static const uint DefaultConcurrentStatements = 4
static bool runAll
Run all test cases, including the extra tests.
static std::string runSingle
Run only the test case of this name.

Detailed Description

Testcase for scanning a single bitmap index using equality search on all index keys.

Definition at line 55 of file LbmSearchTest.cpp.


Member Enumeration Documentation

The available victim policy implementations.

Enumerator:

| victimTwoQ | | | -------------- | | | victimLRU | | | victimRandom | |

Definition at line 44 of file CacheTestBase.h.


Constructor & Destructor Documentation

| LbmSearchTest::LbmSearchTest | ( | | ) | [inline, explicit] | | ---------------------------- | - | | - | -------------------- |


Member Function Documentation

Initializes a cluster scan def structure for a LcsRowScanBase exec stream.

Definition at line 813 of file LbmSearchTest.cpp.

References bTreeClusters, BTreeParams::keyProj, LcsRowScanBaseExecStreamParams::lcsClusterScanDefs, BTreeParams::pageOwnerId, ExecStreamParams::pCacheAccessor, BTreeParams::pRootMap, BTreeParams::pSegment, BTreeParams::rootPageId, BTreeParams::rootPageIdParamId, BTreeParams::segmentId, and BTreeParams::tupleDesc.

Referenced by loadTableAndIndex().

void LbmSearchTest::loadTableAndIndex ( uint nRows,
uint nClusters,
std::vector< int > const & repeatSeqValues,
bool newRoot
) [protected]

Loads a table with nClusters clusters, 1 column per cluster, and nRows rows.

Each column has a repeating sequence of values based on the value in the repeatSeqValues vector. E.g., a repeating sequence of n will have values:

(0, 1, 2, ..., n-1, 0, 1, 2, ..., n-1, 0, 1, 2, ...).

Then a single bitmap index is created on all columns.

Parameters:

nRows number of rows to load
nClusters number of clusters to create
repeatSeqValues repeating sequence values for each column
newRoot if true, append to existing table

Definition at line 549 of file LbmSearchTest.cpp.

References LbmExecStreamTestBase::attrDesc_int64, BARRIER_RET_ANY_INPUT, bTreeBitmaps, bTreeClusters, LbmSplicerExecStreamParams::bTreeParams, LcsClusterScanDef::clusterTupleDesc, BTreeBuilder::createEmptyRoot(), LbmGeneratorExecStreamParams::createIndex, LbmSplicerExecStreamParams::createNewIndex, ExternalSortExecStreamParams::distinctness, DUP_ALLOW, ExternalSortExecStreamParams::earlyClose, ExternalSortExecStreamParams::estimatedNumRows, BTreeAccessBase::getRootPageId(), ExecStreamEmbryo::getStream(), ExecStreamEmbryo::init(), initBTreeBitmapDesc(), initBTreeExecStreamParam(), initBTreeParam(), initBTreeTupleDesc(), initClusterScanDef(), LbmSplicerExecStreamParams::insertRowCountParamId, LbmGeneratorExecStreamParams::insertRowCountParamId, ExternalSortExecStreamParams::keyProj, BTreeParams::keyProj, MAXU, ExternalSortExecStream::newExternalSortExecStream(), MockProducerExecStreamParams::nRows, LcsRowScanBaseExecStreamParams::outputProj, DiffluenceExecStreamParams::outputTupleDesc, SingleOutputExecStreamParams::outputTupleDesc, CacheTestBase::pCache, MockProducerExecStreamParams::pGenerator, SegStorageTestBase::pRandomSegment, ExecStreamUnitTestBase::prepareDAG(), SegStorageTestBase::pSegmentFactory, ExternalSortExecStreamParams::pTempSegment, BarrierExecStreamParams::returnMode, BTreeParams::rootPageId, savedBTreeBitmapRootIds, savedBTreeClusterRootIds, ExternalSortExecStreamParams::storeFinalRun, BTreeParams::tupleDesc, ExecStreamUnitTestBase::verifyOutput(), and LbmSplicerExecStreamParams::writeRowCountParamId.

Referenced by testMultipleRanges(), and testScans().

00552 { 00553
00554 for (uint i = 0; i < bTreeClusters.size(); i++) { 00555 bTreeClusters[i]->segmentAccessor.reset(); 00556 } 00557 for (uint i = 0; i < bTreeBitmaps.size(); i++) { 00558 bTreeBitmaps[i]->segmentAccessor.reset(); 00559 } 00560 bTreeClusters.clear(); 00561 bTreeBitmaps.clear(); 00562 00563
00564 00565 MockProducerExecStreamParams mockParams; 00566 for (uint i = 0; i < nClusters; i++) { 00567 mockParams.outputTupleDesc.push_back(attrDesc_int64); 00568 } 00569 mockParams.nRows = nRows; 00570 00571 vector<boost::shared_ptr<ColumnGenerator > > columnGenerators; 00572 SharedInt64ColumnGenerator col; 00573 assert(repeatSeqValues.size() == nClusters); 00574 for (uint i = 0; i < repeatSeqValues.size(); i++) { 00575 col = 00576 SharedInt64ColumnGenerator( 00577 new RepeatingSeqColumnGenerator(repeatSeqValues[i])); 00578 columnGenerators.push_back(col); 00579 } 00580 mockParams.pGenerator.reset( 00581 new CompositeExecStreamGenerator(columnGenerators)); 00582 00583 ExecStreamEmbryo mockStreamEmbryo; 00584 mockStreamEmbryo.init(new MockProducerExecStream(), mockParams); 00585 mockStreamEmbryo.getStream()->setName("MockProducerExecStream"); 00586 00587
00588 00589 SplitterExecStreamParams splitterParams; 00590 ExecStreamEmbryo splitterStreamEmbryo; 00591 splitterStreamEmbryo.init(new SplitterExecStream(), splitterParams); 00592 splitterStreamEmbryo.getStream()->setName("ClusterSplitterExecStream"); 00593 00594
00595 00596 vector lcsAppendEmbryos; 00597 for (uint i = 0; i < nClusters; i++) { 00598 LcsClusterAppendExecStreamParams lcsAppendParams; 00599 boost::shared_ptr pBTreeDesc = 00600 boost::shared_ptr (new BTreeDescriptor()); 00601 bTreeClusters.push_back(pBTreeDesc); 00602 00603
00604
00605 (lcsAppendParams.tupleDesc).push_back(attrDesc_int64); 00606 (lcsAppendParams.tupleDesc).push_back(attrDesc_int64); 00607 00608
00609 (lcsAppendParams.keyProj).push_back(0); 00610 00611 initBTreeExecStreamParam(lcsAppendParams, pBTreeDesc); 00612 00613
00614 lcsAppendParams.outputTupleDesc.push_back(attrDesc_int64); 00615 lcsAppendParams.outputTupleDesc.push_back(attrDesc_int64); 00616 00617 lcsAppendParams.inputProj.push_back(i); 00618 00619
00620 00621 if (newRoot) { 00622 BTreeBuilder builder(*pBTreeDesc, pRandomSegment); 00623 builder.createEmptyRoot(); 00624 savedBTreeClusterRootIds.push_back(builder.getRootPageId()); 00625 } 00626 lcsAppendParams.rootPageId = pBTreeDesc->rootPageId = 00627 savedBTreeClusterRootIds[i]; 00628 00629
00630 00631 ExecStreamEmbryo lcsAppendStreamEmbryo; 00632 lcsAppendStreamEmbryo.init( 00633 new LcsClusterAppendExecStream(), lcsAppendParams); 00634 std::ostringstream oss; 00635 oss << "LcsClusterAppendExecStream" << "#" << i; 00636 lcsAppendStreamEmbryo.getStream()->setName(oss.str()); 00637 lcsAppendEmbryos.push_back(lcsAppendStreamEmbryo); 00638 } 00639 00640
00641 00642 BarrierExecStreamParams barrierParams; 00643 barrierParams.outputTupleDesc.push_back(attrDesc_int64); 00644 barrierParams.outputTupleDesc.push_back(attrDesc_int64); 00645 barrierParams.returnMode = BARRIER_RET_ANY_INPUT; 00646 00647 ExecStreamEmbryo clusterBarrierStreamEmbryo; 00648 clusterBarrierStreamEmbryo.init(new BarrierExecStream(), barrierParams); 00649 clusterBarrierStreamEmbryo.getStream()->setName("ClusterBarrierExecStream"); 00650 00651
00652 prepareDAG( 00653 mockStreamEmbryo, splitterStreamEmbryo, lcsAppendEmbryos, 00654 clusterBarrierStreamEmbryo, false); 00655 00656
00657 00658 splitterStreamEmbryo.init( 00659 new SplitterExecStream(), splitterParams); 00660 splitterStreamEmbryo.getStream()->setName("BitmapSplitterExecStream"); 00661 00662
00663
00664 00665 std::vector<std::vector > createBitmapStreamList; 00666 std::vector createBitmapStream; 00667 00668
00669 00670 LbmGeneratorExecStreamParams generatorParams; 00671 struct LcsClusterScanDef clusterScanDef; 00672 clusterScanDef.clusterTupleDesc.push_back(attrDesc_int64); 00673 00674 for (uint j = 0; j < nClusters; j++) { 00675 initClusterScanDef(generatorParams, clusterScanDef, j); 00676 } 00677 00678 TupleProjection proj; 00679 for (uint j = 0; j < nClusters; j++) { 00680 proj.push_back(j); 00681 } 00682 generatorParams.outputProj = proj; 00683 generatorParams.insertRowCountParamId = DynamicParamId(1); 00684 generatorParams.createIndex = false; 00685 00686 boost::shared_ptr pBTreeDesc = 00687 boost::shared_ptr (new BTreeDescriptor()); 00688 bTreeBitmaps.push_back(pBTreeDesc); 00689 00690
00691
00692 uint nKeys = nClusters; 00693 initBTreeTupleDesc(generatorParams.outputTupleDesc, nKeys); 00694 00695 initBTreeBitmapDesc( 00696 generatorParams.tupleDesc, generatorParams.keyProj, nKeys); 00697 initBTreeExecStreamParam(generatorParams, pBTreeDesc); 00698 00699
00700 00701 if (newRoot) { 00702 BTreeBuilder builder(*pBTreeDesc, pRandomSegment); 00703 builder.createEmptyRoot(); 00704 savedBTreeBitmapRootIds.push_back(builder.getRootPageId()); 00705 } 00706 generatorParams.rootPageId = pBTreeDesc->rootPageId = 00707 savedBTreeBitmapRootIds[0]; 00708 00709 ExecStreamEmbryo generatorStreamEmbryo; 00710 generatorStreamEmbryo.init( 00711 new LbmGeneratorExecStream(), generatorParams); 00712 std::ostringstream oss; 00713 oss << "LbmGeneratorExecStream" << "#" << 0; 00714 generatorStreamEmbryo.getStream()->setName(oss.str()); 00715 createBitmapStream.push_back(generatorStreamEmbryo); 00716 00717
00718 00719 ExternalSortExecStreamParams sortParams; 00720 initBTreeBitmapDesc( 00721 sortParams.outputTupleDesc, sortParams.keyProj, nKeys); 00722 sortParams.distinctness = DUP_ALLOW; 00723 sortParams.pTempSegment = pRandomSegment; 00724 sortParams.pCacheAccessor = pCache; 00725 sortParams.scratchAccessor = 00726 pSegmentFactory->newScratchSegment(pCache, 10); 00727 sortParams.storeFinalRun = false; 00728 sortParams.estimatedNumRows = MAXU; 00729 sortParams.earlyClose = false; 00730 00731 ExecStreamEmbryo sortStreamEmbryo; 00732 sortStreamEmbryo.init( 00733 ExternalSortExecStream::newExternalSortExecStream(), sortParams); 00734 sortStreamEmbryo.getStream()->setName("ExternalSortExecStream"); 00735 std::ostringstream oss2; 00736 oss2 << "ExternalSortExecStream" << "#" << 0; 00737 sortStreamEmbryo.getStream()->setName(oss2.str()); 00738 createBitmapStream.push_back(sortStreamEmbryo); 00739 00740
00741 00742 LbmSplicerExecStreamParams splicerParams; 00743 splicerParams.createNewIndex = false; 00744 splicerParams.scratchAccessor = 00745 pSegmentFactory->newScratchSegment(pCache, 15); 00746 splicerParams.pCacheAccessor = pCache; 00747 BTreeParams bTreeParams; 00748 initBTreeBitmapDesc( 00749 bTreeParams.tupleDesc, bTreeParams.keyProj, nKeys); 00750 initBTreeParam(bTreeParams, pBTreeDesc); 00751 bTreeParams.rootPageId = pBTreeDesc->rootPageId; 00752 splicerParams.bTreeParams.push_back(bTreeParams); 00753 splicerParams.insertRowCountParamId = DynamicParamId(1); 00754 splicerParams.writeRowCountParamId = DynamicParamId(0); 00755 splicerParams.outputTupleDesc.push_back(attrDesc_int64); 00756 00757 ExecStreamEmbryo splicerStreamEmbryo; 00758 splicerStreamEmbryo.init(new LbmSplicerExecStream(), splicerParams); 00759 std::ostringstream oss3; 00760 oss3 << "LbmSplicerExecStream" << "#" << 0; 00761 splicerStreamEmbryo.getStream()->setName(oss3.str()); 00762 createBitmapStream.push_back(splicerStreamEmbryo); 00763 00764
00765
00766 createBitmapStreamList.push_back(createBitmapStream); 00767 00768
00769 00770 barrierParams.outputTupleDesc.clear(); 00771 barrierParams.outputTupleDesc.push_back(attrDesc_int64); 00772 00773 ExecStreamEmbryo barrierStreamEmbryo; 00774 barrierStreamEmbryo.init( 00775 new BarrierExecStream(), barrierParams); 00776 barrierStreamEmbryo.getStream()->setName("BitmapBarrierExecStream"); 00777 00778
00779
00780 SharedExecStream pOutputStream = prepareDAG( 00781 clusterBarrierStreamEmbryo, splitterStreamEmbryo, 00782 createBitmapStreamList, barrierStreamEmbryo, true, false); 00783 00784
00785 RampExecStreamGenerator expectedResultGenerator(mockParams.nRows); 00786 00787 verifyOutput(*pOutputStream, 1, expectedResultGenerator); 00788 }

void LbmSearchTest::testScanFullKey ( uint nRows,
uint nKeys,
std::vector< int > const & repeatSeqValues,
bool useDynamicKeys,
bool includeRid
) [protected]

Tests equality scan on the table created in loadTableAndIndex, using the entire index key (minus the rid).

Parameters:

nRows total number of rows in the table
nKeys number of keys in the index (excluding startrid)
repeatSeqValues initial repeating sequence values for each column
useDynamicKeys if true, pass search keys through dynamic parameters
includeRid if true, include rid >= 0 in the search

Definition at line 389 of file LbmSearchTest.cpp.

References FixedBuffer, LbmExecStreamTestBase::generateBitmaps(), TupleAccessor::getCurrentByteCount(), initEqualSearch(), TupleAccessor::marshal(), and testScanIdx().

Referenced by testMultipleRanges(), and testScans().

00392 { 00393
00394 uint nInputTuples = 1; 00395 boost::scoped_array vals; 00396 char lowerDirective; 00397 char upperDirective; 00398 TupleAccessor inputTupleAccessor; 00399 TupleData inputTupleData; 00400 boost::shared_array inputBuffer; 00401 00402 initEqualSearch( 00403 nKeys, nInputTuples, vals, lowerDirective, upperDirective, 00404 inputTupleAccessor, inputTupleData, inputBuffer, useDynamicKeys); 00405 00406
00407 uint skipRows = 1; 00408 for (uint i = 0; i < nKeys; i++) { 00409 skipRows *= repeatSeqValues[i]; 00410 } 00411 for (uint i = 0; i < skipRows; i++) { 00412
00413 for (uint j = 0; j < nKeys; j++) { 00414 vals[j] = i % repeatSeqValues[j]; 00415 } 00416 inputTupleAccessor.marshal(inputTupleData, inputBuffer.get()); 00417 00418
00419 boost::scoped_array expectedBitmaps; 00420 uint bufferSize = (nRows / skipRows + 1) * 16; 00421 expectedBitmaps.reset(new FixedBuffer[bufferSize]); 00422 uint expectedNBitmaps = 0; 00423 uint expectedBufSize = 0; 00424 generateBitmaps( 00425 nRows, i, skipRows, expectedBitmaps.get(), expectedBufSize, 00426 bufferSize, expectedNBitmaps); 00427 00428 testScanIdx( 00429 nKeys, nKeys, inputTupleAccessor.getCurrentByteCount(), 00430 inputBuffer, expectedNBitmaps, expectedBitmaps.get(), false, 00431 useDynamicKeys, includeRid, vals); 00432 } 00433 }

void LbmSearchTest::testScanPartialKey ( uint nRows,
uint nKeys,
std::vector< int > const & repeatSeqValues
) [protected]

Tests equality scan on the table created in loadTableAndIndex, using the all keys except the rid and the last key.

Parameters:

nRows total number of rows in the table
nKeys number of keys in the index (excluding startrid)
repeatSeqValues initial repeating sequence values for each column

Definition at line 435 of file LbmSearchTest.cpp.

References FixedBuffer, LbmExecStreamTestBase::generateBitmaps(), TupleAccessor::getCurrentByteCount(), initEqualSearch(), TupleAccessor::marshal(), and testScanIdx().

Referenced by testScans().

00437 { 00438
00439 uint nInputTuples = 1; 00440 boost::scoped_array vals; 00441 char lowerDirective; 00442 char upperDirective; 00443 TupleAccessor inputTupleAccessor; 00444 TupleData inputTupleData; 00445 boost::shared_array inputBuffer; 00446 00447 initEqualSearch( 00448 nKeys - 1, nInputTuples, vals, lowerDirective, upperDirective, 00449 inputTupleAccessor, inputTupleData, inputBuffer, false); 00450 00451
00452 for (uint j = 0; j < nKeys - 1; j++) { 00453 vals[j] = 0; 00454 } 00455 inputTupleAccessor.marshal(inputTupleData, inputBuffer.get()); 00456 00457
00458
00459
00460
00461 00462 uint skipRows = 1; 00463 for (uint i = 0; i < nKeys - 1; i++) { 00464 skipRows *= repeatSeqValues[i]; 00465 } 00466 boost::scoped_array expectedBitmaps; 00467 uint bufferSize = (nRows / skipRows / 8 + 1) 00468 * 12 * repeatSeqValues[nKeys - 1]; 00469 expectedBitmaps.reset(new FixedBuffer[bufferSize]); 00470 PBuffer bitmapBuf = expectedBitmaps.get(); 00471 uint expectedNBitmaps = 0; 00472 uint curBufSize = 0; 00473 00474 for (uint i = 0; i < repeatSeqValues[nKeys - 1]; i++) { 00475 uint start; 00476 if (i == 0) { 00477 start = 0; 00478 } else { 00479
00480
00481 for (start = i; start < nRows; 00482 start += repeatSeqValues[nKeys - 1]) 00483 { 00484 uint j; 00485 for (j = 0; j < nKeys - 1; j++) { 00486 if (start % repeatSeqValues[j] != 0) { 00487 break; 00488 } 00489 } 00490 if (j == nKeys - 1) { 00491 break; 00492 } 00493 } 00494 if (start >= nRows) { 00495 continue; 00496 } 00497 } 00498 generateBitmaps( 00499 nRows, start, skipRows * repeatSeqValues[nKeys - 1], 00500 bitmapBuf, curBufSize, bufferSize, expectedNBitmaps); 00501 } 00502 testScanIdx( 00503 nKeys, nKeys - 1, inputTupleAccessor.getCurrentByteCount(), 00504 inputBuffer, expectedNBitmaps, bitmapBuf, false, false, false, vals); 00505 }

void LbmSearchTest::testScanIdx ( uint totalKeys,
uint nKeys,
uint bufSize,
boost::shared_array< FixedBuffer > inputBuffer,
uint expectedNBitmaps,
PBuffer expectedBitmaps,
bool dynamicRootPageId,
bool useDynamicKeys,
bool includeRid,
const boost::scoped_array< uint64_t > & vals
) [protected]

Performs an index search using the key values/directives passed in.

Parameters:

totalKeys total number of keys in the index (excluding startrid)
nKeys number of keys to use in index search; always excludes startrid
bufSize size of input buffer containing search keys/directive
inputBuffer buffer containing search key/directive tuples to be passed into the index scan
expectedNBitmaps expected number of bitmaps in result
expectedBitmaps buffer containing expected bitmap result
dynamicRootPageId if true, pass in the btree rootPageId as a dynamic parameter
useDynamicKeys if true, pass in search key values using dynamic parameters
includeRid include rid in search
vals search key values

Definition at line 882 of file LbmSearchTest.cpp.

References attrDesc_char1, LbmExecStreamTestBase::attrDesc_int64, attrDesc_nullableInt64, LbmExecStreamTestBase::bitmapTupleAccessor, LbmExecStreamTestBase::bitmapTupleDesc, bTreeBitmaps, ValuesExecStreamParams::bufSize, TupleDatum::cbData, ExecStreamEmbryo::getStream(), ExecStreamEmbryo::init(), initBTreeBitmapDesc(), initBTreeExecStreamParam(), NULL_PAGE_ID, SingleOutputExecStreamParams::outputTupleDesc, TupleDatum::pData, ExecStreamUnitTestBase::pGraph, ExecStreamUnitTestBase::prepareTransformGraph(), ValuesExecStreamParams::pTupleBuffer, ExecStreamUnitTestBase::resetExecStreamTest(), LbmSearchExecStreamParams::rowLimitParamId, savedBTreeBitmapRootIds, TupleAccessor::setCurrentTupleBuf(), LbmSearchExecStreamParams::startRidParamId, and ExecStreamUnitTestBase::verifyBufferedOutput().

Referenced by testMultipleRanges(), testScanFullKey(), and testScanPartialKey().

00890 { 00891 resetExecStreamTest(); 00892 00893
00894
00895 00896 ValuesExecStreamParams valuesParams; 00897 for (uint i = 0; i < 2; i++) { 00898 valuesParams.outputTupleDesc.push_back(attrDesc_char1); 00899 for (uint j = 0; j < nKeys; j++) { 00900 valuesParams.outputTupleDesc.push_back(attrDesc_nullableInt64); 00901 } 00902 } 00903 valuesParams.pTupleBuffer = inputBuffer; 00904 valuesParams.bufSize = bufSize; 00905 00906 ExecStreamEmbryo valuesStreamEmbryo; 00907 valuesStreamEmbryo.init(new ValuesExecStream(), valuesParams); 00908 valuesStreamEmbryo.getStream()->setName("ValuesExecStream"); 00909 00910
00911 00912 LbmSearchExecStreamParams indexScanParams; 00913 00914
00915 indexScanParams.rowLimitParamId = DynamicParamId(0); 00916 if (includeRid) { 00917 indexScanParams.startRidParamId = DynamicParamId(1); 00918 SharedDynamicParamManager pDynamicParamManager = 00919 pGraph->getDynamicParamManager(); 00920 pDynamicParamManager->createParam(DynamicParamId(1), attrDesc_int64); 00921 TupleDatum ridDatum; 00922 LcsRid rid = LcsRid(0); 00923 ridDatum.pData = (PConstBuffer) &rid; 00924 ridDatum.cbData = sizeof(LcsRid); 00925 pDynamicParamManager->writeParam(DynamicParamId(1), ridDatum); 00926 } else { 00927 indexScanParams.startRidParamId = DynamicParamId(0); 00928 } 00929 00930
00931 initBTreeBitmapDesc( 00932 indexScanParams.tupleDesc, indexScanParams.keyProj, totalKeys); 00933 initBTreeExecStreamParam(indexScanParams, bTreeBitmaps[0]); 00934 bTreeBitmaps[0]->rootPageId = savedBTreeBitmapRootIds[0]; 00935 00936 if (!dynamicRootPageId) { 00937 indexScanParams.rootPageId = savedBTreeBitmapRootIds[0]; 00938 } else { 00939 indexScanParams.rootPageId = NULL_PAGE_ID; 00940 indexScanParams.rootPageIdParamId = DynamicParamId(2); 00941 SharedDynamicParamManager pDynamicParamManager = 00942 pGraph->getDynamicParamManager(); 00943 pDynamicParamManager->createParam(DynamicParamId(2), attrDesc_int64); 00944 TupleDatum rootPageIdDatum; 00945 rootPageIdDatum.pData = (PConstBuffer) &(savedBTreeBitmapRootIds[0]); 00946 rootPageIdDatum.cbData = sizeof(PageId); 00947 pDynamicParamManager->writeParam(DynamicParamId(2), rootPageIdDatum); 00948 } 00949 00950 TupleProjection outputProj; 00951 for (uint i = totalKeys; i < totalKeys + 3; i++) { 00952 outputProj.push_back(i); 00953 } 00954 indexScanParams.outputProj = outputProj; 00955 00956
00957 indexScanParams.outerJoin = false; 00958 TupleProjection inputKeyProj; 00959 for (uint i = 0; i < 2; i++) { 00960 for (uint j = 0; j < nKeys; j++) { 00961 inputKeyProj.push_back(i * (nKeys + 1) + j + 1); 00962 } 00963 } 00964 indexScanParams.inputKeyProj = inputKeyProj; 00965 indexScanParams.inputDirectiveProj.push_back(0); 00966 indexScanParams.inputDirectiveProj.push_back(nKeys + 1); 00967 00968
00969 indexScanParams.outputTupleDesc = bitmapTupleDesc; 00970 00971 if (useDynamicKeys) { 00972 SharedDynamicParamManager pDynamicParamManager = 00973 pGraph->getDynamicParamManager(); 00974 for (uint i = 3; i < nKeys * 2 + 3; i++) { 00975 indexScanParams.searchKeyParams.push_back( 00976 BTreeSearchKeyParameter( 00977 DynamicParamId(i), 00978 i - 3)); 00979 pDynamicParamManager->createParam( 00980 DynamicParamId(i), attrDesc_int64); 00981 TupleDatum keyValDatum; 00982 keyValDatum.pData = (PConstBuffer) &(vals[(i - 3) % nKeys]); 00983 keyValDatum.cbData = sizeof(uint64_t); 00984 pDynamicParamManager->writeParam(DynamicParamId(i), keyValDatum); 00985 } 00986 } 00987 00988 ExecStreamEmbryo indexScanStreamEmbryo; 00989 indexScanStreamEmbryo.init(new LbmSearchExecStream(), indexScanParams); 00990 indexScanStreamEmbryo.getStream()->setName("IndexScanStream"); 00991 00992 SharedExecStream pOutputStream = prepareTransformGraph( 00993 valuesStreamEmbryo, indexScanStreamEmbryo); 00994 00995 bitmapTupleAccessor.setCurrentTupleBuf(expectedBitmaps); 00996 verifyBufferedOutput( 00997 *pOutputStream, bitmapTupleDesc, expectedNBitmaps, expectedBitmaps); 00998 }

void LbmSearchTest::initEqualSearch ( uint nKeys,
uint nInputTuples,
boost::scoped_array< uint64_t > & vals,
char & lowerDirective,
char & upperDirective,
TupleAccessor & inputTupleAccessor,
TupleData & inputTupleData,
boost::shared_array< FixedBuffer > & inputBuffer,
bool useDynamicKeys
) [protected]

Initializes input search key and directives for an equality search.

Parameters:

nKeys number of keys to search on
nInputTuples number of search ranges to create
vals values to search on
lowerDirective lower bound search directive
upperDirective upper bound search directive
inputTupleAccessor accessor to marshal/unmarshal search key
inputTupleData tupledata storing search key
inputBuffer buffer storing search key
useDynamicKeys if true, search key values are passed to the search stream using dynamic parameters

Definition at line 507 of file LbmSearchTest.cpp.

References attrDesc_char1, attrDesc_nullableInt64, TupleAccessor::compute(), TupleData::compute(), FixedBuffer, and TupleAccessor::getMaxByteCount().

Referenced by testScanFullKey(), and testScanPartialKey().

00513 { 00514 TupleDescriptor inputTupleDesc; 00515 for (uint i = 0; i < 2; i++) { 00516 inputTupleDesc.push_back(attrDesc_char1); 00517 for (uint j = 0; j < nKeys; j++) { 00518 inputTupleDesc.push_back(attrDesc_nullableInt64); 00519 } 00520 } 00521 00522 inputTupleData.compute(inputTupleDesc); 00523 00524 vals.reset(new uint64_t[nKeys]); 00525 lowerDirective = '['; 00526 inputTupleData[0].pData = (PConstBuffer) &lowerDirective; 00527 upperDirective = ']'; 00528 inputTupleData[nKeys + 1].pData = (PConstBuffer) &upperDirective; 00529 for (uint i = 0; i < nKeys; i++) { 00530
00531
00532 if (useDynamicKeys) { 00533 inputTupleData[i + 1].pData = NULL; 00534 inputTupleData[i + 1].cbData = 0; 00535 inputTupleData[nKeys + 1 + i + 1].pData = NULL; 00536 inputTupleData[nKeys + 1 + i + 1].cbData = 0; 00537 } else { 00538 inputTupleData[i + 1].pData = (PConstBuffer) &vals[i]; 00539 inputTupleData[nKeys + 1 + i + 1].pData = (PConstBuffer) &vals[i]; 00540 } 00541 } 00542 00543 inputTupleAccessor.compute(inputTupleDesc); 00544 00545 inputBuffer.reset( 00546 new FixedBuffer[nInputTuples * inputTupleAccessor.getMaxByteCount()]); 00547 }

| void LbmSearchTest::testCaseSetUp | ( | | ) | [virtual] | | --------------------------------- | - | | - | ----------- |

| void LbmSearchTest::testCaseTearDown | ( | | ) | [virtual] | | ------------------------------------ | - | | - | ----------- |

void LbmSearchTest::testScans ( uint nRows )

Definition at line 264 of file LbmSearchTest.cpp.

References loadTableAndIndex(), testScanFullKey(), and testScanPartialKey().

Referenced by testScanOneLevel(), and testScanTwoLevel().

00265 { 00266 uint nClusters = 3; 00267 std::vector repeatSeqValues; 00268 00269
00270 repeatSeqValues.push_back(1); 00271 repeatSeqValues.push_back(5); 00272 repeatSeqValues.push_back(9); 00273 loadTableAndIndex(nRows, nClusters, repeatSeqValues, true); 00274 00275
00276
00277
00278 testScanFullKey(nRows, nClusters, repeatSeqValues, false, false); 00279 testScanFullKey(nRows, nClusters, repeatSeqValues, true, false); 00280 testScanFullKey(nRows, nClusters, repeatSeqValues, false, true); 00281 00282
00283 testScanPartialKey(nRows, nClusters, repeatSeqValues); 00284 }

| void LbmSearchTest::testScanOneLevel | ( | | ) | | ------------------------------------ | - | | - |

| void LbmSearchTest::testScanTwoLevel | ( | | ) | | ------------------------------------ | - | | - |

| void LbmSearchTest::testMultipleRanges | ( | | ) | | -------------------------------------- | - | | - |

Definition at line 286 of file LbmSearchTest.cpp.

References attrDesc_char1, attrDesc_nullableInt64, TupleAccessor::compute(), FixedBuffer, LbmExecStreamTestBase::generateBitmaps(), TupleAccessor::getMaxByteCount(), loadTableAndIndex(), ExecStreamUnitTestBase::resetExecStreamTest(), setSearchKey(), testScanFullKey(), and testScanIdx().

Referenced by LbmSearchTest().

00287 { 00288 uint nRows = 20000; 00289 uint nClusters = 1; 00290 std::vector repeatSeqValues; 00291 00292
00293 repeatSeqValues.push_back(100); 00294 loadTableAndIndex(nRows, nClusters, repeatSeqValues, true); 00295 00296
00297 testScanFullKey(nRows, nClusters, repeatSeqValues, false, false); 00298 00299 resetExecStreamTest(); 00300 00301
00302
00303
00304
00305
00306
00307 00308 TupleDescriptor inputTupleDesc; 00309 for (uint i = 0; i < 2; i++) { 00310 inputTupleDesc.push_back(attrDesc_char1); 00311 inputTupleDesc.push_back(attrDesc_nullableInt64); 00312 } 00313 TupleData inputTupleData(inputTupleDesc); 00314 TupleAccessor inputTupleAccessor; 00315 inputTupleAccessor.compute(inputTupleDesc); 00316 00317 uint nInputTuples = 4; 00318 boost::shared_array inputBuffer; 00319 inputBuffer.reset( 00320 new FixedBuffer[nInputTuples * inputTupleAccessor.getMaxByteCount()]); 00321 PBuffer inputBuf = inputBuffer.get(); 00322 uint offset = 0; 00323 00324 setSearchKey( 00325 '-', ')', 0, 8, inputBuf, offset, inputTupleAccessor, inputTupleData); 00326 setSearchKey( 00327 '(', ']', 10, 17, inputBuf, offset, inputTupleAccessor, 00328 inputTupleData); 00329 setSearchKey( 00330 '[', ')', 44, 60, inputBuf, offset, inputTupleAccessor, 00331 inputTupleData); 00332 setSearchKey( 00333 '(', '+', 71, 0, inputBuf, offset, inputTupleAccessor, 00334 inputTupleData); 00335 00336
00337 boost::scoped_array expectedBitmaps; 00338 uint bufferSize = ((nRows / repeatSeqValues[0] / 8 + 1) * 60) * 24; 00339 expectedBitmaps.reset(new FixedBuffer[bufferSize]); 00340 PBuffer bitmapBuf = expectedBitmaps.get(); 00341 uint expectedNBitmaps = 0; 00342 uint expectedBufSize = 0; 00343
00344
00345 for (uint i = 0; i < 8; i++) { 00346 generateBitmaps( 00347 nRows, i, repeatSeqValues[0], bitmapBuf, expectedBufSize, 00348 bufferSize, expectedNBitmaps); 00349 } 00350 for (uint i = 11; i <= 17; i++) { 00351 generateBitmaps( 00352 nRows, i, repeatSeqValues[0], bitmapBuf, expectedBufSize, 00353 bufferSize, expectedNBitmaps); 00354 } 00355 for (uint i = 44; i < 60; i++) { 00356 generateBitmaps( 00357 nRows, i, repeatSeqValues[0], bitmapBuf, expectedBufSize, 00358 bufferSize, expectedNBitmaps); 00359 } 00360 for (uint i = 72; i < repeatSeqValues[0]; i++) { 00361 generateBitmaps( 00362 nRows, i, repeatSeqValues[0], bitmapBuf, expectedBufSize, 00363 bufferSize, expectedNBitmaps); 00364 } 00365 00366 boost::scoped_array vals; 00367 testScanIdx( 00368 nClusters, nClusters, offset, inputBuffer, expectedNBitmaps, 00369 bitmapBuf, true, false, false, vals); 00370 }

| static const std::string& LbmExecStreamTestBase::getTraceName | ( | | ) | [inline, static, protected, inherited] | | ------------------------------------------------------------- | - | | - | ---------------------------------------- |

void LbmExecStreamTestBase::initBitmapInput ( BitmapInput & bmInput,
uint nRows,
InputData const & inputData
) [protected, inherited]

Definition at line 51 of file LbmExecStreamTestBase.cpp.

References LbmExecStreamTestBase::bitmapColSize, LbmNumberStreamInput::bitmapSize, LbmExecStreamTestBase::bitmapTupleAccessor, LbmExecStreamTestBase::bitmapTupleData, LbmExecStreamTestBase::bitmapTupleDesc, BitmapInput::currBufSize, FixedBuffer, BitmapInput::fullBufSize, LbmEntry::getScratchBufferSize(), TestBase::getSourceTraceLevel(), LbmExecStreamTestBase::getTraceName(), LbmEntry::init(), opaqueToInt(), LbmExecStreamTestBase::produceEntry(), LbmNumberStreamInput::pStream, LbmEntry::setEntryTuple(), LbmEntry::setRID(), and TRACE_FINER.

Referenced by LbmExecStreamTestBase::initBitmapInput(), LbmExecStreamTestBase::initKeyBitmap(), testMultipleRanges(), testScanFullKey(), and testScanPartialKey().

void LbmExecStreamTestBase::generateBitmaps ( uint nRows,
uint start,
uint skipRows,
PBuffer pBuf,
uint & bufSize,
uint fullBufSize,
uint & nBitmaps,
bool includeKeys = false
) [protected, inherited]

Generate bitmaps to used in verifying result of bitmap index scan.

Parameters:

nRows number of rows in index
start initial rid value
skipRows generate rids every "skipRows" rows; i.e., if skipRows == 1, there are no gaps in the rids
pBuf buffer where bitmap segment tuples will be marshalled
bufSize amount of space currently used within pBuf
fullBufSize size of pBuf
nBitmaps returns number of bitmaps generated
includeKeys if true, include the keys in the generated bitmap entry

Definition at line 163 of file LbmExecStreamTestBase.cpp.

References LbmExecStreamTestBase::bitmapColSize, LbmExecStreamTestBase::bitmapTupleAccessor, LbmExecStreamTestBase::bitmapTupleData, LbmExecStreamTestBase::bitmapTupleDesc, FixedBuffer, LbmEntry::getScratchBufferSize(), LbmEntry::init(), LbmExecStreamTestBase::produceEntry(), LbmEntry::setEntryTuple(), and LbmEntry::setRID().

00166 { 00167 LbmEntry lbmEntry; 00168 boost::scoped_array entryBuf; 00169 LcsRid rid = LcsRid(start); 00170 00171
00172 uint scratchBufSize = LbmEntry::getScratchBufferSize(bitmapColSize); 00173 entryBuf.reset(new FixedBuffer[scratchBufSize]); 00174 lbmEntry.init(entryBuf.get(), NULL, scratchBufSize, bitmapTupleDesc); 00175 bitmapTupleData[0].pData = (PConstBuffer) &rid; 00176 lbmEntry.setEntryTuple(bitmapTupleData); 00177 00178
00179 for (rid = LcsRid(start + skipRows); rid < LcsRid(nRows); rid += skipRows) { 00180 if (!lbmEntry.setRID(LcsRid(rid))) { 00181
00182
00183 produceEntry( 00184 lbmEntry, bitmapTupleAccessor, 00185 pBuf, bufSize, nBitmaps, includeKeys); 00186 lbmEntry.setEntryTuple(bitmapTupleData); 00187 } 00188 } 00189
00190 produceEntry( 00191 lbmEntry, bitmapTupleAccessor, pBuf, bufSize, nBitmaps, includeKeys); 00192 00193 assert(bufSize <= fullBufSize); 00194 }

void LbmExecStreamTestBase::produceEntry ( LbmEntry & lbmEntry,
TupleAccessor & bitmapTupleAccessor,
PBuffer pBuf,
uint & bufSize,
uint & nBitmaps,
bool includeKeys
) [protected, inherited]

Definition at line 106 of file LbmExecStreamTestBase.cpp.

References LbmExecStreamTestBase::bitmapTupleDesc, BitmapInput::bufArray, ValuesExecStreamParams::bufSize, BitmapInput::currBufSize, ExecStreamEmbryo::getStream(), ExecStreamEmbryo::init(), SingleOutputExecStreamParams::outputTupleDesc, and ValuesExecStreamParams::pTupleBuffer.

Referenced by LbmIntersectExecStreamTest::testIntersect(), LbmMinusExecStreamTest::testMinus(), LbmMinusExecStreamTest::testRestartingMinus(), and LbmUnionExecStreamTest::testUnion().

Definition at line 120 of file LbmExecStreamTestBase.cpp.

References ExternalSortExecStreamParams::distinctness, DUP_ALLOW, ExternalSortExecStreamParams::earlyClose, ExternalSortExecStreamParams::estimatedNumRows, ExecStreamEmbryo::getStream(), ExecStreamEmbryo::init(), ExternalSortExecStreamParams::keyProj, MAXU, ExternalSortExecStream::newExternalSortExecStream(), CacheTestBase::pCache, SegStorageTestBase::pRandomSegment, SegStorageTestBase::pSegmentFactory, ExternalSortExecStreamParams::pTempSegment, and ExternalSortExecStreamParams::storeFinalRun.

Referenced by LbmSortedAggExecStreamTest::testSortedAgg(), and LbmUnionExecStreamTest::testUnion().

uint LbmExecStreamTestBase::resultBitmapSize ( uint start,
uint end
) [inline, protected, inherited]

Calculates size of result bitmap.

Parameters:

start start of result range, inclusive
end end of result range, exclusive

Definition at line 339 of file LbmExecStreamTestBase.h.

Referenced by LbmMinusExecStreamTest::test2Inputs(), LbmIntersectExecStreamTest::test2Inputs(), LbmMinusExecStreamTest::test3Inputs(), LbmIntersectExecStreamTest::test3Inputs(), LbmMinusExecStreamTest::testAnchorLarger1(), LbmMinusExecStreamTest::testAnchorLarger2(), LbmMinusExecStreamTest::testChildrenLarger(), LbmIntersectExecStreamTest::testGaps(), LbmIntersectExecStreamTest::testLargeInputs(), LbmMinusExecStreamTest::testLargeOutput(), LbmIntersectExecStreamTest::testLargeOutput(), LbmIntersectExecStreamTest::testSingleBitmaps(), LbmUnionExecStreamTest::testUnion(), and LbmIntersectExecStreamTest::testZeros().

uint LbmExecStreamTestBase::resultBitmapSize ( uint nRids ) [inline, protected, inherited]

Definition at line 344 of file LbmExecStreamTestBase.h.

00345 { 00346
00347
00348
00349 uint extraSpace = 16; 00350 return (nRids / 8) + extraSpace; 00351 }

void LbmExecStreamTestBase::initKeyBitmap ( uint nRows,
std::vector< int > const & repeatSeqValues
) [protected, inherited]

Initialize bitmaps with keys.

Definition at line 216 of file LbmExecStreamTestBase.cpp.

References LbmExecStreamTestBase::attrDesc_int64, LbmExecStreamTestBase::bitmapTupleDesc, TupleData::compute(), TupleAccessor::compute(), FixedBuffer, LbmExecStreamTestBase::generateBitmaps(), TupleAccessor::getMaxByteCount(), LbmExecStreamTestBase::getTupleInterval(), LbmExecStreamTestBase::keyBitmapBuf, LbmExecStreamTestBase::keyBitmapBufSize, LbmExecStreamTestBase::keyBitmapTupleAccessor, LbmExecStreamTestBase::keyBitmapTupleData, and LbmExecStreamTestBase::keyBitmapTupleDesc.

Referenced by LbmNormalizerExecStreamTest::testNormalizer(), LbmMinusExecStreamTest::testRestartingMinus(), and LbmSortedAggExecStreamTest::testSortedAgg().

uint LbmExecStreamTestBase::getTupleInterval ( std::vector< int > const & repeatSeqValues,
uint nKeys = 0
) [static, inherited]

Defines and prepares a graph consisting of one source stream and one transform stream.

Parameters:

sourceStreamEmbryo embryonic source stream which produces tuples
transformStreamEmbryo embryonic transform stream which processes tuples produced by sourceStreamEmbryo

Returns:

output buffer stream

Definition at line 48 of file ExecStreamUnitTestBase.cpp.

Referenced by LcsClusterReplaceExecStreamTest::loadCluster(), LcsRowScanExecStreamTest::loadOneCluster(), ExecStreamUnitTestBase::prepareSourceGraph(), LcsClusterReplaceExecStreamTest::replaceCluster(), LcsMultiClusterAppendTest::scanCols(), LbmSplicerExecStreamTest::spliceInput(), ExecStreamTestSuite::testBTreeInsertExecStream(), CollectExecStreamTestSuite::testCollectCollectUncollectUncollect(), CollectExecStreamTestSuite::testCollectInts(), CollectExecStreamTestSuite::testCollectUncollect(), CalcExecStreamTestSuite::testConstant(), ExecStreamTestSuite::testCopyExecStream(), ExecStreamTestSuite::testCountAggExecStream(), LhxAggExecStreamTest::testCountImpl(), ExecStreamTestSuite::testDoubleBufferExecStream(), ExecStreamTestSuite::testGroupAggExecStreamNrows(), LhxAggExecStreamTest::testGroupCountImpl(), ExternalSortExecStreamTest::testImpl(), LcsClusterAppendExecStreamTest::testLoadMultiCol(), LcsClusterAppendExecStreamTest::testLoadSingleCol(), LbmNormalizerExecStreamTest::testNormalizer(), ExecStreamTestSuite::testReshapeExecStream(), LcsRowScanExecStreamTest::testSampleScanCols(), LcsRowScanExecStreamTest::testScanCols(), testScanIdx(), LcsClusterAppendExecStreamTest::testScanMultiCol(), LcsClusterAppendExecStreamTest::testScanSingleCol(), ExecStreamTestSuite::testScratchBufferExecStream(), ExecStreamTestSuite::testSegBufferExecStream(), ExecStreamTestSuite::testSingleValueAggExecStream(), LhxAggExecStreamTest::testSingleValueImpl(), LbmSortedAggExecStreamTest::testSortedAgg(), ExecStreamTestSuite::testSumAggExecStream(), LhxAggExecStreamTest::testSumImpl(), LbmUnionExecStreamTest::testUnion(), and LcsClusterReplaceExecStreamTest::verifyCluster().

00051 { 00052 std::vector transforms; 00053 transforms.push_back(transformStreamEmbryo); 00054 return prepareTransformGraph(sourceStreamEmbryo, transforms); 00055 }

Defines and prepares a graph consisting of one source stream and one or multiple transform streams.

Parameters:

sourceStreamEmbryo embryonic source stream which produces tuples
transforms embryonic transform streams which process tuples produced by sourceStreamEmbryo or a child stream

Returns:

output buffer stream

Definition at line 57 of file ExecStreamUnitTestBase.cpp.

References BUFPROV_PRODUCER, ExecStreamEmbryo::getStream(), ExecStreamUnitTestBase::pGraph, and ExecStreamUnitTestBase::pGraphEmbryo.

00060 { 00061 pGraphEmbryo->saveStreamEmbryo(sourceStreamEmbryo); 00062 std::vector::iterator it; 00063 00064
00065 for (it = transforms.begin(); it != transforms.end(); ++it) { 00066 pGraphEmbryo->saveStreamEmbryo(*it); 00067 } 00068 00069
00070 ExecStreamEmbryo& previousStream = sourceStreamEmbryo; 00071 for (it = transforms.begin(); it != transforms.end(); ++it) { 00072 pGraphEmbryo->addDataflow( 00073 previousStream.getStream()->getName(), 00074 (*it).getStream()->getName()); 00075 previousStream = *it; 00076 } 00077 00078 SharedExecStream pAdaptedStream = 00079 pGraphEmbryo->addAdapterFor( 00080 previousStream.getStream()->getName(), 00081 0, 00082 BUFPROV_PRODUCER); 00083 pGraph->addOutputDataflow(pAdaptedStream->getStreamId()); 00084 00085 pGraphEmbryo->prepareGraph(shared_from_this(), ""); 00086 return pAdaptedStream; 00087 }

Defines and prepares a graph consisting of two source streams and one confluence stream.

Parameters:

sourceStreamEmbryo1 embryonic source stream which produces tuples
sourceStreamEmbryo2 embryonic source stream which produces tuples
confluenceStreamEmbryo embryonic confluence stream which processes tuples produced by the sourceStreamEmbryos

Returns:

output buffer stream

Definition at line 89 of file ExecStreamUnitTestBase.cpp.

Referenced by ExecStreamUnitTestBase::prepareConfluenceGraph(), ExecStreamTestSuite::testCartesianJoinExecStream(), CorrelationJoinExecStreamTestSuite::testCorrelationJoin(), LcsRowScanExecStreamTest::testFilterCols(), ExecStreamGovernorTest::testGovernor(), LhxJoinExecStreamTest::testImpl(), LbmIntersectExecStreamTest::testIntersect(), ExecStreamTestSuite::testMergeExecStream(), LbmMinusExecStreamTest::testMinus(), and ExecStreamTestSuite::testNestedLoopJoinExecStream().

00093 { 00094 std::vector sourceStreamEmbryos; 00095 sourceStreamEmbryos.push_back(sourceStreamEmbryo1); 00096 sourceStreamEmbryos.push_back(sourceStreamEmbryo2); 00097 return prepareConfluenceGraph(sourceStreamEmbryos, confluenceStreamEmbryo); 00098 }

Defines and prepares a graph consisting of a list of source streams and one confluence stream.

Parameters:

sourceStreamEmbryos list of embryonic source streams that produce tuples
confluenceStreamEmbryo embryonic confluence stream which processes tuples produced by the sourceStreamEmbryos

Returns:

output buffer stream

Definition at line 155 of file ExecStreamUnitTestBase.cpp.

References ExecStreamUnitTestBase::prepareConfluenceGraph().

00158 { 00159 std::vector<std::vector > sourceStreamEmbryosList; 00160 std::vector::iterator it; 00161 std::vector sourceStreamList; 00162 for (it = sourceStreamEmbryos.begin(); it != sourceStreamEmbryos.end(); 00163 it++) 00164 { 00165 sourceStreamList.clear(); 00166 sourceStreamList.push_back(*it); 00167 sourceStreamEmbryosList.push_back(sourceStreamList); 00168 } 00169 00170 return 00171 prepareConfluenceGraph(sourceStreamEmbryosList, confluenceStreamEmbryo); 00172 }

Defines and prepares a graph consisting of one or more source streams and one confluence stream.

Each source stream can be a list of streams.

Parameters:

sourceStreamEmbryosList list of embryonic source streams which produce tuples
confluenceStreamEmbryo embryonic confluence stream which processes tuples produced by the source streams

Returns:

output buffer stream

Definition at line 174 of file ExecStreamUnitTestBase.cpp.

References BUFPROV_PRODUCER, ExecStreamEmbryo::getStream(), ExecStreamUnitTestBase::pGraph, and ExecStreamUnitTestBase::pGraphEmbryo.

00177 { 00178 pGraphEmbryo->saveStreamEmbryo(confluenceStreamEmbryo); 00179 00180 for (int i = 0; i < sourceStreamEmbryosList.size(); i++) { 00181 for (int j = 0; j < sourceStreamEmbryosList[i].size(); j++) { 00182 pGraphEmbryo->saveStreamEmbryo(sourceStreamEmbryosList[i][j]); 00183 } 00184 00185
00186 for (int j = 1; j < sourceStreamEmbryosList[i].size(); j++) { 00187 pGraphEmbryo->addDataflow( 00188 sourceStreamEmbryosList[i][j - 1].getStream()->getName(), 00189 sourceStreamEmbryosList[i][j].getStream()->getName()); 00190 } 00191 pGraphEmbryo->addDataflow( 00192 sourceStreamEmbryosList[i].back().getStream()->getName(), 00193 confluenceStreamEmbryo.getStream()->getName()); 00194 } 00195 00196 SharedExecStream pAdaptedStream = 00197 pGraphEmbryo->addAdapterFor( 00198 confluenceStreamEmbryo.getStream()->getName(), 0, 00199 BUFPROV_PRODUCER); 00200 pGraph->addOutputDataflow( 00201 pAdaptedStream->getStreamId()); 00202 00203 pGraphEmbryo->prepareGraph(shared_from_this(), ""); 00204 00205 return pAdaptedStream; 00206 }

Defines and prepares a graph consisting of two source streams, one confluence stream, and one transform stream.

Parameters:

sourceStreamEmbryo1 embryonic source stream which produces tuples
sourceStreamEmbryo2 embryonic source stream which produces tuples
confluenceStreamEmbryo embryonic confluence stream which processes tuples produced by the sourceStreamEmbryos
transformStreamEmbryo embryonic transform streams which process tuples produced by a child stream

Returns:

output buffer stream

Definition at line 100 of file ExecStreamUnitTestBase.cpp.

References BUFPROV_PRODUCER, ExecStreamEmbryo::getStream(), ExecStreamUnitTestBase::pGraph, and ExecStreamUnitTestBase::pGraphEmbryo.

Referenced by LhxJoinExecStreamTest::testImpl(), and LbmMinusExecStreamTest::testRestartingMinus().

00105 { 00106 std::vector sourceStreamEmbryos; 00107 sourceStreamEmbryos.push_back(sourceStreamEmbryo1); 00108 sourceStreamEmbryos.push_back(sourceStreamEmbryo2); 00109 00110 std::vector::iterator it; 00111 00112 for (it = sourceStreamEmbryos.begin(); it != sourceStreamEmbryos.end(); 00113 ++it) 00114 { 00115 pGraphEmbryo->saveStreamEmbryo(*it); 00116 } 00117 pGraphEmbryo->saveStreamEmbryo(confluenceStreamEmbryo); 00118 00119 for (it = sourceStreamEmbryos.begin(); it != sourceStreamEmbryos.end(); 00120 ++it) 00121 { 00122 pGraphEmbryo->addDataflow( 00123 (*it).getStream()->getName(), 00124 confluenceStreamEmbryo.getStream()->getName()); 00125 } 00126 00127 std::vector transforms; 00128 transforms.push_back(transformStreamEmbryo); 00129 ExecStreamEmbryo& previousStream = confluenceStreamEmbryo; 00130 00131
00132 for (it = transforms.begin(); it != transforms.end(); ++it) { 00133 pGraphEmbryo->saveStreamEmbryo(*it); 00134 } 00135 00136 for (it = transforms.begin(); it != transforms.end(); ++it) { 00137 pGraphEmbryo->addDataflow( 00138 previousStream.getStream()->getName(), 00139 (*it).getStream()->getName()); 00140 previousStream = *it; 00141 } 00142 00143 00144 SharedExecStream pAdaptedStream = 00145 pGraphEmbryo->addAdapterFor( 00146 previousStream.getStream()->getName(), 00147 0, 00148 BUFPROV_PRODUCER); 00149 pGraph->addOutputDataflow(pAdaptedStream->getStreamId()); 00150 00151 pGraphEmbryo->prepareGraph(shared_from_this(), ""); 00152 return pAdaptedStream; 00153 }

Defines and prepares a graph consisting of a source, a splitter, and one or more parallel transform streams which flow together into a confluence stream.

Parameters:

srcStreamEmbryo embryonic source stream which produces tuples
splitterStreamEmbryo embryonic SplitterExecStream which produces tuples for multiple consumers
interStreamEmbryos embryonic intermediate streams which transform tuples; each stream consists of a single embryo
destStreamEmbryo embryonic confluence stream which processes tuples produced by the interStreamEmbryos
createSink if true (the default), creates a final output sink in the stream graph
saveSrc if true (the default), save the source in the stream graph; if false, the save has already been done

Returns:

output buffer stream or null stream if createSink is false

Definition at line 208 of file ExecStreamUnitTestBase.cpp.

Referenced by LcsMultiClusterAppendTest::loadClusters(), loadTableAndIndex(), LbmLoadBitmapTest::testLoad(), ExecStreamTestSuite::testMergeImplicitPullInputs(), ExecStreamTestSuite::testSegBufferReaderWriterExecStream(), and ExecStreamTestSuite::testSplitterPlusBarrier().

00215 { 00216 std::vector<std::vector > listOfList; 00217 00218
00219
00220
00221 for (uint i = 0; i < interStreamEmbryos.size(); i++) { 00222 std::vector interStreamEmbryoList; 00223 00224 interStreamEmbryoList.push_back(interStreamEmbryos[i]); 00225 listOfList.push_back(interStreamEmbryoList); 00226 } 00227 return prepareDAG( 00228 srcStreamEmbryo, splitterStreamEmbryo, listOfList, destStreamEmbryo, 00229 createSink, saveSrc); 00230 }

Defines and prepares a graph consisting of a source, a splitter, and one or more parallel transform streams which flow together into a confluence stream.

Parameters:

srcStreamEmbryo embryonic source stream which produces tuples
splitterStreamEmbryo embryonic SplitterExecStream which produces tuples for multiple consumers
interStreamEmbryosList one or more embryonic intermediate streams which transform tuples; each stream can have one more embryos
destStreamEmbryo embryonic confluence stream which processes tuples produced by the interStreamEmbryos
createSink if true (the default), creates a final output sink in the stream graph
saveSrc if true (the default), save the source in the stream graph; if false, the save has already been done

Returns:

output buffer stream or null stream if createSink is false

Definition at line 232 of file ExecStreamUnitTestBase.cpp.

References BUFPROV_PRODUCER, ExecStreamEmbryo::getStream(), ExecStreamUnitTestBase::pGraph, and ExecStreamUnitTestBase::pGraphEmbryo.

00239 { 00240 if (saveSrc) { 00241 pGraphEmbryo->saveStreamEmbryo(srcStreamEmbryo); 00242 } 00243 pGraphEmbryo->saveStreamEmbryo(splitterStreamEmbryo); 00244 00245
00246 for (int i = 0; i < interStreamEmbryos.size(); i++) { 00247 for (int j = 0; j < interStreamEmbryos[i].size(); j++) { 00248 pGraphEmbryo->saveStreamEmbryo(interStreamEmbryos[i][j]); 00249 } 00250 00251
00252 for (int j = 1; j < interStreamEmbryos[i].size(); j++) { 00253 pGraphEmbryo->addDataflow( 00254 interStreamEmbryos[i][j - 1].getStream()->getName(), 00255 interStreamEmbryos[i][j].getStream()->getName()); 00256 } 00257 } 00258 00259 pGraphEmbryo->saveStreamEmbryo(destStreamEmbryo); 00260 00261 pGraphEmbryo->addDataflow( 00262 srcStreamEmbryo.getStream()->getName(), 00263 splitterStreamEmbryo.getStream()->getName()); 00264 00265
00266 for (int i = 0; i < interStreamEmbryos.size(); i++) { 00267 pGraphEmbryo->addDataflow( 00268 splitterStreamEmbryo.getStream()->getName(), 00269 interStreamEmbryos[i][0].getStream()->getName()); 00270 pGraphEmbryo->addDataflow( 00271 interStreamEmbryos[i].back().getStream()->getName(), 00272 destStreamEmbryo.getStream()->getName()); 00273 } 00274 00275 SharedExecStream pAdaptedStream; 00276 00277 if (createSink) { 00278 pAdaptedStream = pGraphEmbryo->addAdapterFor( 00279 destStreamEmbryo.getStream()->getName(), 0, 00280 BUFPROV_PRODUCER); 00281 pGraph->addOutputDataflow(pAdaptedStream->getStreamId()); 00282 00283 pGraphEmbryo->prepareGraph(shared_from_this(), ""); 00284 } 00285 00286 return pAdaptedStream; 00287 }

Executes the prepared stream graph and verifies that its output matches that produced by a value generator.

Parameters:

stream output stream from which to read
nRowsExpected number of rows expected
verifier generator for expected values
stopEarly if true, stop once nRowsExpected have been fetched, even if more rows are available; this can be used for simulating the cleanup effect of an error in the middle of execution

Definition at line 325 of file ExecStreamUnitTestBase.cpp.

References TupleData::compute(), EXECBUF_EOS, MockProducerExecStreamGenerator::generateValue(), ExecStreamUnitTestBase::pGraph, ExecStreamTestBase::pResourceGovernor, and ExecStreamTestBase::pScheduler.

Referenced by LcsClusterReplaceExecStreamTest::loadCluster(), LcsMultiClusterAppendTest::loadClusters(), LcsRowScanExecStreamTest::loadOneCluster(), loadTableAndIndex(), LcsClusterReplaceExecStreamTest::replaceCluster(), LcsMultiClusterAppendTest::scanCols(), LbmSplicerExecStreamTest::spliceInput(), ExecStreamTestSuite::testBTreeInsertExecStream(), CollectExecStreamTestSuite::testCollectCollectUncollectUncollect(), CollectExecStreamTestSuite::testCollectUncollect(), CorrelationJoinExecStreamTestSuite::testCorrelationJoin(), ExecStreamTestSuite::testCountAggExecStream(), LhxAggExecStreamTest::testCountImpl(), ExecStreamTestSuite::testDoubleBufferExecStream(), LcsRowScanExecStreamTest::testFilterCols(), ExecStreamTestSuite::testGroupAggExecStreamNrows(), LhxAggExecStreamTest::testGroupCountImpl(), LhxJoinExecStreamTest::testImpl(), ExternalSortExecStreamTest::testImpl(), LbmLoadBitmapTest::testLoad(), LcsClusterAppendExecStreamTest::testLoadMultiCol(), LcsClusterAppendExecStreamTest::testLoadSingleCol(), ExecStreamTestSuite::testMergeImplicitPullInputs(), ExecStreamTestSuite::testNestedLoopJoinExecStream(), LbmNormalizerExecStreamTest::testNormalizer(), ExecStreamTestSuite::testReshapeExecStream(), LbmMinusExecStreamTest::testRestartingMinus(), LcsRowScanExecStreamTest::testSampleScanCols(), LcsRowScanExecStreamTest::testScanCols(), LcsClusterAppendExecStreamTest::testScanMultiCol(), LcsClusterAppendExecStreamTest::testScanSingleCol(), ExecStreamTestSuite::testScratchBufferExecStream(), ExecStreamTestSuite::testSingleValueAggExecStream(), LhxAggExecStreamTest::testSingleValueImpl(), LbmSortedAggExecStreamTest::testSortedAgg(), ExecStreamTestSuite::testSplitterPlusBarrier(), ExecStreamTestSuite::testSumAggExecStream(), LhxAggExecStreamTest::testSumImpl(), and LcsClusterReplaceExecStreamTest::verifyCluster().

00330 { 00331
00332 00333 pResourceGovernor->requestResources(*pGraph); 00334 pGraph->open(); 00335 pScheduler->start(); 00336 uint nRows = 0; 00337 for (;;) { 00338 ExecStreamBufAccessor &bufAccessor = 00339 pScheduler->readStream(stream); 00340 if (bufAccessor.getState() == EXECBUF_EOS) { 00341 break; 00342 } 00343 BOOST_REQUIRE(bufAccessor.isConsumptionPossible()); 00344 const uint nCol = 00345 bufAccessor.getConsumptionTupleAccessor().size(); 00346 BOOST_REQUIRE(nCol == bufAccessor.getTupleDesc().size()); 00347 BOOST_REQUIRE(nCol >= 1); 00348 TupleData inputTuple; 00349 inputTuple.compute(bufAccessor.getTupleDesc()); 00350 for (;;) { 00351 if (!bufAccessor.demandData()) { 00352 break; 00353 } 00354 BOOST_REQUIRE(nRows < nRowsExpected); 00355 bufAccessor.unmarshalTuple(inputTuple); 00356 for (int col = 0; col < nCol; ++col) { 00357 int64_t actualValue = 00358 *reinterpret_cast<int64_t const *>(inputTuple[col].pData); 00359 int64_t expectedValue = generator.generateValue(nRows, col); 00360 if (actualValue != expectedValue) { 00361 std::cout << "(Row, Col) = (" << nRows << ", " << col <<")" 00362 << std::endl; 00363 BOOST_CHECK_EQUAL(expectedValue,actualValue); 00364 return; 00365 } 00366 } 00367 bufAccessor.consumeTuple(); 00368 ++nRows; 00369 if (stopEarly && nRows == nRowsExpected) { 00370 return; 00371 } 00372 } 00373 } 00374 BOOST_CHECK_EQUAL(nRowsExpected,nRows); 00375 }

void ExecStreamUnitTestBase::verifyConstantOutput ( ExecStream & stream,
const TupleData & expectedTuple,
uint nRowsExpected
) [protected, inherited]

Executes the prepared stream graph and verifies that all output tuples matche an expected and given one.

Parameters:

stream output stream from which to read
expectedTuple
nRowsExpected

Definition at line 377 of file ExecStreamUnitTestBase.cpp.

References TupleData::compute(), EXECBUF_EOS, ExecStreamUnitTestBase::pGraph, ExecStreamTestBase::pResourceGovernor, TuplePrinter::print(), and ExecStreamTestBase::pScheduler.

Referenced by ExecStreamTestSuite::testCartesianJoinExecStream(), CollectExecStreamTestSuite::testCollectInts(), CalcExecStreamTestSuite::testConstant(), ExecStreamTestSuite::testCopyExecStream(), ExecStreamGovernorTest::testGovernor(), ExecStreamTestSuite::testMergeExecStream(), ExecStreamTestSuite::testSegBufferExecStream(), and ExecStreamTestSuite::testSegBufferReaderWriterExecStream().

00381 { 00382
00383 00384 pResourceGovernor->requestResources(*pGraph); 00385 pGraph->open(); 00386 pScheduler->start(); 00387 uint nRows = 0; 00388 for (;;) { 00389 ExecStreamBufAccessor &bufAccessor = 00390 pScheduler->readStream(stream); 00391 if (bufAccessor.getState() == EXECBUF_EOS) { 00392 break; 00393 } 00394 BOOST_REQUIRE(bufAccessor.isConsumptionPossible()); 00395 00396 if (!bufAccessor.demandData()) { 00397 break; 00398 } 00399 BOOST_REQUIRE(nRows < nRowsExpected); 00400 00401 TupleData actualTuple; 00402 actualTuple.compute(bufAccessor.getTupleDesc()); 00403 bufAccessor.unmarshalTuple(actualTuple); 00404 00405 int c = bufAccessor.getTupleDesc().compareTuples( 00406 expectedTuple, actualTuple); 00407 bufAccessor.consumeTuple(); 00408 ++nRows; 00409 if (c) { 00410 #if 1 00411 TupleDescriptor statusDesc = bufAccessor.getTupleDesc(); 00412 TuplePrinter tuplePrinter; 00413 tuplePrinter.print(std::cout, statusDesc, actualTuple); 00414 tuplePrinter.print(std::cout, statusDesc, expectedTuple); 00415 std::cout << std::endl; 00416 #endif 00417 BOOST_CHECK_EQUAL(0,c); 00418 break; 00419 } 00420 } 00421 BOOST_CHECK_EQUAL(nRowsExpected, nRows); 00422 }

Executes the prepared stream graph and verifies the resultant tuples against a set of tuples supplied in an input buffer.

Parameters:

stream output stream from which to read
outputTupleDesc descriptor of expected output tuple
nRowsExpected number of rows expected
expectedBuffer buffer containing expected tuples

Definition at line 424 of file ExecStreamUnitTestBase.cpp.

References TupleDescriptor::compareTuples(), TupleData::compute(), TupleAccessor::compute(), EXECBUF_EOS, TupleAccessor::getCurrentByteCount(), ExecStreamUnitTestBase::pGraph, ExecStreamTestBase::pResourceGovernor, ExecStreamTestBase::pScheduler, TupleAccessor::setCurrentTupleBuf(), and TupleAccessor::unmarshal().

Referenced by LbmIntersectExecStreamTest::testIntersect(), LbmMinusExecStreamTest::testMinus(), testScanIdx(), and LbmUnionExecStreamTest::testUnion().

00429 { 00430
00431 00432 TupleAccessor expectedOutputAccessor; 00433 expectedOutputAccessor.compute(outputTupleDesc); 00434 TupleData expectedTuple(outputTupleDesc); 00435 uint bufOffset = 0; 00436 pResourceGovernor->requestResources(*pGraph); 00437 pGraph->open(); 00438 pScheduler->start(); 00439 uint nRows = 0; 00440 for (;;) { 00441 ExecStreamBufAccessor &bufAccessor = 00442 pScheduler->readStream(stream); 00443 if (bufAccessor.getState() == EXECBUF_EOS) { 00444 break; 00445 } 00446 BOOST_REQUIRE(bufAccessor.getTupleDesc() == outputTupleDesc); 00447 BOOST_REQUIRE(bufAccessor.isConsumptionPossible()); 00448 const uint nCol = 00449 bufAccessor.getConsumptionTupleAccessor().size(); 00450 BOOST_REQUIRE(nCol == bufAccessor.getTupleDesc().size()); 00451 BOOST_REQUIRE(nCol >= 1); 00452 TupleData inputTuple; 00453 inputTuple.compute(bufAccessor.getTupleDesc()); 00454 for (;;) { 00455 if (!bufAccessor.demandData()) { 00456 break; 00457 } 00458 BOOST_REQUIRE(nRows < nRowsExpected); 00459 bufAccessor.unmarshalTuple(inputTuple); 00460 expectedOutputAccessor.setCurrentTupleBuf( 00461 expectedBuffer + bufOffset); 00462 expectedOutputAccessor.unmarshal(expectedTuple); 00463 int c = outputTupleDesc.compareTuples(inputTuple, expectedTuple); 00464 if (c) { 00465 std::cout << "(Row) = (" << nRows << ")" 00466 << " -- Tuples don't match"<< std::endl; 00467 BOOST_CHECK_EQUAL(0,c); 00468 return; 00469 } 00470 bufAccessor.consumeTuple(); 00471 bufOffset += expectedOutputAccessor.getCurrentByteCount(); 00472 ++nRows; 00473 } 00474 } 00475 BOOST_CHECK_EQUAL(nRowsExpected,nRows); 00476 }

| void ExecStreamUnitTestBase::resetExecStreamTest | ( | | ) | [protected, inherited] | | ------------------------------------------------ | - | | - | ------------------------ |

Reset stream graph so multiple iterations of a method can be called within a single testcase.

Definition at line 305 of file ExecStreamUnitTestBase.cpp.

References ExecStreamTestBase::newScheduler(), ExecStreamTestBase::newStreamGraph(), ExecStreamTestBase::newStreamGraphEmbryo(), ExecStreamUnitTestBase::pGraph, ExecStreamUnitTestBase::pGraphEmbryo, ExecStreamTestBase::pResourceGovernor, ExecStreamTestBase::pScheduler, and ExecStreamUnitTestBase::tearDownExecStreamTest().

Referenced by LcsRowScanExecStreamTest::loadClusters(), LbmLoadBitmapTest::testAppend(), LcsRowScanExecStreamTest::testBernoulliSampling(), LcsClusterReplaceExecStreamTest::testClusterReplace(), LcsRowScanExecStreamTest::testCompressedFiltering(), LbmSplicerExecStreamTest::testLER5968(), LbmSplicerExecStreamTest::testLER6473(), LcsMultiClusterAppendTest::testLoad(), LcsClusterAppendExecStreamTest::testMultiColConstNewRoot(), LcsClusterAppendExecStreamTest::testMultiColConstOldRoot(), LcsClusterAppendExecStreamTest::testMultiColNoDupNewRoot(), LcsClusterAppendExecStreamTest::testMultiColNoDupOldRoot(), LcsClusterAppendExecStreamTest::testMultiColStairNewRoot(), LcsClusterAppendExecStreamTest::testMultiColStairOldRoot(), testMultipleRanges(), ExecStreamGovernorTest::testReturnResources(), testScanIdx(), LcsRowScanExecStreamTest::testScanPastEndOfCluster(), LcsRowScanExecStreamTest::testScans(), LcsClusterAppendExecStreamTest::testSingleColConstNewRoot(), LcsClusterAppendExecStreamTest::testSingleColConstOldRoot(), LcsClusterAppendExecStreamTest::testSingleColNoDupNewRoot(), LcsClusterAppendExecStreamTest::testSingleColNoDupOldRoot(), LcsClusterAppendExecStreamTest::testSingleColStairNewRoot(), LcsClusterAppendExecStreamTest::testSingleColStairOldRoot(), LbmSplicerExecStreamTest::testSpliceRids(), LbmSplicerExecStreamTest::testSpliceWithKeys(), and LcsRowScanExecStreamTest::testSystemSampling().

| void ExecStreamUnitTestBase::tearDownExecStreamTest | ( | | ) | [protected, virtual, inherited] | | --------------------------------------------------- | - | | - | --------------------------------- |

void SegStorageTestBase::openStorage ( DeviceMode openMode ) [virtual, inherited]

Reimplemented from CacheTestBase.

Reimplemented in SegmentTestBase.

Definition at line 31 of file SegStorageTestBase.cpp.

References SegStorageTestBase::openSegmentStorage(), and CacheTestBase::openStorage().

Referenced by SegStorageTestBase::openRandomSegment(), SegmentTestBase::openStorage(), LhxHashTableTest::testCaseSetUp(), ExecStreamTestBase::testCaseSetUp(), BTreeTest::testCaseSetUp(), BTreeReadersTest::testCaseSetUp(), LbmEntryTest::testCaseSetUp(), SegPageIterTest::testIter(), SegPageEntryIterTest::testIter(), SegStreamTest::testMarkReset(), SegStreamTest::testReadSeg(), LogicalTxnTest::testTxn(), SegStreamTest::testWriteSeg(), and SegStreamTest::testWriteSpillAndRead().

void SegStorageTestBase::openSegmentStorage ( DeviceMode openMode ) [virtual, inherited]

| void SegStorageTestBase::openRandomSegment | ( | | ) | [virtual, inherited] | | ------------------------------------------ | - | | - | ---------------------- |

SharedSegment SegStorageTestBase::createLinearDeviceSegment ( DeviceId deviceId,
uint nPages
) [inherited]

| void SegStorageTestBase::closeLinearSegment | ( | | ) | [inherited] | | ------------------------------------------- | - | | - | ------------- |

| void SegStorageTestBase::closeRandomSegment | ( | | ) | [inherited] | | ------------------------------------------- | - | | - | ------------- |

| void SegStorageTestBase::closeVersionedRandomSegment | ( | | ) | [inherited] | | ---------------------------------------------------- | - | | - | ------------- |

| void SegStorageTestBase::closeSnapshotRandomSegment | ( | | ) | [inherited] | | --------------------------------------------------- | - | | - | ------------- |

| void SegStorageTestBase::closeStorage | ( | | ) | [virtual, inherited] | | ------------------------------------- | - | | - | ---------------------- |

Reimplemented from CacheTestBase.

Reimplemented in SnapshotSegmentTestBase, and VersionedSegmentTest.

Definition at line 102 of file SegStorageTestBase.cpp.

References SegStorageTestBase::closeLinearSegment(), SegStorageTestBase::closeRandomSegment(), CacheTestBase::closeStorage(), and SegStorageTestBase::closeVersionedRandomSegment().

Referenced by VersionedSegmentTest::closeStorage(), SnapshotSegmentTestBase::closeStorage(), SegStorageTestBase::openRandomSegment(), SegPageIterTest::testIter(), SegPageEntryIterTest::testIter(), SegStreamTest::testMarkReset(), SegStreamTest::testReadSeg(), SegmentTestBase::testSingleThread(), SegStreamTest::testWriteSeg(), and SegStreamTest::testWriteSpillAndRead().

| Cache & CacheTestBase::getCache | ( | | ) | [inherited] | | -------------------------------------------------- | - | | - | ------------- |

| SharedCache CacheTestBase::newCache | ( | | ) | [virtual, inherited] | | --------------------------------------------------------------------------------------------- | - | | - | ---------------------- |

void TestBase::snooze ( uint nSeconds ) [protected, inherited]
void TestBase::readParams ( int argc,
char ** argv
) [static, inherited]

Parses the command line.

format: [-v] [-t TEST | -all] {param=val}* [CONFIGFILE | -] Normally, the test program runs the default test cases. With the option "-all", runs the extra test cases as well. With the option "-t TEST", runs only the single test case named TEST. CONFIGFILE is read to load configuration parameters. Configuration parameters can also be set ad hoc, from the command line, as pairs name=val. These take precedence.

Definition at line 108 of file TestBase.cpp.

References TestBase::configMap, ConfigMap::dumpParams(), ConfigMap::isParamSet(), ConfigMap::mergeFrom(), TestBase::paramDictionaryFileName, ConfigMap::readParams(), TestBase::runAll, TestBase::runSingle, ConfigMap::setStringParam(), and verbose.

00109 { 00110 bool verbose = false; 00111 ConfigMap adhocMap; 00112 00113 for (int i = 1; i < argc; ++i) { 00114 std::string arg = argv[i]; 00115 if (argv[i][0] == '-') { 00116 if (arg == "-v") { 00117 verbose = true; 00118 } else if (arg == "-") { 00119 configMap.readParams(std::cin); 00120 } else if (arg == "-all") { 00121 runAll = true; 00122 } else if (arg == "-t") {
00123 permAssert(i + 1 < argc); 00124 runSingle = argv[++i]; 00125 } else if (arg[1] == 't') { 00126 runSingle = arg.substr(2); 00127 } 00128 } else { 00129 int i = arg.find("="); 00130 if ((0 < i) && (i < arg.size())) { 00131
00132 std::string key = arg.substr(0,i); 00133 std::string val = arg.substr(i + 1); 00134 adhocMap.setStringParam(key,val); 00135 } else { 00136
00137 std::ifstream configFile(arg.c_str()); 00138 assert(configFile.good()); 00139 configMap.readParams(configFile); 00140 } 00141 } 00142 } 00143 configMap.mergeFrom(adhocMap); 00144 00145
00146
00147 if (configMap.isParamSet(paramDictionaryFileName)) { 00148 std::string dictFileName = "dictWords"; 00149 configMap.setStringParam(paramDictionaryFileName,dictFileName); 00150 } 00151 00152 if (verbose) { 00153 configMap.dumpParams(std::cout); 00154 } 00155 }

| TestSuite * TestBase::releaseTestSuite | ( | | ) | [inherited] | | ---------------------------------------------------------------------------------------------- | - | | - | ------------- |

void TestBase::beforeTestCase ( std::string testCaseName ) [inherited]
void TestBase::afterTestCase ( std::string testCaseName ) [inherited]
void TestBase::notifyTrace ( std::string source,
TraceLevel level,
std::string message
) [virtual, inherited]
TraceLevel TestBase::getSourceTraceLevel ( std::string source ) [virtual, inherited]

Member Data Documentation

Tuple descriptor, tupledata, and accessor for a bitmap segment: (rid, segment descriptor, bitmap segments).

Definition at line 286 of file LbmExecStreamTestBase.h.

Referenced by LbmExecStreamTestBase::generateBitmaps(), initBTreeTupleDesc(), LbmExecStreamTestBase::initKeyBitmap(), LbmExecStreamTestBase::initValuesExecStream(), LbmExecStreamTestBase::testCaseSetUp(), LbmIntersectExecStreamTest::testIntersect(), LbmMinusExecStreamTest::testMinus(), testScanIdx(), LbmReaderTest::testSingleTupleReader(), and LbmUnionExecStreamTest::testUnion().

Definition at line 46 of file ExecStreamUnitTestBase.h.

Referenced by ExecStreamUnitTestBase::prepareConfluenceGraph(), ExecStreamUnitTestBase::prepareConfluenceTransformGraph(), ExecStreamUnitTestBase::prepareDAG(), ExecStreamUnitTestBase::prepareTransformGraph(), ExecStreamUnitTestBase::resetExecStreamTest(), LbmSplicerExecStreamTest::spliceInput(), ExecStreamUnitTestBase::tearDownExecStreamTest(), ExecStreamTestSuite::testBTreeInsertExecStream(), ExecStreamUnitTestBase::testCaseSetUp(), CorrelationJoinExecStreamTestSuite::testCorrelationJoin(), LhxJoinExecStreamTest::testImpl(), ExternalSortExecStreamTest::testImpl(), LbmLoadBitmapTest::testLoad(), ExecStreamTestSuite::testReshapeExecStream(), testScanIdx(), ExecStreamUnitTestBase::verifyBufferedOutput(), ExecStreamUnitTestBase::verifyConstantOutput(), FlatFileExecStreamTest::verifyOutput(), and ExecStreamUnitTestBase::verifyOutput().

Definition at line 51 of file ExecStreamTestBase.h.

Referenced by ExecStreamUnitTestBase::resetExecStreamTest(), ExternalSortExecStreamTest::testCaseSetUp(), ExecStreamUnitTestBase::testCaseSetUp(), ExecStreamTestBase::testCaseSetUp(), ExecStreamGovernorTest::testCaseSetUp(), ExecStreamTestBase::testCaseTearDown(), ExecStreamGovernorTest::testMinGreaterAllocation(), ExecStreamUnitTestBase::verifyBufferedOutput(), ExecStreamUnitTestBase::verifyConstantOutput(), FlatFileExecStreamTest::verifyOutput(), and ExecStreamUnitTestBase::verifyOutput().

Definition at line 40 of file SegStorageTestBase.h.

Referenced by BackupRestoreTest::backup(), SegStorageTestBase::createLinearDeviceSegment(), LogicalTxnTest::createRecoveryLog(), initBTreeExecStreamParam(), LbmLoadBitmapTest::initBTreeExecStreamParam(), LcsClusterReplaceExecStreamTest::initClusterAppendParams(), LbmExecStreamTestBase::initSorterExecStream(), LcsMultiClusterAppendTest::loadClusters(), LcsRowScanExecStreamTest::loadOneCluster(), loadTableAndIndex(), LbmMinusExecStreamTest::newMinusStream(), ExecStreamTestBase::newStreamGraphEmbryo(), SegStorageTestBase::openRandomSegment(), VersionedSegmentTest::openSegmentStorage(), SnapshotSegmentTestBase::openSegmentStorage(), LinearViewSegmentTest::openSegmentStorage(), BackupRestoreTest::restore(), SegStorageTestBase::SegStorageTestBase(), LbmSplicerExecStreamTest::spliceInput(), ExecStreamTestSuite::testBTreeInsertExecStream(), LhxHashTableTest::testCaseSetUp(), LcsClusterReplaceExecStreamTest::testClusterReplace(), LhxAggExecStreamTest::testCountImpl(), ExecStreamTestSuite::testDoubleBufferExecStream(), ExecStreamGovernorTest::testGovernor(), LhxAggExecStreamTest::testGroupCountImpl(), LhxJoinExecStreamTest::testImpl(), ExternalSortExecStreamTest::testImpl(), BTreeTest::testInserts(), LbmIntersectExecStreamTest::testIntersect(), LbmEntryTest::testldb35(), LbmEntryTest::testler5920(), LbmLoadBitmapTest::testLoad(), LcsClusterAppendExecStreamTest::testLoadMultiCol(), LcsClusterAppendExecStreamTest::testLoadSingleCol(), LbmEntryTest::testMergeEntry(), BTreeTest::testMultiKeySearches(), BTreeTest::testScan(), ExecStreamTestSuite::testScratchBufferExecStream(), LhxAggExecStreamTest::testSingleValueImpl(), FlatFileExecStreamTest::testStream(), LhxAggExecStreamTest::testSumImpl(), LogicalTxnTest::testTxn(), SnapshotSegmentTest::testUncommittedReads(), LbmUnionExecStreamTest::testUnion(), SegStreamTest::testWriteSpillAndRead(), and LbmEntryTest::testZeroBytes().

Segment supporting linear page allocation.

Definition at line 45 of file SegStorageTestBase.h.

Referenced by SegStorageTestBase::closeLinearSegment(), LogicalTxnTest::createRecoveryLog(), SegmentTestBase::lockPage(), SegStorageTestBase::openRandomSegment(), VersionedSegmentTest::openSegmentStorage(), SnapshotSegmentTestBase::openSegmentStorage(), SegStorageTestBase::openSegmentStorage(), LinearViewSegmentTest::openSegmentStorage(), SegmentTestBase::openStorage(), SegmentTestBase::prefetchPage(), SnapshotSegmentTestBase::testAllocateAll(), LinearViewSegmentTest::testAllocateAll(), VersionedSegmentTest::testCheckpoint(), SegmentTestBase::testCheckpoint(), SegPageIterTest::testIter(), SegPageEntryIterTest::testIter(), SegStreamTest::testMarkReset(), SegStreamTest::testReadSeg(), VersionedSegmentTest::testRecovery(), LogicalTxnTest::testTxn(), SnapshotSegmentTest::testUncommittedReads(), SegStreamTest::testWriteSeg(), and VersionedSegmentTest::verifyPage().

(Optional) segment supporting random page allocation.

Definition at line 50 of file SegStorageTestBase.h.

Referenced by SegStorageTestBase::closeRandomSegment(), SnapshotSegmentTestBase::closeStorage(), LbmSplicerExecStreamTest::createBTree(), LbmSplicerExecStreamTest::initBTreeParam(), initBTreeParam(), LbmLoadBitmapTest::initBTreeParam(), LbmLoadBitmapTest::initBTreeTupleDesc(), LcsClusterReplaceExecStreamTest::initClusterAppendParams(), LbmExecStreamTestBase::initSorterExecStream(), LcsClusterReplaceExecStreamTest::loadCluster(), LcsMultiClusterAppendTest::loadClusters(), LcsRowScanExecStreamTest::loadOneCluster(), loadTableAndIndex(), SegStorageTestBase::openRandomSegment(), SnapshotSegmentTestBase::openSegmentStorage(), LinearViewSegmentTest::openSegmentStorage(), SegmentTestBase::openStorage(), SegmentTestBase::testAllocate(), RandomAllocationSegmentTest::testAllocateAndDeallocate(), ExecStreamTestSuite::testBTreeInsertExecStream(), BTreeTest::testBulkLoad(), LhxHashTableTest::testCaseSetUp(), BTreeTest::testCaseSetUp(), BTreeReadersTest::testCaseSetUp(), LcsRowScanExecStreamTest::testCaseSetUp(), LcsMultiClusterAppendTest::testCaseSetUp(), LcsClusterReplaceExecStreamTest::testCaseSetUp(), LcsClusterAppendExecStreamTest::testCaseSetUp(), LbmExecStreamTestBase::testCaseSetUp(), LcsClusterReplaceExecStreamTest::testClusterReplace(), LhxAggExecStreamTest::testCountImpl(), SegmentTestBase::testDeallocate(), LhxAggExecStreamTest::testGroupCountImpl(), LhxJoinExecStreamTest::testImpl(), ExternalSortExecStreamTest::testImpl(), BTreeTest::testInserts(), LbmLoadBitmapTest::testLoad(), LcsClusterAppendExecStreamTest::testLoadMultiCol(), LcsClusterAppendExecStreamTest::testLoadSingleCol(), ExecStreamTestSuite::testMergeImplicitPullInputs(), BTreeTest::testMultiKeySearches(), BTreeReadersTest::testReaders(), LcsRowScanExecStreamTest::testScanOnEmptyCluster(), ExecStreamTestSuite::testSegBufferExecStream(), ExecStreamTestSuite::testSegBufferReaderWriterExecStream(), LhxAggExecStreamTest::testSingleValueImpl(), LhxAggExecStreamTest::testSumImpl(), and LbmUnionExecStreamTest::testUnion().

Cache instance being tested.

Definition at line 63 of file CacheTestBase.h.

Referenced by BackupRestoreTest::backup(), CacheTestBase::closeDevice(), CacheTestBase::closeStorage(), LbmSplicerExecStreamTest::createBTree(), SegStorageTestBase::createLinearDeviceSegment(), LogicalTxnTest::createRecoveryLog(), BackupRestoreTest::createSnapshotData(), BackupRestoreTest::executeSnapshotTxn(), CacheTestBase::getCache(), initBTreeExecStreamParam(), LbmLoadBitmapTest::initBTreeExecStreamParam(), initBTreeParam(), LbmLoadBitmapTest::initBTreeParam(), LcsClusterReplaceExecStreamTest::initClusterAppendParams(), LbmExecStreamTestBase::initSorterExecStream(), LcsClusterReplaceExecStreamTest::loadCluster(), LcsMultiClusterAppendTest::loadClusters(), LcsRowScanExecStreamTest::loadOneCluster(), loadTableAndIndex(), SegmentTestBase::lockPage(), LbmMinusExecStreamTest::newMinusStream(), ExecStreamTestBase::newStreamGraphEmbryo(), CacheTestBase::openDevice(), CacheTestBase::openStorage(), LcsClusterReplaceExecStreamTest::replaceCluster(), BackupRestoreTest::restore(), LbmSplicerExecStreamTest::spliceInput(), SegmentTestBase::testAllocate(), RandomAllocationSegmentTest::testAllocateAndDeallocate(), BackupRestoreTest::testBackupCleanup(), ExecStreamTestSuite::testBTreeInsertExecStream(), BTreeTest::testBulkLoad(), LhxHashTableTest::testCaseSetUp(), ExecStreamUnitTestBase::testCaseSetUp(), BTreeTest::testCaseSetUp(), BTreeReadersTest::testCaseSetUp(), LhxAggExecStreamTest::testCountImpl(), SegmentTestBase::testDeallocate(), SnapshotSegmentTest::testDeallocateOld(), ExecStreamTestSuite::testDoubleBufferExecStream(), ExecStreamGovernorTest::testGovernor(), LhxAggExecStreamTest::testGroupCountImpl(), BackupRestoreTest::testHeaderBackupRestore(), LhxJoinExecStreamTest::testImpl(), ExternalSortExecStreamTest::testImpl(), BTreeTest::testInserts(), LbmIntersectExecStreamTest::testIntersect(), SegPageIterTest::testIter(), SegPageEntryIterTest::testIter(), CacheTest::testLargeCacheInit(), CacheTest::testLargeCacheRequest(), LbmEntryTest::testldb35(), LbmEntryTest::testler5920(), LbmLoadBitmapTest::testLoad(), LcsClusterAppendExecStreamTest::testLoadMultiCol(), LcsClusterAppendExecStreamTest::testLoadSingleCol(), SegStreamTest::testMarkReset(), LbmEntryTest::testMergeEntry(), BTreeTest::testMultiKeySearches(), CacheTest::testQuotaCacheAccessor(), BTreeReadersTest::testReaders(), SegStreamTest::testReadSeg(), BTreeTest::testScan(), LcsRowScanExecStreamTest::testScanOnEmptyCluster(), ExecStreamTestSuite::testScratchBufferExecStream(), LhxAggExecStreamTest::testSingleValueImpl(), FlatFileExecStreamTest::testStream(), LhxAggExecStreamTest::testSumImpl(), LogicalTxnTest::testTxn(), LogicalTxnTest::testTxnIdSequence(), LbmUnionExecStreamTest::testUnion(), SegStreamTest::testWriteSeg(), SegStreamTest::testWriteSpillAndRead(), LbmEntryTest::testZeroBytes(), and BackupRestoreTest::verifySnapshotData().

Size of device in disk pages.

Definition at line 78 of file CacheTestBase.h.

Referenced by CacheTestBase::CacheTestBase(), LinearViewSegmentTest::LinearViewSegmentTest(), CacheTest::makeBlockId(), VersionedSegmentTest::openSegmentStorage(), SnapshotSegmentTestBase::openSegmentStorage(), LinearViewSegmentTest::openSegmentStorage(), CacheTestBase::openStorage(), SegStreamTest::SegStreamTest(), SnapshotSegmentTestBase::SnapshotSegmentTestBase(), SnapshotSegmentTest::testDeallocateOld(), PagingTestBase::testPrefetch(), PagingTestBase::testPrefetchBatch(), PagingTestBase::testRandomOp(), SnapshotSegmentTest::testRollback(), PagingTestBase::testSequentialOp(), and PagingTestBase::testSkipOp().

Configuration parameters.

The reason this is static is so that no constructor parameters (which burden virtual bases) are needed.

Definition at line 155 of file TestBase.h.

Referenced by TestBase::afterTestCase(), TestBase::beforeTestCase(), BTreeTxnTest::BTreeTxnTest(), CacheTestBase::CacheTestBase(), BackupRestoreTest::createSnapshotData(), DatabaseTest::DatabaseTest(), TestOptionsTest::extra(), DatabaseTest::loadDatabase(), SparseBitmapTest::openStorage(), PagingTestBase::PagingTestBase(), ParallelExecStreamSchedulerTest::ParallelExecStreamSchedulerTest(), RandomAccessFileDeviceTest::RandomAccessFileDeviceTest(), TestBase::readParams(), SegStorageTestBase::SegStorageTestBase(), TestOptionsTest::test1(), TestOptionsTest::test2(), BackupRestoreTest::testBackupCleanup(), TestBase::TestBase(), BTreeTxnTest::testCaseSetUp(), BTreeTxnTest::testCheckpoint(), DatabaseTest::testCreateEmpty(), DatabaseTest::testForceTxns(), BackupRestoreTest::testHeaderBackupRestore(), SegPageEntryIterTest::testIter(), SegStreamTest::testRead(), BTreeTxnTest::testTxns(), SegStreamTest::testWrite(), ThreadedTestBase::ThreadedTestBase(), and TestBase::~TestBase().


The documentation for this class was generated from the following file:


Generated on Mon Jun 22 04:00:35 2009 for Fennel by doxygen 1.5.1