
// Print only 10 results output_results(limit(select( (my_table, my_table), col<0,0>() == col<1,0>() ), 10));
So, you don't seem to iterate the whole selection, only first ten results. Since we both evaluate the expressions lazily, this doesn't look like a right test to me. If you apply the merge-join, such a query would take the same time on a 10-row table or on a 1000000-row table, wouldn't it?
I iterate the whole selection twice, as you can see by the output of the numbers "1000000" and "2000000" which shows the number of items it iterated. It took just 300ms to iterate them. The limit() is not part of the benchmark, it just lets you know that the data is real. Outputting 2000000 results to a terminal would only measure the speed of writing to a terminal. So how long did RTL take? Calum