[ 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)