  * limitations under the License.
  */
 
+
 #include <gdf/gdf.h>
 #include <gdf/errorutils.h>
 #include <limits>
 
 #include "joining.h"
 #include "../gdf_table.cuh"
+#include "../nvtx_utils.h"
+
+
 
 using namespace mgpu;
 

                     gdf_context *join_context)
{

  if( (0 == num_cols) || (nullptr == leftcol) || (nullptr == rightcol))
    return GDF_DATASET_EMPTY;



  gdf_method join_method = join_context->flag_method; 

  gdf_error gdf_error_code{GDF_SUCCESS};

  PUSH_RANGE("LIBGDF_JOIN", COLOR::CYAN);

  switch(join_method)
  {
    case GDF_HASH:
      {
        gdf_error_code =  hash_join<join_type, int64_t>(num_cols, leftcol, rightcol, left_result, right_result);
        break;
      }
    case GDF_SORT:
      {
        // Sort based joins only support single column joins
        if(1 == num_cols)
        {
          gdf_error_code =  sort_join<join_type>(leftcol[0], rightcol[0], left_result, right_result, join_context);
        }
        else
        {
          gdf_error_code =  GDF_JOIN_TOO_MANY_COLUMNS;
        }

        break;
      }
    default:
      gdf_error_code =  GDF_UNSUPPORTED_METHOD;
  }

  POP_RANGE();

  return gdf_error_code;
}

gdf_error gdf_left_join(int num_cols, gdf_column **leftcol, gdf_column **rightcol,
