     : num_columns(num_cols), host_columns(gdf_columns)
   {
 
+    assert(num_cols > 0);
+    assert(nullptr != host_columns[0]);
     column_length = host_columns[0]->size;
+
+    if(column_length > 0)
+    {
+      assert(nullptr != host_columns[0]->data);
+    }
 
     // Copy the pointers to the column's data and types to the device 
     // as contiguous arrays


    // If num_columns_to_hash is zero, hash all columns
    if(0 == num_columns_to_hash)
      num_columns_to_hash = this->num_columns;

    for(size_type i = 0; i < num_columns_to_hash; ++i)
    {

   * @Param row_index The row of the table to compute the hash value for
   * @Param num_columns_to_hash The number of columns in the row to hash. If 0, hashes all columns
   * @tparam hash_function The hash function that is used for each element in the row
   * 
   * @Returns The hash value of the row
   */
