[ https://issues.apache.org/jira/browse/HIVE-16575?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16012323#comment-16012323 ]
Jesus Camacho Rodriguez commented on HIVE-16575: ------------------------------------------------ [~ashutoshc], could you review this one so we can check it in? https://github.com/apache/hive/pull/175 I plan to tackle HIVE-16603 and HIVE-16604 if follow-ups once it is pushed. Patch is huge, but mostly because of auto-generated files. Thanks > 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 > Attachments: HIVE-16575.01.patch, HIVE-16575.02.patch, > HIVE-16575.patch > > > 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)