[ https://issues.apache.org/jira/browse/HIVE-3794?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Deepesh Khandelwal updated HIVE-3794: ------------------------------------- Fix Version/s: 0.10.0 Status: Patch Available (was: Open) I have a patch which I successfully tested on Oracle. It does impact other flavors. > Oracle upgrade script for Hive is broken > ---------------------------------------- > > Key: HIVE-3794 > URL: https://issues.apache.org/jira/browse/HIVE-3794 > Project: Hive > Issue Type: Bug > Components: SQL > Affects Versions: 0.10.0 > Environment: Oracle 11g r2 > Reporter: Deepesh Khandelwal > Priority: Critical > Fix For: 0.10.0 > > > As part of Hive configuration for Oracle I ran the schema creation script for > Oracle. Here is what I observed when ran the script: > % sqlplus hive/hive@xe > SQL*Plus: Release 11.2.0.2.0 Production on Mon Dec 10 18:47:11 2012 > Copyright (c) 1982, 2011, Oracle. All rights reserved. > Connected to: > Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production > SQL> @scripts/metastore/upgrade/oracle/hive-schema-0.10.0.oracle.sql; > ..... > ALTER TABLE SKEWED_STRING_LIST_VALUES ADD CONSTRAINT > SKEWED_STRING_LIST_VALUES_FK1 FOREIGN KEY (STRING_LIST_ID) REFERENCES > SKEWED_STRING_LIST (STRING_LIST_ID) INITIALLY DEFERRED > > * > ERROR at line 1: > {color:red}ORA-00904: "STRING_LIST_ID": invalid identifier{color} > ..... > ALTER TABLE SKEWED_STRING_LIST_VALUES ADD CONSTRAINT > SKEWED_STRING_LIST_VALUES_FK1 FOREIGN KEY (STRING_LIST_ID) REFERENCES > SKEWED_STRING_LIST (STRING_LIST_ID) INITIALLY DEFERRED > > * > ERROR at line 1: > {color:red}ORA-00904: "STRING_LIST_ID": invalid identifier{color} > Table created. > Table altered. > Table altered. > CREATE TABLE SKEWED_COL_VALUE_LOCATION_MAPPING > * > ERROR at line 1: > {color:red}ORA-00972: identifier is too long{color} > Table created. > Table created. > ALTER TABLE SKEWED_COL_VALUE_LOCATION_MAPPING ADD CONSTRAINT > SKEWED_COL_VALUE_LOCATION_MAPPING_PK PRIMARY KEY (SD_ID,STRING_LIST_ID_KID) > * > ERROR at line 1: > {color:red}ORA-00972: identifier is too long{color} > ALTER TABLE SKEWED_COL_VALUE_LOCATION_MAPPING ADD CONSTRAINT > SKEWED_COL_VALUE_LOCATION_MAPPING_FK1 FOREIGN KEY (STRING_LIST_ID_KID) > REFERENCES SKEWED_STRING_LIST (STRING_LIST_ID) INITIALLY DEFERRED > * > ERROR at line 1: > {color:red}ORA-00972: identifier is too long{color} > ALTER TABLE SKEWED_COL_VALUE_LOCATION_MAPPING ADD CONSTRAINT > SKEWED_COL_VALUE_LOCATION_MAPPING_FK2 FOREIGN KEY (SD_ID) REFERENCES SDS > (SD_ID) INITIALLY DEFERRED > * > ERROR at line 1: > {color:red}ORA-00972: identifier is too long{color} > Table created. > Table altered. > ALTER TABLE SKEWED_VALUES ADD CONSTRAINT SKEWED_VALUES_FK1 FOREIGN KEY > (STRING_LIST_ID_EID) REFERENCES SKEWED_STRING_LIST (STRING_LIST_ID) INITIALLY > DEFERRED > > * > ERROR at line 1: > {color:red}ORA-00904: "STRING_LIST_ID": invalid identifier{color} > Basically there are two issues here with the Oracle sql script: > (1) Table "SKEWED_STRING_LIST" is created with the column "SD_ID". Later the > script tries to reference "STRING_LIST_ID" column in "SKEWED_STRING_LIST" > which is obviously not there. Comparing the sql with that for other flavors > it seems it should be "STRING_LIST_ID". > (2) Table name "SKEWED_COL_VALUE_LOCATION_MAPPING" is too long for Oracle > which limits identifier names to 30 characters. Also impacted are identifiers > "SKEWED_COL_VALUE_LOCATION_MAPPING_PK" and > "SKEWED_COL_VALUE_LOCATION_MAPPING_FK1". -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira