I have following two partitions:

 

ibis::part: data1 (ardea -d data/data1 -m a:int, b:int -t data1.csv)
with 18 rows, 2 columns

Column list:

a:  (INT) [1.79769e+308, -1.79769e+308]

b:  (INT) [1.79769e+308, -1.79769e+308]

 

ibis::part: data2 (ardea -d data/data2 -m c:int, d:int -t data2.csv)
with 18 rows, 2 columns

Column list:

a:  (INT) [1.79769e+308, -1.79769e+308]

d:  (INT) [1.79769e+308, -1.79769e+308]

 

And I am trying to find a way how to join them and dump results. I used
the following code:

 

                //create the partitions

ibis::part *tbl1 = new ibis::part("data1");

      ibis::part *tbl2 = new ibis::part("data2");

 

      //create the join

      ibis::jNatural *jn = new ibis::jNatural(*tbl1, *tbl2, "a", "b <
8", "d > 4");

 

      //process the join

      int numRows = jn->count();

 

      //select the result

      std::vector<const char*> colnames = std::vector<const char*>();

      colnames.push_back("data1.a");

      ibis::table *resultTable = jn->select(colnames);

 

      //dump the results to cout

      resultTable->dump(std::cout);

 

The join is created and processed correctly (I can see the number of
resulting records, which is correct), but selection of the result
returns NULL pointer (with warning "join::fillEquiJoinTable can not
proceed due to invalid arguments"). Below I copy the log output when
calling select method.

 

select data1.a FROM From data1 Join data2 Using(a) Where ... -- start
timer ...

select data1.a FROM From data1 Join data2 Using(a) Where ... -- found 1
column from data1 and 0 column from data2

column[data1.a](INT)::selectValuesT -- selecting 15 out of 18 values
from ./data/data1\a

part[data1]::accessHint -- nRows=18, selected=15, #pages=0, first
page=0, last page=0, hint=MMAP_LARGE_FILES

column[data1.a](INT)::selectValuesT -- got 15 values (15 wanted) from an
in-memory version of file ./data/data1\a as int

column[data1.a](INT)::selectInts -- retrieving 15 integers took 0
sec(CPU), 0.000108394 sec(elapsed)

Warning -- join::fillEquiJoinTable can not proceed due to invalid
arguments

  select data1.a FROM From data1 Join data2 Using(a) Where ... --
duration: 0.001 sec(CPU), 0.000752051 sec(elapsed)

 

I will appreciate any hint on what I am doing wrong, or what are the
best practices to perform joins.

 

Regards

Jan Krivanek

 

_______________________________________________
FastBit-users mailing list
[email protected]
https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users

Reply via email to