virtual void init() { CSortBaseActivityMaster::init(); IHThorSortArg *helper = (IHThorSortArg *)queryHelper(); IHThorAlgorithm *algo = static_cast<IHThorAlgorithm *>(helper->selectInterface(TAIalgorithm_1)); OwnedRoxieString algoname(algo->getAlgorithm()); unsigned flags = algo->getAlgorithmFlags(); if (algoname && (0 != stricmp(algoname, "quicksort"))) { Owned<IException> e = MakeActivityException(this, 0, "Ignoring, unsupported sort order algorithm '%s'", algoname.get()); reportExceptionToWorkunit(container.queryJob().queryWorkUnit(), e); } OwnedRoxieString cosortlogname(helper->getSortedFilename()); if (cosortlogname&&*cosortlogname) { Owned<IDistributedFile> coSortFile = queryThorFileManager().lookup(container.queryJob(), cosortlogname); addReadFile(coSortFile); Owned<IFileDescriptor> fileDesc = coSortFile->getFileDescriptor(); unsigned o; for (o=0; o<fileDesc->numParts(); o++) { Owned<IPartDescriptor> partDesc = fileDesc->getPart(o); if (cosortfilenames.length()) cosortfilenames.append("|"); // JCSMORE - picking the primary here, means no automatic use of backup copy, could use RMF's possibly. getPartFilename(*partDesc, 0, cosortfilenames); } } }
void init(MemoryBuffer &data, MemoryBuffer &slaveData) { helper = (IHThorSortArg *)queryHelper(); iCompare = helper->queryCompare(); IHThorAlgorithm * algo = helper?(static_cast<IHThorAlgorithm *>(helper->selectInterface(TAIalgorithm_1))):NULL; unstable = (algo&&algo->getAlgorithmFlags()&TAFunstable); appendOutputLinked(this); }
virtual void init() { IHThorSortArg *helper = (IHThorSortArg *)queryHelper(); IHThorAlgorithm *algo = static_cast<IHThorAlgorithm *>(helper->selectInterface(TAIalgorithm_1)); char const *algoname = algo->queryAlgorithm(); unsigned flags = algo->getAlgorithmFlags(); if (algoname && (0 != stricmp(algoname, "quicksort"))) { Owned<IException> e = MakeActivityException(this, 0, "Ignoring, unsupported sort order algorithm '%s'", algoname); reportExceptionToWorkunit(container.queryJob().queryWorkUnit(), e); } }
bool isUnstable() { IHThorAlgorithm * algo = helper?(static_cast<IHThorAlgorithm *>(helper->selectInterface(TAIalgorithm_1))):NULL; return (algo&&algo->getAlgorithmFlags()&TAFunstable); }