You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2014/11/12 03:10:10 UTC
svn commit: r1638688 -
/hive/branches/branch-0.14/metastore/scripts/upgrade/oracle/020-HIVE-7784.oracle.sql
Author: sershe
Date: Wed Nov 12 02:10:09 2014
New Revision: 1638688
URL: http://svn.apache.org/r1638688
Log:
HIVE-8715 : Hive 14 upgrade scripts can fail for statistics if database was created using auto-create
ADDENDUM (Sergey Shelukhin, reviewed by Ashutosh Chauhan and Gunther Hagleitner)
Modified:
hive/branches/branch-0.14/metastore/scripts/upgrade/oracle/020-HIVE-7784.oracle.sql
Modified: hive/branches/branch-0.14/metastore/scripts/upgrade/oracle/020-HIVE-7784.oracle.sql
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.14/metastore/scripts/upgrade/oracle/020-HIVE-7784.oracle.sql?rev=1638688&r1=1638687&r2=1638688&view=diff
==============================================================================
--- hive/branches/branch-0.14/metastore/scripts/upgrade/oracle/020-HIVE-7784.oracle.sql (original)
+++ hive/branches/branch-0.14/metastore/scripts/upgrade/oracle/020-HIVE-7784.oracle.sql Wed Nov 12 02:10:09 2014
@@ -1,27 +1,13 @@
--
-- Create the table if it doesn't exist.
--
-CREATE TABLE IF NOT EXISTS PART_COL_STATS (
- CS_ID NUMBER NOT NULL,
- DB_NAME VARCHAR2(128) NOT NULL,
- TABLE_NAME VARCHAR2(128) NOT NULL,
- PARTITION_NAME VARCHAR2(767) NOT NULL,
- COLUMN_NAME VARCHAR2(128) NOT NULL,
- COLUMN_TYPE VARCHAR2(128) NOT NULL,
- PART_ID NUMBER NOT NULL,
- LONG_LOW_VALUE NUMBER,
- LONG_HIGH_VALUE NUMBER,
- DOUBLE_LOW_VALUE NUMBER,
- DOUBLE_HIGH_VALUE NUMBER,
- BIG_DECIMAL_LOW_VALUE VARCHAR2(4000),
- BIG_DECIMAL_HIGH_VALUE VARCHAR2(4000),
- NUM_NULLS NUMBER NOT NULL,
- NUM_DISTINCTS NUMBER,
- AVG_COL_LEN NUMBER,
- MAX_COL_LEN NUMBER,
- NUM_TRUES NUMBER,
- NUM_FALSES NUMBER,
- LAST_ANALYZED NUMBER NOT NULL
-);
+declare pcs_count int;
+begin
+ select count(*) into pcs_count from user_tables where table_name = 'PART_COL_STATS';
+ if pcs_count = 0 then
+ EXECUTE IMMEDIATE 'CREATE TABLE PART_COL_STATS (CS_ID NUMBER NOT NULL, DB_NAME VARCHAR2(128) NOT NULL, TABLE_NAME VARCHAR2(128) NOT NULL, PARTITION_NAME VARCHAR2(767) NOT NULL, COLUMN_NAME VARCHAR2(128) NOT NULL, COLUMN_TYPE VARCHAR2(128) NOT NULL, PART_ID NUMBER NOT NULL, LONG_LOW_VALUE NUMBER, LONG_HIGH_VALUE NUMBER, DOUBLE_LOW_VALUE NUMBER, DOUBLE_HIGH_VALUE NUMBER, BIG_DECIMAL_LOW_VALUE VARCHAR2(4000), BIG_DECIMAL_HIGH_VALUE VARCHAR2(4000), NUM_NULLS NUMBER NOT NULL, NUM_DISTINCTS NUMBER, AVG_COL_LEN NUMBER, MAX_COL_LEN NUMBER, NUM_TRUES NUMBER, NUM_FALSES NUMBER, LAST_ANALYZED NUMBER NOT NULL)';
+ end if;
+end;
+/
CREATE INDEX PCS_STATS_IDX ON PART_COL_STATS (DB_NAME,TABLE_NAME,COLUMN_NAME,PARTITION_NAME);