 
 // Creates a gdf_column from a std::vector
 template <typename col_type>
-gdf_column create_gdf_column(std::vector<col_type> host_vector)
+gdf_column create_gdf_column(std::vector<col_type> const & host_vector)
 {
   // Copy host vector to device
   thrust::device_vector<col_type> device_vector(host_vector);


    return result;
  }
  //gdf_error gdf_multi_left_join_generic(int num_cols, gdf_column **leftcol, gdf_column **rightcol, gdf_join_result_type **out_result)
};


typedef ::testing::Types< std::tuple< std::vector<int> >,
                          std::tuple< std::vector<int>, std::vector<double>, std::vector<float>, std::vector<long long int> >
                          > Implementations;

TYPED_TEST_CASE(InnerJoinTest, Implementations);

TYPED_TEST(InnerJoinTest, debug)
{
  this->create_input(5,2,5,2,true);
  std::vector<result_type> result = this->compute_reference_solution(join_kind::LEFT, true);
}

    }
  }

  std::vector<result_type> compute_reference_solution(bool print = false, bool sort = true)
  {

    // Use the type of the first vector as the key_type
