|
@@ -23388,24 +23388,29 @@ public:
|
|
|
if (_graphNode.getPropBool("att[@name='_isSpill']/@value", false) || _graphNode.getPropBool("att[@name='_isSpillGlobal']/@value", false))
|
|
|
return; // ignore 'spills'
|
|
|
bool isLocal = _graphNode.getPropBool("att[@name='local']/@value") && queryFactory.queryChannel()!=0;
|
|
|
- bool isOpt = _graphNode.getPropBool("att[@name='_isOpt']/@value") || pretendAllOpt;
|
|
|
- const char *fileName = queryNodeFileName(_graphNode);
|
|
|
- const char *indexName = queryNodeIndexName(_graphNode);
|
|
|
- if (indexName && (!fileName || !streq(indexName, fileName)))
|
|
|
+ ThorActivityKind kind = getActivityKind(_graphNode);
|
|
|
+ if (kind != TAKdiskwrite && kind != TAKindexwrite && kind != TAKpiperead && kind != TAKpipewrite)
|
|
|
{
|
|
|
- indexfile.setown(queryFactory.queryPackage().lookupFileName(indexName, isOpt, true, true, queryFactory.queryWorkUnit()));
|
|
|
- if (indexfile)
|
|
|
- keySet.setown(indexfile->getKeyArray(NULL, &layoutTranslators, isOpt, isLocal ? queryFactory.queryChannel() : 0, false));
|
|
|
- }
|
|
|
- if (fileName)
|
|
|
- {
|
|
|
- datafile.setown(_queryFactory.queryPackage().lookupFileName(fileName, isOpt, true, true, queryFactory.queryWorkUnit()));
|
|
|
- if (datafile)
|
|
|
+ const char *fileName = queryNodeFileName(_graphNode, kind);
|
|
|
+ const char *indexName = queryNodeIndexName(_graphNode, kind);
|
|
|
+ if (indexName)
|
|
|
{
|
|
|
- if (isLocal)
|
|
|
- files.setown(datafile->getIFileIOArray(isOpt, queryFactory.queryChannel()));
|
|
|
- else
|
|
|
- map.setown(datafile->getFileMap());
|
|
|
+ bool isOpt = pretendAllOpt || _graphNode.getPropBool("att[@name='_isIndexOpt']/@value");
|
|
|
+ indexfile.setown(queryFactory.queryPackage().lookupFileName(indexName, isOpt, true, true, queryFactory.queryWorkUnit()));
|
|
|
+ if (indexfile)
|
|
|
+ keySet.setown(indexfile->getKeyArray(NULL, &layoutTranslators, isOpt, isLocal ? queryFactory.queryChannel() : 0, false));
|
|
|
+ }
|
|
|
+ if (fileName)
|
|
|
+ {
|
|
|
+ bool isOpt = pretendAllOpt || _graphNode.getPropBool("att[@name='_isOpt']/@value");
|
|
|
+ datafile.setown(_queryFactory.queryPackage().lookupFileName(fileName, isOpt, true, true, queryFactory.queryWorkUnit()));
|
|
|
+ if (datafile)
|
|
|
+ {
|
|
|
+ if (isLocal)
|
|
|
+ files.setown(datafile->getIFileIOArray(isOpt, queryFactory.queryChannel()));
|
|
|
+ else
|
|
|
+ map.setown(datafile->getFileMap());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -24953,7 +24958,7 @@ public:
|
|
|
if (!isHalfKeyed && !variableFetchFileName)
|
|
|
{
|
|
|
bool isFetchOpt = (helper->getFetchFlags() & FFdatafileoptional) != 0;
|
|
|
- datafile.setown(_queryFactory.queryPackage().lookupFileName(queryNodeFileName(_graphNode), isFetchOpt, true, true, _queryFactory.queryWorkUnit()));
|
|
|
+ datafile.setown(_queryFactory.queryPackage().lookupFileName(queryNodeFileName(_graphNode, _kind), isFetchOpt, true, true, _queryFactory.queryWorkUnit()));
|
|
|
if (datafile)
|
|
|
{
|
|
|
if (isLocal)
|