[ 
https://issues.apache.org/jira/browse/HIVE-13290?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16169196#comment-16169196
 ] 

coffee commented on HIVE-13290:
-------------------------------

Hive 2.1.1 still not support primary keys/foreign keys?

hive> select version();
OK
{color:red}2.1.1 {color}r1af77bbf8356e86cabbed92cfa8cc2e1470a1d5c
Time taken: 0.091 seconds, Fetched: 1 row(s)
hive> create table pk(id1 integer, id2 integer,primary key(id1, id2) disable 
novalidate);
NoViableAltException(26@[])
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.type(HiveParser.java:42781)
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.colType(HiveParser.java:42538)
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.columnNameType(HiveParser.java:42058)
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.columnNameTypeOrPKOrFK(HiveParser.java:42308)
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.columnNameTypeOrPKOrFKList(HiveParser.java:37938)
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.createTableStatement(HiveParser.java:5259)
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.ddlStatement(HiveParser.java:2763)
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser.java:1756)
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:1178)
        at 
org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:204)
        at 
org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:166)
        at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:444)
        at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1242)
        at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1384)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1171)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1161)
        at 
org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:232)
        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:183)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:399)
        at 
org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:776)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:714)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:641)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
FAILED: ParseException line 1:20 cannot recognize input near 'integer' ',' 
'id2' in column type
hive> create table fk(id1 integer, id2 integer, constraint c1 foreign key(id1, 
id2) references pk(id2, id1) disable novalidate);
NoViableAltException(26@[])
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.type(HiveParser.java:42781)
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.colType(HiveParser.java:42538)
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.columnNameType(HiveParser.java:42058)
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.columnNameTypeOrPKOrFK(HiveParser.java:42308)
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.columnNameTypeOrPKOrFKList(HiveParser.java:37938)
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.createTableStatement(HiveParser.java:5259)
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.ddlStatement(HiveParser.java:2763)
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser.java:1756)
        at 
org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:1178)
        at 
org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:204)
        at 
org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:166)
        at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:444)
        at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1242)
        at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1384)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1171)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1161)
        at 
org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:232)
        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:183)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:399)
        at 
org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:776)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:714)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:641)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
FAILED: ParseException line 1:20 cannot recognize input near 'integer' ',' 
'id2' in column type

> Support primary keys/foreign keys constraint as part of create table command 
> in Hive
> ------------------------------------------------------------------------------------
>
>                 Key: HIVE-13290
>                 URL: https://issues.apache.org/jira/browse/HIVE-13290
>             Project: Hive
>          Issue Type: Sub-task
>          Components: CBO, Logical Optimizer
>            Reporter: Hari Sankar Sivarama Subramaniyan
>            Assignee: Hari Sankar Sivarama Subramaniyan
>              Labels: TODOC2.1
>             Fix For: 2.1.0
>
>         Attachments: HIVE-13290.1.patch, HIVE-13290.2.patch, 
> HIVE-13290.3.patch, HIVE-13290.4.patch, HIVE-13290.5.patch, 
> HIVE-13290.6.patch, HIVE-13290.7.patch, HIVE-13290.8.patch, 
> HIVE-13290.final.patch, test-results.txt
>
>
> SUPPORT for the following statements
> {code}
> CREATE TABLE product 
>   ( 
>      product_id        INTEGER, 
>      product_vendor_id INTEGER, 
>      PRIMARY KEY (product_id)  DISABLE NOVALIDATE, 
>      CONSTRAINT product_fk_1 FOREIGN KEY (product_vendor_id) REFERENCES 
> vendor(vendor_id)  DISABLE NOVALIDATE
>   ); 
> CREATE TABLE vendor 
>   ( 
>      vendor_id INTEGER, 
>      PRIMARY KEY (vendor_id)  DISABLE NOVALIDATE RELY
>   ); 
> {code}
> In the above syntax, [CONSTRAINT constraint-Name] is optional. If this is not 
> specified by the user, we will use system generated constraint name. For the 
> purpose of simplicity, we will allow  CONSTRAINT option for foreign keys and 
> not primary key since there is only one primary key per table. The 
> RELY/NORELY keyword is also optional.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to