Explorar o código

HPCC-10579 Improve many lookup join implementation in roxie

Add a simple test case.

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman %!s(int64=11) %!d(string=hai) anos
pai
achega
d4a85de762
Modificáronse 2 ficheiros con 55 adicións e 0 borrados
  1. 38 0
      testing/ecl/key/manylookup.xml
  2. 17 0
      testing/ecl/manylookup.ecl

+ 38 - 0
testing/ecl/key/manylookup.xml

@@ -0,0 +1,38 @@
+<Dataset name='Result 1'>
+ <Row><key>1</key></Row>
+ <Row><key>1</key></Row>
+ <Row><key>2</key></Row>
+ <Row><key>2</key></Row>
+ <Row><key>2</key></Row>
+ <Row><key>2</key></Row>
+ <Row><key>2</key></Row>
+ <Row><key>2</key></Row>
+ <Row><key>2</key></Row>
+ <Row><key>2</key></Row>
+ <Row><key>3</key></Row>
+ <Row><key>3</key></Row>
+ <Row><key>4</key></Row>
+ <Row><key>4</key></Row>
+</Dataset>
+<Dataset name='Result 2'>
+ <Row><key>1</key></Row>
+ <Row><key>1</key></Row>
+ <Row><key>2</key></Row>
+ <Row><key>2</key></Row>
+ <Row><key>2</key></Row>
+ <Row><key>2</key></Row>
+ <Row><key>2</key></Row>
+ <Row><key>2</key></Row>
+ <Row><key>2</key></Row>
+ <Row><key>2</key></Row>
+ <Row><key>3</key></Row>
+ <Row><key>3</key></Row>
+ <Row><key>4</key></Row>
+ <Row><key>4</key></Row>
+</Dataset>
+<Dataset name='Result 3'>
+ <Row><key>1</key></Row>
+ <Row><key>2</key></Row>
+ <Row><key>3</key></Row>
+ <Row><key>4</key></Row>
+</Dataset>

+ 17 - 0
testing/ecl/manylookup.ecl

@@ -0,0 +1,17 @@
+rec := RECORD
+ unsigned key;
+END;
+
+lhs := dataset([{1},{2},{3},{4},{5}], rec);
+rhs := dataset([
+  {1},{2},{2},{2},{2},{3},{4},
+  {1},{2},{2},{2},{2},{3},{4}
+  ], rec);
+
+j1 := JOIN(lhs, rhs, LEFT.key=RIGHT.key, TRANSFORM(rec, SELF:=LEFT), MANY LOOKUP);
+j2 := JOIN(lhs, rhs, LEFT.key=RIGHT.key, TRANSFORM(rec, SELF:=LEFT), MANY LOOKUP, HINT(usefewtable));
+j3 := JOIN(lhs, rhs, LEFT.key=RIGHT.key, TRANSFORM(rec, SELF:=LEFT), LOOKUP);
+
+output(NOFOLD(j1));
+output(NOFOLD(j2));
+output(NOFOLD(j3));