瀏覽代碼

HPCC-12149 Clean up unused workunit fields

Removed some more that as far as I can tell are never used.

Remove parentWuid support.

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 10 年之前
父節點
當前提交
d4419febe8

+ 2 - 8
common/fileview2/fvdisksource.cpp

@@ -641,13 +641,11 @@ bool TranslatedDiskDataSource::createHelperWU()
 
     // MORE: Where should we get these parameters from ????
     StringAttr application("fileViewer");
-    StringAttr customerid("viewer");
 
     Owned<IWorkUnitFactory> factory = getWorkUnitFactory();
-    Owned<IWorkUnit> workunit = factory->createWorkUnit(NULL, application, username);
+    Owned<IWorkUnit> workunit = factory->createWorkUnit(application, username);
     workunit->setUser(username);
     workunit->setClusterName(cluster);  
-    workunit->setCustomerId(customerid);
     workunit->setAction(WUActionCompile);
 
     StringBuffer jobName;
@@ -660,7 +658,6 @@ bool TranslatedDiskDataSource::createHelperWU()
     query->setQueryText(eclText.str());
     query->setQueryName(jobName.str());
 
-    workunit->setCompareMode(CompareModeOff);
     StringAttrAdaptor xxx(helperWuid); workunit->getWuid(xxx);
     return true;
 }
@@ -715,13 +712,11 @@ bool IndirectDiskDataSource::createBrowseWU()
     // MORE: Where should we get these parameters from ????
     StringAttr application("fileViewer");
     StringAttr owner("fileViewer");
-    StringAttr customerid("viewer");
 
     Owned<IWorkUnitFactory> factory = getWorkUnitFactory();
-    Owned<IWorkUnit> workunit = factory->createWorkUnit(NULL, application, owner);
+    Owned<IWorkUnit> workunit = factory->createWorkUnit(application, owner);
     workunit->setUser(owner);
     workunit->setClusterName(cluster);  
-    workunit->setCustomerId(customerid);
 
     StringBuffer jobName;
     jobName.append("FileView_for_").append(logicalName);
@@ -733,7 +728,6 @@ bool IndirectDiskDataSource::createBrowseWU()
     query->setQueryText(eclText.str());
     query->setQueryName(jobName.str());
 
-    workunit->setCompareMode(CompareModeOff);
     StringAttrAdaptor xxx(browseWuid); workunit->getWuid(xxx);
     return true;
 }

+ 1 - 5
common/fileview2/fvquerysource.cpp

@@ -68,8 +68,6 @@ bool QueryDataSource::createBrowseWU()
         return false;
     returnedRecord.set(browseWUcode->queryChild(0)->queryRecord());
 
-    StringAttr tempAttr;
-    StringAttrAdaptor temp(tempAttr);
     Owned<IWorkUnitFactory> factory = getWorkUnitFactory();
     Owned<IConstWorkUnit> parent = factory->openWorkUnit(wuid, false);
 
@@ -78,11 +76,9 @@ bool QueryDataSource::createBrowseWU()
     parent->getClusterName(acluster);
     parent->getUser(user);
 
-    Owned<IWorkUnit> workunit = factory->createWorkUnit(NULL, "fileViewer", user.str());
+    Owned<IWorkUnit> workunit = factory->createWorkUnit("fileViewer", user.str());
     workunit->setUser(user.str());
     workunit->setClusterName(cluster);
-    workunit->setCustomerId(parent->getCustomerId(temp).str());
-    workunit->setCompareMode(CompareModeOff);   // ? parent->getCompareMode()
     StringAttrAdaptor bwa(browseWuid); workunit->getWuid(bwa);
 
     workunit->setDebugValueInt("importImplicitModules", false, true);

+ 1 - 1
common/fileview2/fvresultset.cpp

@@ -3334,7 +3334,7 @@ extern FILEVIEW_API void writeFullWorkUnitResults(const char *username, const ch
                     SCMStringBuffer name;
                     ds.getResultName(name);
                     Owned<INewResultSet> nr = factory->createNewResultSet(&ds, wuid.str());
-                    const IProperties *xmlns = ds.queryXmlns();
+                    const IProperties *xmlns = ds.queryResultXmlns();
                     writeResultXml(writer, nr.get(), name.str(), 0, 0, (flags & WorkUnitXML_InclSchema) ? name.str() : NULL, xmlns);
                 }
             }

+ 18 - 108
common/workunit/workunit.cpp

@@ -581,10 +581,10 @@ class CLocalWorkUnit : public CInterface, implements IConstWorkUnit , implements
 public:
     IMPLEMENT_IINTERFACE;
 
-    CLocalWorkUnit(IRemoteConnection *_conn, ISecManager *secmgr, ISecUser *secuser, const char *parentWuid = NULL);
+    CLocalWorkUnit(IRemoteConnection *_conn, ISecManager *secmgr, ISecUser *secuser);
     CLocalWorkUnit(IRemoteConnection *_conn, IPropertyTree* root, ISecManager *secmgr, ISecUser *secuser);
     ~CLocalWorkUnit();
-    CLocalWorkUnit(const char *dummyWuid, const char *parentWuid, ISecManager *secmgr, ISecUser *secuser);
+    CLocalWorkUnit(const char *dummyWuid, ISecManager *secmgr, ISecUser *secuser);
     IPropertyTree *getUnpackedTree(bool includeProgress) const;
 
     ISecManager *querySecMgr(){return secMgr.get();}
@@ -608,9 +608,6 @@ public:
     virtual bool requiresLocalFileUpload() const;
     virtual bool getIsQueryService() const;
     virtual IStringVal & getClusterName(IStringVal & str) const;
-    virtual unsigned getCombineQueries() const;
-    virtual WUCompareMode getCompareMode() const;
-    virtual IStringVal & getCustomerId(IStringVal & str) const;
     virtual bool hasDebugValue(const char * propname) const;
     virtual IStringVal & getDebugValue(const char * propname, IStringVal & str) const;
     virtual IStringIterator & getDebugValues() const;
@@ -631,7 +628,6 @@ public:
     virtual IConstWUGraph * getGraph(const char *name) const;
     virtual IConstWUGraphProgress * getGraphProgress(const char * name) const;
     virtual IStringVal & getJobName(IStringVal & str) const;
-    virtual IStringVal & getParentWuid(IStringVal & str) const;
     virtual IConstWUPlugin * getPluginByName(const char * name) const;
     virtual IConstWUPluginIterator & getPlugins() const;
     virtual IConstWULibraryIterator & getLibraries() const;
@@ -682,7 +678,6 @@ public:
     virtual bool getRunningGraph(IStringVal &graphName, WUGraphIDType &subId) const;
     virtual bool isProtected() const;
     virtual bool isPausing() const;
-    virtual bool isBilled() const;
     virtual IWorkUnit& lock();
     virtual bool reload();
     virtual void requestAbort();
@@ -721,9 +716,6 @@ public:
     void setIsClone(bool value);
     void setClusterName(const char * value);
     void setCodeVersion(unsigned version, const char * buildVersion, const char * eclVersion);
-    void setCombineQueries(unsigned combine);
-    void setCompareMode(WUCompareMode value);
-    void setCustomerId(const char * value);
     void setDebugValue(const char * propname, const char * value, bool overwrite);
     void setDebugValueInt(const char * propname, int value, bool overwrite);
     void setJobName(const char * value);
@@ -741,7 +733,6 @@ public:
     void setTracingValueInt(const char * propname, int value);
     void setUser(const char * value);
     void setWuScope(const char * value);
-    void setBilled(bool billed);
     void setSnapshot(const char * value);
     void setTimeStamp(const char *application, const char *instance, const char *event, bool add);
     void setDebugAgentListenerPort(unsigned port);
@@ -967,12 +958,6 @@ public:
             { return c->getWuidVersion(); }
     virtual void getBuildVersion(IStringVal & buildVersion, IStringVal & eclVersion) const
             { c->getBuildVersion(buildVersion, eclVersion); }
-    virtual unsigned getCombineQueries() const
-            { return c->getCombineQueries(); }
-    virtual WUCompareMode getCompareMode() const
-            { return c->getCompareMode(); }
-    virtual IStringVal & getCustomerId(IStringVal & str) const
-            { return c->getCustomerId(str); }
     virtual bool hasDebugValue(const char * propname) const
             { return c->hasDebugValue(propname); }
     virtual IStringVal & getDebugValue(const char * propname, IStringVal & str) const
@@ -1011,8 +996,6 @@ public:
             { return c->getGraphProgress(name); }
     virtual IStringVal & getJobName(IStringVal & str) const
             { return c->getJobName(str); }
-    virtual IStringVal & getParentWuid(IStringVal & str) const
-            { return c->getParentWuid(str); }
     virtual IConstWUPlugin * getPluginByName(const char * name) const
             { return c->getPluginByName(name); }
     virtual IConstWUPluginIterator & getPlugins() const
@@ -1103,8 +1086,6 @@ public:
             { return c->isProtected(); }
     virtual bool isPausing() const
             { return c->isPausing(); }
-    virtual bool isBilled() const
-            { return c->isBilled(); }
     virtual IWorkUnit & lock()
             { ((CInterface *)this)->Link(); return (IWorkUnit &) *this; }
     virtual bool reload()
@@ -1156,8 +1137,6 @@ public:
             { c->addProcess(type, instance, pid, log); }
     virtual void protect(bool protectMode)
             { c->protect(protectMode); }
-    virtual void setBilled(bool billed)
-            { c->setBilled(billed); }
     virtual void setAction(WUAction action)
             { c->setAction(action); }
     virtual void setApplicationValue(const char * application, const char * propname, const char * value, bool overwrite)
@@ -1176,12 +1155,6 @@ public:
             { c->setClusterName(value); }
     virtual void setCodeVersion(unsigned version, const char * buildVersion, const char * eclVersion)
             { c->setCodeVersion(version, buildVersion, eclVersion); }
-    virtual void setCombineQueries(unsigned combine)
-            { c->setCombineQueries(combine); }
-    virtual void setCompareMode(WUCompareMode value)
-            { c->setCompareMode(value); }
-    virtual void setCustomerId(const char * value)
-            { c->setCustomerId(value); }
     virtual void setDebugValue(const char * propname, const char * value, bool overwrite)
             { c->setDebugValue(propname, value, overwrite); }
     virtual void setDebugValueInt(const char * propname, int value, bool overwrite)
@@ -1600,7 +1573,7 @@ public:
     virtual WUResultFormat getResultFormat() const;
     virtual unsigned    getResultHash() const;
     virtual bool        getResultIsAll() const;
-    virtual IProperties *queryXmlns();
+    virtual IProperties *queryResultXmlns();
 
     // interface IWUResult
     virtual void        setResultStatus(WUResultStatus status);
@@ -1633,7 +1606,7 @@ public:
     virtual void        setResultFormat(WUResultFormat format);
     virtual void        setResultXML(const char *val);
     virtual void        setResultRow(unsigned len, const void * data);
-    virtual void        setXmlns(const char *prefix, const char *uri);
+    virtual void        setResultXmlns(const char *prefix, const char *uri);
 };
 
 class CLocalWUPlugin : public CInterface, implements IWUPlugin
@@ -2027,11 +2000,11 @@ public:
         getXPath(wuRoot, name);
         IRemoteConnection* conn = sdsManager->connect(wuRoot.str(), session, RTM_LOCK_WRITE|RTM_CREATE_QUERY, SDS_LOCK_TIMEOUT);
         conn->queryRoot()->setProp("@xmlns:xsi", "http://www.w3.org/1999/XMLSchema-instance");
-        Owned<CLocalWorkUnit> cw = new CLocalWorkUnit(conn, (ISecManager *)NULL, NULL, (const char *)NULL);
+        Owned<CLocalWorkUnit> cw = new CLocalWorkUnit(conn, (ISecManager *)NULL, NULL);
         return &cw->lockRemote(false);
     }
 
-    virtual IWorkUnit* createNamedWorkUnit(const char *wuid,const char *parentWuid, const char *app, const char *user)
+    virtual IWorkUnit* createNamedWorkUnit(const char *wuid, const char *app, const char *user)
     {
         StringBuffer wuRoot;
         getXPath(wuRoot, wuid);
@@ -2042,7 +2015,7 @@ public:
             conn = sdsManager->connect(wuRoot.str(), session, RTM_LOCK_WRITE|RTM_CREATE, SDS_LOCK_TIMEOUT);
         conn->queryRoot()->setProp("@xmlns:xsi", "http://www.w3.org/1999/XMLSchema-instance");
         conn->queryRoot()->setPropInt("@wuidVersion", WUID_VERSION);
-        Owned<CLocalWorkUnit> cw = new CLocalWorkUnit(conn, (ISecManager*)NULL, NULL, parentWuid);
+        Owned<CLocalWorkUnit> cw = new CLocalWorkUnit(conn, (ISecManager*)NULL, NULL);
         IWorkUnit* ret = &cw->lockRemote(false);
         ret->setDebugValue("CREATED_BY", app, true);
         ret->setDebugValue("CREATED_FOR", user, true);
@@ -2050,7 +2023,7 @@ public:
             cw->setWuScope(user);
         return ret;
     }
-    virtual IWorkUnit* createWorkUnit(const char *parentWuid, const char *app, const char *user)
+    virtual IWorkUnit* createWorkUnit(const char *app, const char *user)
     {
         StringBuffer wuid("W");
         char result[32];
@@ -2063,7 +2036,7 @@ public:
             wuid.append('-').append(startSession());
         if (workUnitTraceLevel > 1)
             PrintLog("createWorkUnit created %s", wuid.str());
-        IWorkUnit* ret = createNamedWorkUnit(wuid.str(),parentWuid, app, user);
+        IWorkUnit* ret = createNamedWorkUnit(wuid.str(), app, user);
         if (workUnitTraceLevel > 1)
         {
             SCMStringBuffer wuidName;
@@ -2122,7 +2095,6 @@ public:
     }
     virtual IConstWorkUnitIterator * getWorkUnitsByOwner(const char * owner)
     {
-        // Not sure what to do about customerID vs user etc
         StringBuffer path("*");
         if (owner && *owner)
             path.append("[@submitID=\"").append(owner).append("\"]");
@@ -2762,10 +2734,10 @@ public:
         secMgr.set(&secmgr);
         secUser.set(&secuser);
     }
-    virtual IWorkUnit* createNamedWorkUnit(const char *wuid,const char *parentWuid, const char *app, const char *user)
+    virtual IWorkUnit* createNamedWorkUnit(const char *wuid, const char *app, const char *user)
     {
         checkWuScopeSecAccess(user, *secMgr.get(), secUser.get(), SecAccess_Write, "Create", true, true);
-        IWorkUnit *wu=factory->createNamedWorkUnit(wuid, parentWuid, app, user);
+        IWorkUnit *wu=factory->createNamedWorkUnit(wuid, app, user);
         if (wu)
         {
             CLockedWorkUnit* lw = dynamic_cast<CLockedWorkUnit*>(wu);
@@ -2774,10 +2746,10 @@ public:
         }
         return wu;
     }
-    virtual IWorkUnit* createWorkUnit(const char *parentWuid, const char *app, const char *user)
+    virtual IWorkUnit* createWorkUnit(const char *app, const char *user)
     {
         checkWuScopeSecAccess(user, *secMgr.get(), secUser.get(), SecAccess_Write, "Create", true, true);
-        IWorkUnit *wu=factory->createWorkUnit(parentWuid, app, user);
+        IWorkUnit *wu=factory->createWorkUnit(app, user);
         if (wu)
         {
             CLockedWorkUnit* lw = dynamic_cast<CLockedWorkUnit*>(wu);
@@ -2806,7 +2778,6 @@ public:
     //make cached workunits a non secure pass through for now.
     virtual IConstWorkUnitIterator * getWorkUnitsByOwner(const char * owner)
     {
-        // Not sure what to do about customerID vs user etc
         StringBuffer path("*");
         if (owner && *owner)
             path.append("[@submitID=\"").append(owner).append("\"]");
@@ -2939,13 +2910,11 @@ public:
 };
 //==========================================================================================
 
-CLocalWorkUnit::CLocalWorkUnit(IRemoteConnection *_conn, ISecManager *secmgr, ISecUser *secuser, const char *parentWuid) : connection(_conn)
+CLocalWorkUnit::CLocalWorkUnit(IRemoteConnection *_conn, ISecManager *secmgr, ISecUser *secuser) : connection(_conn)
 {
     connectAtRoot = true;
     init();
     p.setown(connection->getRoot());
-    if (parentWuid)
-        p->setProp("@parent", parentWuid);
     secMgr.set(secmgr);
     secUser.set(secuser);
 }
@@ -2992,14 +2961,12 @@ void CLocalWorkUnit::init()
 }
 
 // Dummy workunit support
-CLocalWorkUnit::CLocalWorkUnit(const char *_wuid, const char *parentWuid, ISecManager *secmgr, ISecUser *secuser)
+CLocalWorkUnit::CLocalWorkUnit(const char *_wuid, ISecManager *secmgr, ISecUser *secuser)
 {
     connectAtRoot = true;
     init();
     p.setown(createPTree(_wuid));
     p->setProp("@xmlns:xsi", "http://www.w3.org/1999/XMLSchema-instance");
-    if (parentWuid)
-        p->setProp("@parentWuid", parentWuid);
     secMgr.set(secmgr);
     secUser.set(secuser);
 }
@@ -3821,13 +3788,6 @@ void CLocalWorkUnit::remoteCheckAccess(IUserDescriptor *user, bool writeaccess)
 }
 
 
-IStringVal& CLocalWorkUnit::getParentWuid(IStringVal &str) const 
-{
-    CriticalBlock block(crit);
-    str.set(p->queryProp("@parent"));
-    return str;
-}
-
 void CLocalWorkUnit::setUser(const char * value) 
 { 
     CriticalBlock block(crit);
@@ -3854,19 +3814,6 @@ IStringVal& CLocalWorkUnit::getWuScope(IStringVal &str) const
     return str;
 }
 
-void CLocalWorkUnit::setCustomerId(const char * value) 
-{ 
-    CriticalBlock block(crit);
-    p->setProp("CustomerID", value); 
-}
-
-IStringVal& CLocalWorkUnit::getCustomerId(IStringVal &str) const 
-{
-    CriticalBlock block(crit);
-    str.set(p->queryProp("CustomerID"));
-    return str;
-}
-
 mapEnums priorityClasses[] = {
    { PriorityClassUnknown, "unknown" },
    { PriorityClassLow, "low" },
@@ -4918,18 +4865,6 @@ IUserDescriptor *CLocalWorkUnit::queryUserDescriptor() const
     return userDesc;
 }
 
-void CLocalWorkUnit::setCombineQueries(unsigned combine) 
-{
-    CriticalBlock block(crit);
-    p->setPropInt("COMBINE_QUERIES", combine);
-}
-
-unsigned CLocalWorkUnit::getCombineQueries() const 
-{
-    CriticalBlock block(crit);
-    return p->getPropInt("COMBINE_QUERIES");
-}
-
 bool CLocalWorkUnit::isProtected() const
 {
     CriticalBlock block(crit);
@@ -4957,18 +4892,6 @@ void CLocalWorkUnit::protect(bool protectMode)
     p->setPropBool("@protected", protectMode);
 }
 
-bool CLocalWorkUnit::isBilled() const
-{
-    CriticalBlock block(crit);
-    return p->getPropBool("@billed", false);
-}
-
-void CLocalWorkUnit::setBilled(bool value)
-{
-    CriticalBlock block(crit);
-    p->setPropBool("@billed", value);
-}
-
 void CLocalWorkUnit::setResultLimit(unsigned value)
 {
     CriticalBlock block(crit);
@@ -4981,18 +4904,6 @@ unsigned CLocalWorkUnit::getResultLimit() const
     return p->getPropInt("resultLimit");
 }
 
-void CLocalWorkUnit::setCompareMode(WUCompareMode value)
-{
-    CriticalBlock block(crit);
-    p->setPropInt("comparemode", (int)value);
-}
-
-WUCompareMode CLocalWorkUnit::getCompareMode() const
-{
-    CriticalBlock block(crit);
-    return (WUCompareMode) p->getPropInt("comparemode");
-}
-
 IStringVal & CLocalWorkUnit::getSnapshot(IStringVal & str) const
 {
     CriticalBlock block(crit);
@@ -5138,7 +5049,6 @@ void CLocalWorkUnit::copyWorkUnit(IConstWorkUnit *cached, bool all)
     updateProp(p, fromP, "@clusterName");
     updateProp(p, fromP, "allowedclusters");
     updateProp(p, fromP, "@submitID");
-    updateProp(p, fromP, "CustomerID");
     updateProp(p, fromP, "SNAPSHOT");
 
     //MORE: This is very adhoc.  All options that should be cloned should really be in a common branch
@@ -7775,7 +7685,7 @@ IStringVal& CLocalWUResult::getResultXml(IStringVal &str) const
     return str;
 }
 
-IProperties *CLocalWUResult::queryXmlns()
+IProperties *CLocalWUResult::queryResultXmlns()
 {
     CriticalBlock block(crit);
     if (xmlns)
@@ -7885,7 +7795,7 @@ void CLocalWUResult::setResultSchemaRaw(unsigned size, const void *schema)
 {
     p->setPropBin("SchemaRaw", size, schema);
 }
-void CLocalWUResult::setXmlns(const char *prefix, const char *uri)
+void CLocalWUResult::setResultXmlns(const char *prefix, const char *uri)
 {
     StringBuffer xpath("@xmlns");
     if (prefix && *prefix)
@@ -8597,7 +8507,7 @@ unsigned __int64 CLocalWUStatistic::getMax() const
 
 extern WORKUNIT_API ILocalWorkUnit * createLocalWorkUnit()
 {
-    Owned<CLocalWorkUnit> cw = new CLocalWorkUnit("W_LOCAL", NULL, (ISecManager*)NULL, NULL);
+    Owned<CLocalWorkUnit> cw = new CLocalWorkUnit("W_LOCAL", (ISecManager*)NULL, NULL);
     ILocalWorkUnit* ret = QUERYINTERFACE(&cw->lockRemote(false), ILocalWorkUnit);
     return ret;
 }

+ 5 - 25
common/workunit/workunit.hpp

@@ -148,17 +148,6 @@ enum WUAction
 };
 
 
-
-enum WUCompareMode
-{
-    CompareModeOff = 0,
-    CompareModeHole = 1,
-    CompareModeThor = 2,
-    CompareModeSize = 3
-};
-
-
-
 enum WUResultStatus
 {
     ResultStatusUndefined = 0,
@@ -300,7 +289,7 @@ interface IConstWUResult : extends IInterface
     virtual unsigned getResultHash() const = 0;
     virtual void getResultDecimal(void * val, unsigned length, unsigned precision, bool isSigned) const = 0;
     virtual bool getResultIsAll() const = 0;
-    virtual const IProperties *queryXmlns() = 0;
+    virtual const IProperties *queryResultXmlns() = 0;
 };
 
 
@@ -336,7 +325,7 @@ interface IWUResult : extends IConstWUResult
     virtual void setResultFormat(WUResultFormat format) = 0;
     virtual void setResultXML(const char * xml) = 0;
     virtual void setResultRow(unsigned len, const void * data) = 0;
-    virtual void setXmlns(const char *prefix, const char *uri) = 0;
+    virtual void setResultXmlns(const char *prefix, const char *uri) = 0;
 };
 
 
@@ -837,9 +826,6 @@ interface IConstWorkUnit : extends IInterface
     virtual bool requiresLocalFileUpload() const = 0;
     virtual bool getIsQueryService() const = 0;
     virtual IStringVal & getClusterName(IStringVal & str) const = 0;
-    virtual unsigned getCombineQueries() const = 0;
-    virtual WUCompareMode getCompareMode() const = 0;
-    virtual IStringVal & getCustomerId(IStringVal & str) const = 0;
     virtual bool hasDebugValue(const char * propname) const = 0;
     virtual IStringVal & getDebugValue(const char * propname, IStringVal & str) const = 0;
     virtual int getDebugValueInt(const char * propname, int defVal) const = 0;
@@ -854,7 +840,6 @@ interface IConstWorkUnit : extends IInterface
     virtual IConstWUGraph * getGraph(const char * name) const = 0;
     virtual IConstWUGraphProgress * getGraphProgress(const char * name) const = 0;
     virtual IStringVal & getJobName(IStringVal & str) const = 0;
-    virtual IStringVal & getParentWuid(IStringVal & str) const = 0;
     virtual IConstWUPlugin * getPluginByName(const char * name) const = 0;
     virtual IConstWUPluginIterator & getPlugins() const = 0;
     virtual IConstWULibraryIterator & getLibraries() const = 0;
@@ -902,7 +887,6 @@ interface IConstWorkUnit : extends IInterface
     virtual unsigned getCodeVersion() const = 0;
     virtual unsigned getWuidVersion() const  = 0;
     virtual void getBuildVersion(IStringVal & buildVersion, IStringVal & eclVersion) const = 0;
-    virtual bool isBilled() const = 0;
     virtual bool getWuDate(unsigned & year, unsigned & month, unsigned & day) = 0;
     virtual IPropertyTree * getDiskUsageStats() = 0;
     virtual IPropertyTreeIterator & getFileIterator() const = 0;
@@ -950,9 +934,6 @@ interface IWorkUnit : extends IConstWorkUnit
     virtual void incEventScheduledCount() = 0;
     virtual void setIsQueryService(bool cached) = 0;
     virtual void setClusterName(const char * value) = 0;
-    virtual void setCombineQueries(unsigned combine) = 0;
-    virtual void setCompareMode(WUCompareMode value) = 0;
-    virtual void setCustomerId(const char * value) = 0;
     virtual void setDebugValue(const char * propname, const char * value, bool overwrite) = 0;
     virtual void setDebugValueInt(const char * propname, int value, bool overwrite) = 0;
     virtual void setJobName(const char * value) = 0;
@@ -992,7 +973,6 @@ interface IWorkUnit : extends IConstWorkUnit
     virtual void addFile(const char * fileName, StringArray * clusters, unsigned usageCount, WUFileKind fileKind, const char * graphOwner) = 0;
     virtual void releaseFile(const char * fileName) = 0;
     virtual void setCodeVersion(unsigned version, const char * buildVersion, const char * eclVersion) = 0;
-    virtual void setBilled(bool value) = 0;
     virtual void deleteTempFiles(const char * graph, bool deleteOwned, bool deleteJobOwned) = 0;
     virtual void deleteTemporaries() = 0;
     virtual void addDiskUsageStats(__int64 avgNodeUsage, unsigned minNode, __int64 minNodeUsage, unsigned maxNode, __int64 maxNodeUsage, __int64 graphId) = 0;
@@ -1051,7 +1031,7 @@ interface IWUTimers : extends IInterface
 //! IWUFactory
 //! Used to instantiate WorkUnit components.
 
-class MemoryBuffer; // should define an SCMinterface for it
+class MemoryBuffer;
 
 interface ILocalWorkUnit : extends IWorkUnit
 {
@@ -1122,13 +1102,13 @@ typedef IIteratorOf<IPropertyTree> IConstQuerySetQueryIterator;
 
 interface IWorkUnitFactory : extends IInterface
 {
-    virtual IWorkUnit * createWorkUnit(const char * parentWuid, const char * app, const char * user) = 0;
+    virtual IWorkUnit * createWorkUnit(const char * app, const char * user) = 0;
     virtual bool deleteWorkUnit(const char * wuid) = 0;
     virtual IConstWorkUnit * openWorkUnit(const char * wuid, bool lock) = 0;
     virtual IConstWorkUnitIterator * getWorkUnitsByOwner(const char * owner) = 0;
     virtual IWorkUnit * updateWorkUnit(const char * wuid) = 0;
     virtual int setTracingLevel(int newlevel) = 0;
-    virtual IWorkUnit * createNamedWorkUnit(const char * wuid, const char * parentWuid, const char * app, const char * user) = 0;
+    virtual IWorkUnit * createNamedWorkUnit(const char * wuid, const char * app, const char * user) = 0;
     virtual IConstWorkUnitIterator * getWorkUnitsByState(WUState state) = 0;
     virtual IConstWorkUnitIterator * getWorkUnitsByECL(const char * ecl) = 0;
     virtual IConstWorkUnitIterator * getWorkUnitsByCluster(const char * cluster) = 0;

+ 1 - 1
ecl/eclagent/eclagent.cpp

@@ -3346,7 +3346,7 @@ extern int HTHOR_API eclagent_main(int argc, const char *argv[], StringBuffer *
             {
                 //Stand alone program, but dali is specified => create a workunit in dali, and store the results there....
                 Owned<IWorkUnitFactory> factory = getWorkUnitFactory();
-                Owned<IWorkUnit> daliWu = factory->createWorkUnit(NULL, "eclagent", "eclagent");
+                Owned<IWorkUnit> daliWu = factory->createWorkUnit("eclagent", "eclagent");
                 IExtendedWUInterface * extendedWu = queryExtendedWU(daliWu);
                 extendedWu->copyWorkUnit(standAloneWorkUnit, true);
                 daliWu->getWuid(wuid);

+ 2 - 2
ecl/hqlcpp/hqlhtcpp.cpp

@@ -5111,7 +5111,7 @@ void addDatasetResultXmlNamespaces(IWUResult &result, HqlExprArray &xmlnsAttrs,
         getUTF8Value(xmlnsURI, xmlns.queryChild(1));
         if (xmlnsURI.length())
         {
-            result.setXmlns(xmlnsPrefix, xmlnsURI);
+            result.setResultXmlns(xmlnsPrefix, xmlnsURI);
             if (xmlnsPrefix.length() && declaredPrefixes.find(xmlnsPrefix)==NotFound)
                 declaredPrefixes.append(xmlnsPrefix);
         }
@@ -5126,7 +5126,7 @@ void addDatasetResultXmlNamespaces(IWUResult &result, HqlExprArray &xmlnsAttrs,
         {
             StringBuffer uri("urn:hpccsystems:ecl:unknown:");
             uri.append(prefix);
-            result.setXmlns(prefix, uri);
+            result.setResultXmlns(prefix, uri);
         }
     }
 }

+ 2 - 34
ecl/wutest/wutest.cpp

@@ -47,12 +47,11 @@ bool dump(IConstWorkUnit &w, IProperties *globals)
     const char *action = globals->queryProp("#action");
     if (!action || stricmp(action, "list")==0)
     {
-        SCMStringBuffer wuid, jobname, state, parent;
+        SCMStringBuffer wuid, jobname, state;
         w.getWuid(wuid);
-        w.getParentWuid(parent);
         w.getStateDesc(state);
         w.getJobName(jobname);
-        printf("%-30s %-20s %-10s %-30s\n", wuid.str(), jobname.str(), state.str(), parent.str());
+        printf("%-30s %-20s %-10s\n", wuid.str(), jobname.str(), state.str());
     }
     else if (stricmp(action, "results")==0)
     {
@@ -320,37 +319,6 @@ int main(int argc, const char *argv[])
                 }
             }
 #endif
-            Owned<IConstWorkUnitIterator> it = factory->getWorkUnitsByOwner(globals->queryProp("OWNER"));
-            ForEach(*it)
-            {
-                IConstWorkUnit& w = it->query();
-                SCMStringBuffer pw;
-                w.getParentWuid(pw);
-                if (pw.length())
-                {
-                    Owned<IConstWorkUnit> p = factory->openWorkUnit(pw.str(), false);
-                    if (!p)
-                    {
-                        SCMStringBuffer wuidstr;
-                        w.getWuid(wuidstr);
-                        const char *wuid = wuidstr.str();
-                        printf("Orphaned child workunit %s\n", wuid);
-                        if (globals->getPropInt("remove", 0))
-                        {
-                            Owned<IWorkUnit> lw = &w.lock();
-                            lw->setState(WUStateArchived);  // we are killing anyway so it's irrelevent, but this will allow us to be sure we can kill it...
-                            lw->protect(false);
-                            lw.clear();
-                            killWuids.append(wuid);
-                        }
-                    }
-                }
-                ForEachItemIn(idx, killWuids)
-                {
-                    factory->deleteWorkUnit(killWuids.item(idx));
-                }
-                killWuids.kill();
-            }
         }
         else if (globals->hasProp("WUID"))
         {

+ 4 - 4
esp/services/ecldirect/EclDirectService.cpp

@@ -163,10 +163,10 @@ bool CEclDirectEx::onRunEcl(IEspContext &context, IEspRunEclRequest & req, IEspR
     Owned <IWorkUnitFactory> factory = getWorkUnitFactory(context.querySecManager(), context.queryUser());
     Owned <IWorkUnit> workunit;
     if (!user.length())
-        workunit.setown(factory->createWorkUnit(NULL, "ECL-Direct", ""));
+        workunit.setown(factory->createWorkUnit("ECL-Direct", ""));
     else
     {
-        workunit.setown(factory->createWorkUnit(NULL, "ECL-Direct", user.str()));
+        workunit.setown(factory->createWorkUnit("ECL-Direct", user.str()));
         workunit->setUser(user.str());
     }
 
@@ -247,10 +247,10 @@ bool CEclDirectEx::onRunEclEx(IEspContext &context, IEspRunEclExRequest & req, I
     Owned <IWorkUnitFactory> factory = getWorkUnitFactory(context.querySecManager(), context.queryUser());
     Owned <IWorkUnit> workunit;
     if (!user.length())
-        workunit.setown(factory->createWorkUnit(NULL, "ECL-Direct", ""));
+        workunit.setown(factory->createWorkUnit("ECL-Direct", ""));
     else
     {
-        workunit.setown(factory->createWorkUnit(NULL, "ECL-Direct", user.str()));
+        workunit.setown(factory->createWorkUnit("ECL-Direct", user.str()));
         workunit->setUser(user.str());
     }
 

+ 1 - 1
esp/services/ws_ecl/ws_ecl_service.cpp

@@ -2097,7 +2097,7 @@ int CWsEclBinding::submitWsEclWorkunit(IEspContext & context, WsEclWuInfo &wsinf
     IConstWorkUnit *sourceWorkUnit = wsinfo.ensureWorkUnit();
 
     Owned <IWorkUnitFactory> factory = getSecWorkUnitFactory(*context.querySecManager(), *context.queryUser());
-    Owned <IWorkUnit> workunit = factory->createWorkUnit(NULL, "wsecl", context.queryUserId());
+    Owned <IWorkUnit> workunit = factory->createWorkUnit("wsecl", context.queryUserId());
 
     IExtendedWUInterface *ext = queryExtendedWU(workunit);
     ext->copyWorkUnit(sourceWorkUnit, false);

+ 2 - 2
esp/services/ws_workunits/WUWrapper.hpp

@@ -45,8 +45,8 @@ public:
             throw MakeStringException(ECLWATCH_CANNOT_OPEN_WORKUNIT,"Could not open workunit %s",wuid);
     }
 
-    CWUWrapper(const char * parentWuid, const char * app, const char * user, IEspContext &context): 
-        factory(getSecWorkUnitFactory(*context.querySecManager(), *context.queryUser())), wu(factory->createWorkUnit(parentWuid, app, user))
+    CWUWrapper(const char * app, const char * user, IEspContext &context):
+        factory(getSecWorkUnitFactory(*context.querySecManager(), *context.queryUser())), wu(factory->createWorkUnit(app, user))
     {
         if(!wu)
             throw MakeStringException(ECLWATCH_CANNOT_CREATE_WORKUNIT,"Could not create workunit.");

+ 1 - 6
esp/services/ws_workunits/ws_workunitsHelpers.cpp

@@ -2068,12 +2068,7 @@ WsWuSearch::WsWuSearch(IEspContext& context,const char* owner,const char* state,
                 continue;
         }
 
-        SCMStringBuffer parent;
-        if (!cw.getParentWuid(parent).length())
-        {
-            parent.clear();
-            wuids.push_back(cw.getWuid(parent).str());
-        }
+        wuids.push_back(wuid.str());
     }
     std::sort(wuids.begin(),wuids.end(),std::greater<std::string>());
 }

+ 2 - 2
esp/services/ws_workunits/ws_workunitsHelpers.hpp

@@ -399,9 +399,9 @@ public:
     void create(IWorkUnitFactory *factory, IEspContext &context, const char *wuid)
     {
         if (wuid && *wuid)
-            setown(factory->createNamedWorkUnit(wuid, NULL, "ws_workunits", context.queryUserId()));
+            setown(factory->createNamedWorkUnit(wuid, "ws_workunits", context.queryUserId()));
         else
-            setown(factory->createWorkUnit(NULL, "ws_workunits", context.queryUserId()));
+            setown(factory->createWorkUnit("ws_workunits", context.queryUserId()));
         if(!get())
           throw MakeStringException(ECLWATCH_CANNOT_CREATE_WORKUNIT,"Could not create workunit.");
         get()->setUser(context.queryUserId());

+ 13 - 18
esp/services/ws_workunits/ws_workunitsService.cpp

@@ -1637,9 +1637,7 @@ void doWUQueryByFile(IEspContext &context, const char *logicalFile, IEspWUQueryR
     if (getWsWorkunitAccess(context, *cw) < SecAccess_Read)
         throw MakeStringException(ECLWATCH_ECL_WU_ACCESS_DENIED,"Cannot access the workunit for file %s.",logicalFile);
 
-    SCMStringBuffer parent;
-    if (!cw->getParentWuid(parent).length())
-        doWUQueryBySingleWuid(context, wuid.str(), resp);
+    doWUQueryBySingleWuid(context, wuid.str(), resp);
 
     resp.setFirst(false);
     resp.setPageSize(1);
@@ -1867,21 +1865,18 @@ void doWUQueryWithSort(IEspContext &context, IEspWUQueryRequest & req, IEspWUQue
             continue;
         }
 
-        SCMStringBuffer parent;
-        if (!cw.getParentWuid(parent).length())
+        SCMStringBuffer wuidStr;
+        const char* wuid = cw.getWuid(wuidStr).str();
+        if (!looksLikeAWuid(wuid))
         {
-            const char* wuid = cw.getWuid(parent).str();
-            if (!looksLikeAWuid(wuid))
-            {
-                numWUs--;
-                continue;
-            }
-            actualCount++;
-            Owned<IEspECLWorkunit> info = createECLWorkunit("","");
-            WsWuInfo winfo(context, wuid);
-            winfo.getCommon(*info, 0);
-            results.append(*info.getClear());
+            numWUs--;
+            continue;
         }
+        actualCount++;
+        Owned<IEspECLWorkunit> info = createECLWorkunit("","");
+        WsWuInfo winfo(context, wuid);
+        winfo.getCommon(*info, 0);
+        results.append(*info.getClear());
     }
 
     if (version > 1.02)
@@ -2370,11 +2365,11 @@ void getWsWuResult(IEspContext &context, const char* wuid, const char *name, con
     else
         rs.setown(resultSetFactory->createNewResultSet(result, wuid));
     if (!filterBy || !filterBy->length())
-        appendResultSet(mb, rs, name, start, count, total, bin, xsd, context.getResponseFormat(), result->queryXmlns());
+        appendResultSet(mb, rs, name, start, count, total, bin, xsd, context.getResponseFormat(), result->queryResultXmlns());
     else
     {
         Owned<INewResultSet> filteredResult = createFilteredResultSet(rs, filterBy);
-        appendResultSet(mb, filteredResult, name, start, count, total, bin, xsd, context.getResponseFormat(), result->queryXmlns());
+        appendResultSet(mb, filteredResult, name, start, count, total, bin, xsd, context.getResponseFormat(), result->queryResultXmlns());
     }
 }
 

+ 1 - 1
roxie/ccd/ccdcontext.cpp

@@ -2777,7 +2777,7 @@ public:
         {
             Owned<IConstWUResult> result = cw->getResultBySequence(seqNo);
             if (result)
-                return result->queryXmlns();
+                return result->queryResultXmlns();  // This is not safe - result is (theoretically, if not actually) freed!
         }
         return NULL;
     }