Explorar o código

Merge remote-tracking branch 'origin/candidate-3.10.x' into candidate-4.0.0

Conflicts:
	roxie/ccd/ccdserver.cpp

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman %!s(int64=12) %!d(string=hai) anos
pai
achega
84fccc3449

+ 1 - 1
common/workunit/workunit.cpp

@@ -2911,7 +2911,7 @@ bool CLocalWorkUnit::archiveWorkUnit(const char *base,bool del,bool ignoredllerr
     Owned<IPropertyTree> generatedDlls = createPTree("GeneratedDlls");
     ForEach(*iter) {
         IConstWUAssociatedFile & cur = iter->query();
-        cur.getName(name);
+        cur.getNameTail(name);
         if (name.length()) {
             Owned<IDllEntry> entry = queryDllServer().getEntry(name.str());
             if (entry.get()) {

+ 1 - 0
ecl/hthor/hthorkey.cpp

@@ -870,6 +870,7 @@ bool CHThorIndexReadActivity::nextPart()
         klManager.setown(createKeyMerger(keyIndexCache, keySize, seekGEOffset, NULL));
         keyIndexCache.clear();
         initManager(klManager);
+        callback.setManager(klManager);
         return true;
     }
     else if (seekGEOffset || localSortKey)

+ 8 - 9
testing/ecl/indexread.ecl

@@ -20,10 +20,10 @@
 
 // try it with just one limit
 
-o1 := output(LIMIT(DG_FetchIndex1(Lname='Anderson'),1,SKIP), {fname});
-o2 := output(LIMIT(DG_FetchIndex1(Lname='Anderson'),10,SKIP), {fname});
-o3 := output(LIMIT(DG_FetchIndex1(Lname='Anderson'),1,SKIP,KEYED), {fname});
-o4 := output(LIMIT(DG_FetchIndex1(Lname='Anderson'),10,SKIP,KEYED), {fname});
+o1 := output(LIMIT(DG_FetchIndex1(Lname='Anderson'),1,SKIP), {Lname,Fname,TRIM(tfn),state,TRIM(blobfield)});
+o2 := output(LIMIT(DG_FetchIndex1(Lname='Anderson'),10,SKIP), {Lname,Fname,TRIM(tfn),state,TRIM(blobfield)});
+o3 := output(LIMIT(DG_FetchIndex1(Lname='Anderson'),1,SKIP,KEYED), {Lname,Fname,TRIM(tfn),state,TRIM(blobfield)});
+o4 := output(LIMIT(DG_FetchIndex1(Lname='Anderson'),10,SKIP,KEYED), {Lname,Fname,TRIM(tfn),state,TRIM(blobfield)});
 
 // hack to get around codegen optimizing platform(),once call into global (and therefore hthor) context.
 nononcelib := 
@@ -32,17 +32,16 @@ varstring platform() : library='graph', include='eclhelper.hpp', ctxmethod, entr
     END;
 
 iresult := DG_FetchIndex1(Lname IN ['Anderson', 'Taylor']);
+
 lkresult := LIMIT(iresult,10,KEYED);
 lsresult := LIMIT(lkresult,10,SKIP);
 sresult := IF(nononcelib.platform() != 'hthor', SORT(lsresult,Lname), lsresult);
-o5 := output(sresult, {fname});
+o5 := output(sresult, {Lname,Fname,TRIM(tfn),state,TRIM(blobfield)});
 
 // then try with a keyed and unkeyed....
 
-
-
-o6 := output(LIMIT(LIMIT(DG_FetchIndex1(Lname='Anderson'),1,SKIP,keyed),1,skip), {fname});
-o7 := output(LIMIT(LIMIT(DG_FetchIndex1(Lname='Anderson'),10,SKIP,keyed),10,skip), {fname});
+o6 := output(LIMIT(LIMIT(DG_FetchIndex1(Lname='Anderson'),1,SKIP,keyed),1,skip), {Lname,Fname,TRIM(tfn),state,TRIM(blobfield)});
+o7 := output(LIMIT(LIMIT(DG_FetchIndex1(Lname='Anderson'),10,SKIP,keyed),10,skip), {Lname,Fname,TRIM(tfn),state,TRIM(blobfield)});
 
  o1:independent;
  o2:independent;

+ 21 - 21
testing/ecl/key/indexread.xml

@@ -1,35 +1,35 @@
 <Dataset name='Result 1'>
 </Dataset>
 <Dataset name='Result 2'>
- <Row><fname>Jane           </fname></Row>
- <Row><fname>Joe            </fname></Row>
- <Row><fname>John           </fname></Row>
- <Row><fname>Larry          </fname></Row>
- <Row><fname>Sue            </fname></Row>
+ <Row><lname>Anderson                 </lname><fname>Jane           </fname><_unnamed_3>Jane</_unnamed_3><state>FL</state><_unnamed_5>Jane           Anderson</_unnamed_5></Row>
+ <Row><lname>Anderson                 </lname><fname>Joe            </fname><_unnamed_3>Joe</_unnamed_3><state>FL</state><_unnamed_5>Joe            Anderson</_unnamed_5></Row>
+ <Row><lname>Anderson                 </lname><fname>John           </fname><_unnamed_3>John</_unnamed_3><state>FL</state><_unnamed_5>John           Anderson</_unnamed_5></Row>
+ <Row><lname>Anderson                 </lname><fname>Larry          </fname><_unnamed_3>Larry</_unnamed_3><state>FL</state><_unnamed_5>Larry          Anderson</_unnamed_5></Row>
+ <Row><lname>Anderson                 </lname><fname>Sue            </fname><_unnamed_3>Sue</_unnamed_3><state>FL</state><_unnamed_5>Sue            Anderson</_unnamed_5></Row>
 </Dataset>
 <Dataset name='Result 3'>
 </Dataset>
 <Dataset name='Result 4'>
- <Row><fname>Jane           </fname></Row>
- <Row><fname>Joe            </fname></Row>
- <Row><fname>John           </fname></Row>
- <Row><fname>Larry          </fname></Row>
- <Row><fname>Sue            </fname></Row>
+ <Row><lname>Anderson                 </lname><fname>Jane           </fname><_unnamed_3>Jane</_unnamed_3><state>FL</state><_unnamed_5>Jane           Anderson</_unnamed_5></Row>
+ <Row><lname>Anderson                 </lname><fname>Joe            </fname><_unnamed_3>Joe</_unnamed_3><state>FL</state><_unnamed_5>Joe            Anderson</_unnamed_5></Row>
+ <Row><lname>Anderson                 </lname><fname>John           </fname><_unnamed_3>John</_unnamed_3><state>FL</state><_unnamed_5>John           Anderson</_unnamed_5></Row>
+ <Row><lname>Anderson                 </lname><fname>Larry          </fname><_unnamed_3>Larry</_unnamed_3><state>FL</state><_unnamed_5>Larry          Anderson</_unnamed_5></Row>
+ <Row><lname>Anderson                 </lname><fname>Sue            </fname><_unnamed_3>Sue</_unnamed_3><state>FL</state><_unnamed_5>Sue            Anderson</_unnamed_5></Row>
 </Dataset>
 <Dataset name='Result 5'>
- <Row><fname>Jane           </fname></Row>
- <Row><fname>Joe            </fname></Row>
- <Row><fname>John           </fname></Row>
- <Row><fname>Larry          </fname></Row>
- <Row><fname>Sue            </fname></Row>
- <Row><fname>Frank          </fname></Row>
+ <Row><lname>Anderson                 </lname><fname>Jane           </fname><_unnamed_3>Jane</_unnamed_3><state>FL</state><_unnamed_5>Jane           Anderson</_unnamed_5></Row>
+ <Row><lname>Anderson                 </lname><fname>Joe            </fname><_unnamed_3>Joe</_unnamed_3><state>FL</state><_unnamed_5>Joe            Anderson</_unnamed_5></Row>
+ <Row><lname>Anderson                 </lname><fname>John           </fname><_unnamed_3>John</_unnamed_3><state>FL</state><_unnamed_5>John           Anderson</_unnamed_5></Row>
+ <Row><lname>Anderson                 </lname><fname>Larry          </fname><_unnamed_3>Larry</_unnamed_3><state>FL</state><_unnamed_5>Larry          Anderson</_unnamed_5></Row>
+ <Row><lname>Anderson                 </lname><fname>Sue            </fname><_unnamed_3>Sue</_unnamed_3><state>FL</state><_unnamed_5>Sue            Anderson</_unnamed_5></Row>
+ <Row><lname>Taylor                   </lname><fname>Frank          </fname><_unnamed_3>Frank</_unnamed_3><state>FL</state><_unnamed_5>Frank          Taylor</_unnamed_5></Row>
 </Dataset>
 <Dataset name='Result 6'>
 </Dataset>
 <Dataset name='Result 7'>
- <Row><fname>Jane           </fname></Row>
- <Row><fname>Joe            </fname></Row>
- <Row><fname>John           </fname></Row>
- <Row><fname>Larry          </fname></Row>
- <Row><fname>Sue            </fname></Row>
+ <Row><lname>Anderson                 </lname><fname>Jane           </fname><_unnamed_3>Jane</_unnamed_3><state>FL</state><_unnamed_5>Jane           Anderson</_unnamed_5></Row>
+ <Row><lname>Anderson                 </lname><fname>Joe            </fname><_unnamed_3>Joe</_unnamed_3><state>FL</state><_unnamed_5>Joe            Anderson</_unnamed_5></Row>
+ <Row><lname>Anderson                 </lname><fname>John           </fname><_unnamed_3>John</_unnamed_3><state>FL</state><_unnamed_5>John           Anderson</_unnamed_5></Row>
+ <Row><lname>Anderson                 </lname><fname>Larry          </fname><_unnamed_3>Larry</_unnamed_3><state>FL</state><_unnamed_5>Larry          Anderson</_unnamed_5></Row>
+ <Row><lname>Anderson                 </lname><fname>Sue            </fname><_unnamed_3>Sue</_unnamed_3><state>FL</state><_unnamed_5>Sue            Anderson</_unnamed_5></Row>
 </Dataset>

+ 2 - 2
testing/ecl/layouttrans.ecl

@@ -28,8 +28,8 @@ DG_FetchIndex1Alt1 := INDEX(DG_FetchFile,{Fname,Lname,__filepos},DG_FetchIndex1N
 DG_FetchIndex1Alt2 := INDEX(DG_FetchFile,{Fname,Lname,__filepos},DG_FetchIndex1Name);
 #ELSE
  #IF (useVarIndex=true)
- DG_FetchIndex1Alt1 := INDEX(DG_FetchFile,{Fname,Lname},{state, STRING100 x {blob}:= fname, STRING fn := TRIM(Fname), __filepos},DG_FetchIndex1Name);
- DG_FetchIndex1Alt2 := INDEX(DG_FetchFile,{Fname,Lname},{STRING100 x {blob}:= fname, __filepos},DG_FetchIndex1Name);
+ DG_FetchIndex1Alt1 := INDEX(DG_FetchFile,{Fname,Lname},{state, STRING blobfield {blob}:= fname, STRING tfn := TRIM(Fname), __filepos},DG_FetchIndex1Name);
+ DG_FetchIndex1Alt2 := INDEX(DG_FetchFile,{Fname,Lname},{ STRING blobfield {blob}:= fname, __filepos},DG_FetchIndex1Name);
  #ELSE
  DG_FetchIndex1Alt1 := INDEX(DG_FetchFile,{Fname,Lname},{state ,__filepos},DG_FetchIndex1Name);
  DG_FetchIndex1Alt2 := INDEX(DG_FetchFile,{Fname,Lname},{__filepos},DG_FetchIndex1Name);

+ 12 - 12
testing/ecl/setup/setup.txt

@@ -73,29 +73,29 @@ DG_FetchFilePreloadIndexed := PRELOAD(DATASET(DG_FetchFilePreloadIndexedName,{DG
 
 #IF (useLayoutTrans=false)
  #IF (usePayload=false)
-  DG_FetchIndex1 := INDEX(DG_FetchFile,{Lname,Fname,__filepos},DG_FetchIndex1Name);
-  DG_FetchIndex2 := INDEX(DG_FetchFile,{Lname,Fname, __filepos}, DG_FetchIndex2Name);
+  DG_FetchIndex1 := INDEX(DG_FetchFile,{Lname,Fname,STRING100 tfn := TRIM(Fname), state, STRING100 blobfield := fname+lname, __filepos},DG_FetchIndex1Name);
+  DG_FetchIndex2 := INDEX(DG_FetchFile,{Lname,Fname,STRING100 tfn := TRIM(Fname), state, STRING100 blobfield := fname+lname, __filepos}, DG_FetchIndex2Name);
  #ELSE
   #IF (useVarIndex=true)
-   DG_FetchIndex1 := INDEX(DG_FetchFile,{Lname,Fname},{STRING fn := TRIM(Fname), state, STRING100 x {blob}:= fname, __filepos},DG_FetchIndex1Name);
-   DG_FetchIndex2 := INDEX(DG_FetchFile,{Lname,Fname},{STRING fn := TRIM(Fname), state, STRING100 x {blob}:= fname, __filepos},DG_FetchIndex2Name);
+   DG_FetchIndex1 := INDEX(DG_FetchFile,{Lname,Fname},{STRING tfn := TRIM(Fname), state, STRING blobfield {blob}:= fname+lname, __filepos},DG_FetchIndex1Name);
+   DG_FetchIndex2 := INDEX(DG_FetchFile,{Lname,Fname},{STRING tfn := TRIM(Fname), state, STRING blobfield {blob}:= fname+lname, __filepos},DG_FetchIndex2Name);
   #ELSE
-   DG_FetchIndex1 := INDEX(DG_FetchFile,{Lname,Fname},{state ,__filepos},DG_FetchIndex1Name);
-   DG_FetchIndex2 := INDEX(DG_FetchFile,{Lname,Fname},{state, __filepos}, DG_FetchIndex2Name);
+   DG_FetchIndex1 := INDEX(DG_FetchFile,{Lname,Fname},{STRING100 tfn := TRIM(Fname), state, STRING100 blobfield := fname+lname, __filepos},DG_FetchIndex1Name);
+   DG_FetchIndex2 := INDEX(DG_FetchFile,{Lname,Fname},{STRING100 tfn := TRIM(Fname), state, STRING100 blobfield := fname+lname, __filepos}, DG_FetchIndex2Name);
   #END
  #END
 #ELSE
  // Declare all indexes such that layout translation is required... Used at run-time only, not at setup time...
  #IF (usePayload=false)
-  DG_FetchIndex1 := INDEX(DG_FetchFile,{Fname,Lname,__filepos},DG_FetchIndex1Name);
-  DG_FetchIndex2 := INDEX(DG_FetchFile,{Fname,Lname, __filepos}, DG_FetchIndex2Name);
+  DG_FetchIndex1 := INDEX(DG_FetchFile,{Fname,Lname,STRING100 tfn := TRIM(Fname), state, STRING100 blobfield := fname+lname, __filepos},DG_FetchIndex1Name);
+  DG_FetchIndex2 := INDEX(DG_FetchFile,{Fname,Lname,STRING100 tfn := TRIM(Fname), state, STRING100 blobfield := fname+lname, __filepos}, DG_FetchIndex2Name);
  #ELSE
   #IF (useVarIndex=true)
-   DG_FetchIndex1 := INDEX(DG_FetchFile,{Fname,Lname},{STRING fn := TRIM(Fname), state, STRING100 x {blob}:= fname, __filepos},DG_FetchIndex1Name);
-   DG_FetchIndex2 := INDEX(DG_FetchFile,{Fname,Lname},{STRING fn := TRIM(Fname), state, STRING100 x {blob}:= fname, __filepos},DG_FetchIndex2Name);
+   DG_FetchIndex1 := INDEX(DG_FetchFile,{Fname,Lname},{STRING tfn := TRIM(Fname), state, STRING blobfield {blob}:= fname+lname, __filepos},DG_FetchIndex1Name);
+   DG_FetchIndex2 := INDEX(DG_FetchFile,{Fname,Lname},{STRING tfn := TRIM(Fname), state, STRING blobfield {blob}:= fname+fname, __filepos},DG_FetchIndex2Name);
   #ELSE
-   DG_FetchIndex1 := INDEX(DG_FetchFile,{Fname,Lname},{state ,__filepos},DG_FetchIndex1Name);
-   DG_FetchIndex2 := INDEX(DG_FetchFile,{Fname,Lname},{state, __filepos}, DG_FetchIndex2Name);
+   DG_FetchIndex1 := INDEX(DG_FetchFile,{Fname,Lname},{STRING100 tfn := TRIM(Fname), state, STRING100 blobfield := fname+lname, __filepos},DG_FetchIndex1Name);
+   DG_FetchIndex2 := INDEX(DG_FetchFile,{Fname,Lname},{STRING100 tfn := TRIM(Fname), state, STRING100 blobfield := fname+lname, __filepos}, DG_FetchIndex2Name);
   #END
  #END
 #END

+ 6 - 6
testing/ecl/setup/setup_fetch.ecl

@@ -61,17 +61,17 @@ output(sort(twoways,record,local),,DG_FetchFilePreloadIndexedName,OVERWRITE);
 
 #IF (usePayload=false)
  sortedFile := SORT(DG_FETCHFILE, Lname,Fname,__filepos, LOCAL);
- BUILDINDEX(sortedFile,{Lname,Fname,__filepos},DG_FetchIndex1Name, OVERWRITE, SORTED);
- BUILDINDEX(sortedFile,{Lname,Fname, __filepos}, DG_FetchIndex2Name, OVERWRITE, SORTED);
+ BUILDINDEX(sortedFile,{Lname,Fname,STRING100 tfn := TRIM(Fname), state, STRING100 blobfield := fname+lname, __filepos},DG_FetchIndex1Name, OVERWRITE, SORTED);
+ BUILDINDEX(sortedFile,{Lname,Fname,STRING100 tfn := TRIM(Fname), state, STRING100 blobfield := fname+lname, __filepos}, DG_FetchIndex2Name, OVERWRITE, SORTED);
 #ELSE
  #IF (useVarIndex=true)
   sortedFile := SORT(DG_FETCHFILE, Lname,Fname,state ,__filepos, LOCAL);
-  BUILDINDEX(sortedFile,{Lname,Fname},{STRING fn := TRIM(Fname), state, STRING100 x {blob}:= fname, __filepos},DG_FetchIndex1Name, OVERWRITE, SORTED);
-  BUILDINDEX(sortedFile,{Lname,Fname},{STRING fn := TRIM(Fname), state, STRING100 x {blob}:= fname, __filepos},DG_FetchIndex2Name, OVERWRITE, SORTED);
+  BUILDINDEX(sortedFile,{Lname,Fname},{STRING tfn := TRIM(Fname), state, STRING blobfield {blob}:= fname+lname, __filepos},DG_FetchIndex1Name, OVERWRITE, SORTED);
+  BUILDINDEX(sortedFile,{Lname,Fname},{STRING tfn := TRIM(Fname), state, STRING blobfield {blob}:= fname+lname, __filepos},DG_FetchIndex2Name, OVERWRITE, SORTED);
  #ELSE
   sortedFile := SORT(DG_FETCHFILE, Lname,Fname,state ,__filepos, LOCAL);
-  BUILDINDEX(sortedFile,{Lname,Fname},{state, __filepos}, DG_FetchIndex1Name, OVERWRITE, SORTED);
-  BUILDINDEX(sortedFile,{Lname,Fname},{state, __filepos}, DG_FetchIndex2Name, OVERWRITE, SORTED);
+  BUILDINDEX(sortedFile,{Lname,Fname},{STRING100 tfn := TRIM(Fname), state, STRING100 blobfield := fname+lname, __filepos}, DG_FetchIndex1Name, OVERWRITE, SORTED);
+  BUILDINDEX(sortedFile,{Lname,Fname},{STRING100 tfn := TRIM(Fname), state, STRING100 blobfield := fname+lname, __filepos}, DG_FetchIndex2Name, OVERWRITE, SORTED);
  #END
 #END