[
https://issues.apache.org/jira/browse/HIVE-16575?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15995065#comment-15995065
]
ASF GitHub Bot commented on HIVE-16575:
---------------------------------------
GitHub user jcamachor opened a pull request:
https://github.com/apache/hive/pull/175
HIVE-16575: Support for 'UNIQUE' and 'NOT NULL' constraints
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/jcamachor/hive not_null
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/hive/pull/175.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #175
----
commit 686ed38fdcf5b67f9748631795dbeaf2a8a2b692
Author: Jesus Camacho Rodriguez <[email protected]>
Date: 2017-05-03T09:09:49Z
HIVE-16575: Support for 'UNIQUE' and 'NOT NULL' constraints
----
> Support for 'UNIQUE' and 'NOT NULL' constraints
> -----------------------------------------------
>
> Key: HIVE-16575
> URL: https://issues.apache.org/jira/browse/HIVE-16575
> Project: Hive
> Issue Type: New Feature
> Components: CBO, Logical Optimizer, Parser
> Reporter: Jesus Camacho Rodriguez
> Assignee: Jesus Camacho Rodriguez
>
> Follow-up on HIVE-13076.
> This issue add support for SQL 'UNIQUE' and 'NOT NULL' constraints when we
> create a table / alter a table
> (https://www.postgresql.org/docs/9.6/static/sql-createtable.html).
> As with PK and FK constraints, currently we do not enforce them; thus, the
> constraints need to use the DISABLE option, but they will be stored and can
> be enabled for rewriting/optimization using RELY.
> This patch also adds support for inlining the constraints next to the column
> type definition, i.e., 'column constraints'.
> Some examples of the extension to the syntax included in the patch:
> {code:sql}
> CREATE TABLE table3 (x string NOT NULL DISABLE, PRIMARY KEY (x) DISABLE,
> CONSTRAINT fk1 FOREIGN KEY (x) REFERENCES table2(a) DISABLE);
> CREATE TABLE table4 (x string CONSTRAINT nn4_1 NOT NULL DISABLE, y string
> CONSTRAINT nn4_2 NOT NULL DISABLE, UNIQUE (x) DISABLE, CONSTRAINT fk2 FOREIGN
> KEY (x) REFERENCES table2(a) DISABLE,
> CONSTRAINT fk3 FOREIGN KEY (y) REFERENCES table2(a) DISABLE);
> CREATE TABLE table12 (a STRING CONSTRAINT nn12_1 NOT NULL DISABLE NORELY, b
> STRING);
> CREATE TABLE table13 (a STRING NOT NULL DISABLE RELY, b STRING);
> CREATE TABLE table14 (a STRING CONSTRAINT nn14_1 NOT NULL DISABLE RELY, b
> STRING);
> CREATE TABLE table15 (a STRING REFERENCES table4(x) DISABLE, b STRING);
> CREATE TABLE table16 (a STRING CONSTRAINT nn16_1 REFERENCES table4(x) DISABLE
> RELY, b STRING);
> ALTER TABLE table16 CHANGE a a STRING REFERENCES table4(x) DISABLE NOVALIDATE;
> ALTER TABLE table12 CHANGE COLUMN b b STRING CONSTRAINT nn12_2 NOT NULL
> DISABLE NOVALIDATE;
> ALTER TABLE table13 CHANGE b b STRING NOT NULL DISABLE NOVALIDATE;
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)