You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kudu.apache.org by "Grant Henke (Jira)" <ji...@apache.org> on 2020/06/02 20:42:00 UTC

[jira] [Updated] (KUDU-2168) Add support for unique constraints

     [ https://issues.apache.org/jira/browse/KUDU-2168?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Grant Henke updated KUDU-2168:
------------------------------
    Issue Type: Wish  (was: New Feature)

> Add support for unique constraints
> ----------------------------------
>
>                 Key: KUDU-2168
>                 URL: https://issues.apache.org/jira/browse/KUDU-2168
>             Project: Kudu
>          Issue Type: Wish
>          Components: client, master, tablet
>            Reporter: Roger Marin
>            Priority: Major
>
> Kudu currently supports unique constraints via primary keys but some times a unique value constraint on (nullable) arbitrary column(s) independent of the primary key column(s) may also be required.
> Example impala syntax:
> {code:sql}
> CREATE TABLE my_first_table
> (
>   id BIGINT,
>   name STRING,
>   unique_val_1 BIGINT,
>   unique_val_2 BIGINT,
>   PRIMARY KEY(id)
>   UNIQUE CONSTRAINT(unique_val_1,unique_val_2)
> )
> PARTITION BY HASH PARTITIONS 16
> STORED AS KUDU;
> {code}
> Example api syntax:
> {code:java}
> val kuduTableSchema = StructType(
>    StructField("id", IntegerType , false) ::
>    StructField("name" , IntegerType, true ) ::
>    StructField("unique_val_1", IntegerType , true ) ::
>    StructField("unique_val_2", IntegerType , true ) :: Nil)
> val kuduPrimaryKey = Seq("id")
>  
> val kuduTableOptions = new CreateTableOptions()
> kuduTableOptions.
>  setUniqueConstraintColumns(List("unique_val_1", "unique_val_2").asJava).
>  setRangePartitionColumns(List("name").asJava).
>  setNumReplicas(3)
>  
> kuduContext.createTable(kuduTableName, kuduTableSchema, kuduPrimaryKey, kuduTableOptions)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)