kudu-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Brannan <paul.bran...@thesystech.com>
Subject mixing range and hash partitioning
Date Fri, 24 Feb 2017 18:53:58 GMT
I'm trying to create a table with one-column range-partitioned and another
column hash-partitioned.  Documentation for add_hash_partitions and
set_range_partition_columns suggest this should be possible ("Tables must
be created with either range, hash, or range and hash partitioning").

I have a schema with three INT64 columns ("time", "key", and "value").
When I create the table, I set up the partitioning:

(*table_creator)
  .table_name("test_table")
  .schema(&schema)
  .add_hash_partitions({"key"}, 2)
  .set_range_partition_columns({"time"})
  .num_replicas(1)
  .Create()

I later try to add a partition:

auto timesplit(KuduSchema & schema, std::int64_t t) {
  auto split = schema.NewRow();
  check_ok(split->SetInt64("time", t));
  return split;
}

alterer->AddRangePartition(
  timesplit(schema, date_start),
  timesplit(schema, next_date_start));

check_ok(alterer->Alter());

But I get an error "Invalid argument: New range partition conflicts with
existing range partition".

How are hash and range partitioning intended to be mixed?

Mime
View raw message