ソースを参照

HPCC-18917 New tests and changes following review

Signed-off-by: Gavin Halliday <gavin.halliday@lexisnexis.com>
Gavin Halliday 7 年 前
コミット
fed126c6b7
3 ファイル変更7 行追加1 行削除
  1. 1 1
      ecl/hql/hqlfilter.cpp
  2. 3 0
      rtl/eclrtl/rtlnewkey.cpp
  3. 3 0
      testing/regress/ecl/aggds3.ecl

+ 1 - 1
ecl/hql/hqlfilter.cpp

@@ -767,7 +767,7 @@ IHqlExpression * FilterExtractor::isKeyableFilter(IHqlExpression * left, IHqlExp
             ITypeInfo * castType = left->queryType();
             ITypeInfo * castType = left->queryType();
             ITypeInfo * uncastType = uncast->queryType();
             ITypeInfo * uncastType = uncast->queryType();
 
 
-            //Keyed filters on alien datatypes do not work, and can trigger an internal error in ensuerExprType()
+            //Keyed filters on alien datatypes do not work, and can trigger an internal error in ensureExprType()
             if (uncastType->getTypeCode() == type_alien)
             if (uncastType->getTypeCode() == type_alien)
             {
             {
                 reason.set(KFRtoocomplex, left);
                 reason.set(KFRtoocomplex, left);

+ 3 - 0
rtl/eclrtl/rtlnewkey.cpp

@@ -2829,6 +2829,9 @@ protected:
         testFilter("extra:0=['XX']", { false, false, false, false, false, false });
         testFilter("extra:0=['XX']", { false, false, false, false, false, false });
         testFilter("extra:0=['']", { true, true, true, true, true, true });
         testFilter("extra:0=['']", { true, true, true, true, true, true });
         testFilter("name:1=['A']", { false, true, false, true, false, false });
         testFilter("name:1=['A']", { false, true, false, true, false, false });
+        //Check substring ranges are correctly truncated
+        testFilter("extra:3=['MARK','MAST']", { false, false, false, false, true, true });
+        testFilter("name:1=['AB','JA']", { true, false, true, false, true, true });
     }
     }
 
 
 
 

+ 3 - 0
testing/regress/ecl/aggds3.ecl

@@ -20,14 +20,17 @@
 
 
 //version multiPart=true
 //version multiPart=true
 //version multiPart=false,useSequential=true
 //version multiPart=false,useSequential=true
+//version keyedFilters=true
 
 
 import ^ as root;
 import ^ as root;
 multiPart := #IFDEFINED(root.multiPart, false);
 multiPart := #IFDEFINED(root.multiPart, false);
 useSequential := #IFDEFINED(root.useSequential, false);
 useSequential := #IFDEFINED(root.useSequential, false);
+keyedFilters := #IFDEFINED(root.keyedFilters, false);
 
 
 //--- end of version configuration ---
 //--- end of version configuration ---
 
 
 #onwarning (2168, ignore);
 #onwarning (2168, ignore);
+#option ('implicitKeyedDiskFilter', keyedFilters);
 
 
 import $.setup;
 import $.setup;
 sq := setup.sq(multiPart);
 sq := setup.sq(multiPart);