, ['meta.arrayID', 'meta.arrayHash', 'meta.pageMultExp', 'meta.stripeParam1', 'meta.stripeParam2', 'meta.numberOfPages']); ?> ; printf("The disk array can use multiple stripes. How many stripes should we use?\n"); cin >> meta.HDNo; FATALIF( meta.HDNo<1 || meta.HDNo > 1000, "The number of disks is unacceptable"); printf("Pattern for the stripes fies. Use %%d for the position of the numbers. The numbering starts at 1\n"); string pattern; cin >> pattern; <?php grokit\sql_statement_parametric_norez(<<<'EOT' " INSERT INTO Stripes(diskID, arrayID, fileName) VALUES (?1, ?2, ?3); " EOT , ['int', 'int', 'text'], []); ?> ; for (uint64_t i=0; i<meta.HDNo; i++){ char fileName[1000]; sprintf(fileName, pattern.c_str(), i+1); HDThread::CreateStripe(fileName, meta.arrayHash, i, MMAP_PAGE_SIZE << meta.pageMultExp); <?php grokit\sql_instantiate_parameters(['i', 'meta.arrayID', 'fileName']); ?> ; } <?php
grokit\sql_instantiate_parameters(['_id', '_relID', '(typ).c_str()', '(jType).c_str()', '(na).c_str()', '_uniq']); ?> ; attCont.Advance(); } <?php grokit\sql_parametric_end(); ?> ; if( clustered ) { <?php grokit\sql_statement_parametric_norez(<<<'EOT' " INSERT INTO CatalogClusters(relID, attID) VALUES (?1, ?2) " EOT , ['int', 'int']); ?> int _attId = clusterAtt.GetIndex(); <?php grokit\sql_instantiate_parameters(['_relID', '_attId']); ?> <?php grokit\sql_parametric_end(); ?> }
<?php grokit\sql_instantiate_parameters(['colit', 'chunkit', 'relID', 'chunkMetaD[chunkit].colMetaData[colit].startPage', 'chunkMetaD[chunkit].colMetaData[colit].sizePages', 'chunkMetaD[chunkit].colMetaData[colit].sizeBytes', 'chunkMetaD[chunkit].colMetaData[colit].startPageCompr', 'chunkMetaD[chunkit].colMetaData[colit].sizePagesCompr', 'chunkMetaD[chunkit].colMetaData[colit].sizeBytesCompr']); ?> ; } } <?php grokit\sql_parametric_end(); ?> ; // Now flush all fragment info for each column <?php grokit\sql_statement_parametric_norez(<<<'EOT' " INSERT INTO Fragment(relID, chunkID, colNo, endPos) VALUES (?1, ?2, ?3, ?4); " EOT , ['int', 'int', 'int', 'int'], []); ?> ; for (uint64_t chunkit = 0; chunkit < chunkMetaD.size(); chunkit++) { for (uint64_t colit = 0; colit < chunkMetaD[chunkit].colMetaData.size(); colit++) { // iterate through ranges for (uint64_t i = 0; i < chunkMetaD[chunkit].colMetaData[colit].fragments.startPositions.size(); i++) { <?php grokit\sql_instantiate_parameters(['relID', 'chunkit', 'colit', 'chunkMetaD[chunkit].colMetaData[colit].fragments.startPositions[i]']); ?> ; } } }
; <?php grokit\sql_statements_norez(<<<'EOT' " DELETE FROM "Dictionary_%s"; " EOT , ['name']); ?> ; <?php grokit\sql_statement_parametric_norez(<<<'EOT' " INSERT INTO "Dictionary_%s" ("id", "order", "str") VALUES (?1, ?2, ?3); " EOT , ['int', 'int', 'text'], ['name']); ?> ; // iterate through the dictionary for( IndexMap::const_iterator it = indexMap.begin(); it != indexMap.end(); ++it ) { IntType id = it->first; StringType s = it->second; IntType order = orderMap[id]; const char * str = s.c_str(); <?php grokit\sql_instantiate_parameters(['id', 'order', 'str']); ?> ; }
<?php grokit\sql_statements_norez(<<<'EOT' " DELETE FROM DiskAllocatorState WHERE arrayID=%d; " EOT , ['mDiskArrayID']); ?> ; <?php grokit\sql_statement_parametric_norez(<<<'EOT' " INSERT INTO DiskAllocatorState(arrayID, relID, startPage, size, nextFreePage, lastPage) VALUES (?1, ?2, ?3, ?4, ?5, ?6); " EOT , ['int', 'int', 'int', 'int', 'int', 'int'], []); ?> ; // iterate allocated chunks for (map<uint64_t, ChunkList*>::iterator it = mRelationIDToChunkList.begin(); it != mRelationIDToChunkList.end(); ++it) { uint64_t rel = it->first; ChunkList* l = it->second; for (uint64_t i = 0; i < (l->listOfChunks).size(); i++) { uint64_t startPg = ((l->listOfChunks)[i]->startPage); uint64_t sz = ((l->listOfChunks)[i]->size); uint64_t n = (l->listOfChunks)[i]->nextFreePage; //printf("startPg = %d, sz = %d, n = %d, rel = %d, diskArrayID = %d, lastPage = %d\n", startPg, sz, n, rel, mDiskArrayID, mLastPage); <?php