     size_t num_columns_to_hash = this->num_columns;
     for(size_type i = 0; i < num_columns_to_hash; ++i)
     {
-      const gdf_valid_type * current_valid = d_valids_data[i];
+      const gdf_valid_type * current_valid = d_columns_valids[i];
       bool_value = bool_value && gdf::util::get_bit(current_valid, row_index);
     }
     return bool_value;    

      {
        assert(nullptr != host_columns[i]->data);
      }
      device_columns.push_back(host_columns[i]->data);
      device_valids.push_back(host_columns[i]->valid);
      device_types.push_back(host_columns[i]->dtype);
    }


    d_columns_data = device_columns.data().get();
    d_valids_data = device_valids.data().get();
    d_columns_types = device_types.data().get();
  }

  ~gdf_table(){}

      if(my_col_type != other_col_type)
      {
        printf("Attempted to compare columns of different types.\n");
        return false;
      }
      switch(my_col_type)
