|
@@ -1320,6 +1320,10 @@ extern IQueryFactory *createServerQueryFactory(const char *id, const IQueryDll *
|
|
|
::Release(dll);
|
|
|
return cached;
|
|
|
}
|
|
|
+ assertex(dll->queryWorkUnit());
|
|
|
+ unsigned wuVersion = dll->queryWorkUnit()->getCodeVersion();
|
|
|
+ if (wuVersion > ACTIVITY_INTERFACE_VERSION || wuVersion < MIN_ACTIVITY_INTERFACE_VERSION)
|
|
|
+ throw MakeStringException(ROXIE_MISMATCH, "Workunit was compiled for eclhelper interface version %d, this roxie requires version %d..%d", wuVersion, MIN_ACTIVITY_INTERFACE_VERSION, ACTIVITY_INTERFACE_VERSION);
|
|
|
Owned<CRoxieServerQueryFactory> newFactory = new CRoxieServerQueryFactory(id, dll, dynamic_cast<const IRoxiePackage&>(package), hashValue);
|
|
|
newFactory->load(stateInfo);
|
|
|
return newFactory.getClear();
|
|
@@ -1569,6 +1573,10 @@ IQueryFactory *createSlaveQueryFactory(const char *id, const IQueryDll *dll, con
|
|
|
::Release(dll);
|
|
|
return cached;
|
|
|
}
|
|
|
+ assertex(dll->queryWorkUnit());
|
|
|
+ unsigned wuVersion = dll->queryWorkUnit()->getCodeVersion();
|
|
|
+ if (wuVersion > ACTIVITY_INTERFACE_VERSION || wuVersion < MIN_ACTIVITY_INTERFACE_VERSION)
|
|
|
+ throw MakeStringException(ROXIE_MISMATCH, "Workunit was compiled for eclhelper interface version %d, this roxie requires version %d..%d", wuVersion, MIN_ACTIVITY_INTERFACE_VERSION, ACTIVITY_INTERFACE_VERSION);
|
|
|
Owned<CSlaveQueryFactory> newFactory = new CSlaveQueryFactory(id, dll, dynamic_cast<const IRoxiePackage&>(package), hashValue, channel);
|
|
|
newFactory->load(stateInfo);
|
|
|
return newFactory.getClear();
|