Index: metastore/scripts/upgrade/postgres/001-HIVE-972.postgres.sql =================================================================== --- metastore/scripts/upgrade/postgres/001-HIVE-972.postgres.sql (revision 0) +++ metastore/scripts/upgrade/postgres/001-HIVE-972.postgres.sql (revision 0) @@ -0,0 +1,3 @@ +SELECT '< HIVE-972: Support views >'; +ALTER TABLE "TBLS" ADD COLUMN "VIEW_EXPANDED_TEXT" text; +ALTER TABLE "TBLS" ADD COLUMN "VIEW_ORIGINAL_TEXT" text; Index: metastore/scripts/upgrade/postgres/002-HIVE-1068.postgres.sql =================================================================== --- metastore/scripts/upgrade/postgres/002-HIVE-1068.postgres.sql (revision 0) +++ metastore/scripts/upgrade/postgres/002-HIVE-1068.postgres.sql (revision 0) @@ -0,0 +1,2 @@ +SELECT '< HIVE-1068: CREATE VIEW followup: add a "table type" enum attribute in metastore >'; +ALTER TABLE "TBLS" ADD COLUMN "TBL_TYPE" character varying(128); Index: metastore/scripts/upgrade/postgres/003-HIVE-675.postgres.sql =================================================================== --- metastore/scripts/upgrade/postgres/003-HIVE-675.postgres.sql (revision 0) +++ metastore/scripts/upgrade/postgres/003-HIVE-675.postgres.sql (revision 0) @@ -0,0 +1,4 @@ +SELECT '< HIVE-675: Add database/schema support for Hive QL >'; +ALTER TABLE "DBS" ALTER "DESC" TYPE character varying(4000); +ALTER TABLE "DBS" ADD COLUMN "DB_LOCATION_URI" character varying(4000) NOT NULL DEFAULT ''::character varying; + Index: metastore/scripts/upgrade/postgres/004-HIVE-1364.postgres.sql =================================================================== --- metastore/scripts/upgrade/postgres/004-HIVE-1364.postgres.sql (revision 0) +++ metastore/scripts/upgrade/postgres/004-HIVE-1364.postgres.sql (revision 0) @@ -0,0 +1,15 @@ +SELECT '< HIVE-1364: Increase the maximum length of various metastore fields >'; +ALTER TABLE "TBLS" ALTER "OWNER" TYPE character varying(767); +ALTER TABLE "COLUMNS" ALTER "TYPE_NAME" TYPE character varying(4000); +ALTER TABLE "PARTITION_KEYS" ALTER "PKEY_COMMENT" TYPE character varying(4000); +ALTER TABLE "SD_PARAMS" ALTER "PARAM_VALUE" TYPE character varying(4000); +ALTER TABLE "SDS" ALTER "INPUT_FORMAT" TYPE character varying(4000); +ALTER TABLE "SDS" ALTER "LOCATION" TYPE character varying(4000); +ALTER TABLE "SDS" ALTER "OUTPUT_FORMAT" TYPE character varying(4000); +ALTER TABLE "SERDE_PARAMS" ALTER "PARAM_VALUE" TYPE character varying(4000); +ALTER TABLE "SERDES" ALTER "SLIB" TYPE character varying(4000); +ALTER TABLE "TABLE_PARAMS" ALTER "PARAM_VALUE" TYPE character varying(4000); +ALTER TABLE "COLUMNS" DROP CONSTRAINT "COLUMNS_pkey"; +ALTER TABLE "COLUMNS" ADD CONSTRAINT "COLUMNS_pkey" PRIMARY KEY ("SD_ID", "COLUMN_NAME"); +ALTER TABLE "PARTITION_PARAMS" ALTER "PARAM_VALUE" TYPE character varying(4000); + Index: metastore/scripts/upgrade/postgres/005-HIVE-417.postgres.sql =================================================================== --- metastore/scripts/upgrade/postgres/005-HIVE-417.postgres.sql (revision 0) +++ metastore/scripts/upgrade/postgres/005-HIVE-417.postgres.sql (revision 0) @@ -0,0 +1,48 @@ +SELECT '< HIVE-417 Implement Indexing in Hive >'; + +-- +-- Table: IDXS +-- +CREATE TABLE "IDXS" ( + "INDEX_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "DEFERRED_REBUILD" bit(1) NOT NULL, + "INDEX_HANDLER_CLASS" character varying(256) DEFAULT NULL, + "INDEX_NAME" character varying(128) DEFAULT NULL, + "INDEX_TBL_ID" bigint DEFAULT NULL, + "LAST_ACCESS_TIME" bigint NOT NULL, + "ORIG_TBL_ID" bigint DEFAULT NULL, + "SD_ID" bigint DEFAULT NULL, + PRIMARY KEY ("INDEX_ID"), + CONSTRAINT "UNIQUEINDEX" UNIQUE ("INDEX_NAME", "ORIG_TBL_ID") +); +CREATE INDEX "IDXS_FK1" on "IDXS" ("SD_ID"); +CREATE INDEX "IDXS_FK2" on "IDXS" ("INDEX_TBL_ID"); +CREATE INDEX "IDXS_FK3" on "IDXS" ("ORIG_TBL_ID"); + +-- +-- Table: INDEX_PARAMS +-- +CREATE TABLE "INDEX_PARAMS" ( + "INDEX_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("INDEX_ID", "PARAM_KEY") +); + +-- +-- Foreign Key Definitions +-- + +ALTER TABLE "IDXS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "IDXS" ADD FOREIGN KEY ("INDEX_TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "IDXS" ADD FOREIGN KEY ("ORIG_TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "INDEX_PARAMS" ADD FOREIGN KEY ("INDEX_ID") + REFERENCES "IDXS" ("INDEX_ID") DEFERRABLE; + Index: metastore/scripts/upgrade/postgres/006-HIVE-1823.postgres.sql =================================================================== --- metastore/scripts/upgrade/postgres/006-HIVE-1823.postgres.sql (revision 0) +++ metastore/scripts/upgrade/postgres/006-HIVE-1823.postgres.sql (revision 0) @@ -0,0 +1,20 @@ +SELECT '< HIVE-1823 Upgrade the database thrift interface to allow parameters key-value pairs >'; + +-- +-- Table: DATABASE_PARAMS +-- + +CREATE TABLE "DATABASE_PARAMS" ( + "DB_ID" bigint NOT NULL, + "PARAM_KEY" character varying(180) NOT NULL, + "PARAM_VALUE" character varying(4000) DEFAULT NULL, + PRIMARY KEY ("DB_ID", "PARAM_KEY") +); + +-- +-- Foreign Key Definitions +-- + +ALTER TABLE "DATABASE_PARAMS" ADD FOREIGN KEY ("DB_ID") + REFERENCES "DBS" ("DB_ID") DEFERRABLE; + Index: metastore/scripts/upgrade/postgres/007-HIVE-78.postgres.sql =================================================================== --- metastore/scripts/upgrade/postgres/007-HIVE-78.postgres.sql (revision 0) +++ metastore/scripts/upgrade/postgres/007-HIVE-78.postgres.sql (revision 0) @@ -0,0 +1,156 @@ +SELECT '< HIVE-78 Authorization model for Hive >'; + +-- +-- Table: ROLES +-- + +CREATE TABLE "ROLES" ( + "ROLE_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "OWNER_NAME" character varying(128) DEFAULT NULL, + "ROLE_NAME" character varying(128) DEFAULT NULL, + PRIMARY KEY ("ROLE_ID"), + CONSTRAINT "ROLEENTITYINDEX" UNIQUE ("ROLE_NAME") +); + +-- +-- Table: ROLE_MAP +-- +CREATE TABLE "ROLE_MAP" ( + "ROLE_GRANT_ID" bigint NOT NULL, + "ADD_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "ROLE_ID" bigint DEFAULT NULL, + PRIMARY KEY ("ROLE_GRANT_ID"), + CONSTRAINT "USERROLEMAPINDEX" UNIQUE ("PRINCIPAL_NAME", "ROLE_ID", "GRANTOR", "GRANTOR_TYPE") +); + +-- +-- Table: GLOBAL_PRIVS +-- +CREATE TABLE "GLOBAL_PRIVS" ( + "USER_GRANT_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "USER_PRIV" character varying(128) DEFAULT NULL, + PRIMARY KEY ("USER_GRANT_ID"), + CONSTRAINT "GLOBALPRIVILEGEINDEX" UNIQUE ("PRINCIPAL_NAME", "PRINCIPAL_TYPE", "USER_PRIV", "GRANTOR", "GRANTOR_TYPE") +); + +-- +-- Table: DB_PRIVS +-- +CREATE TABLE "DB_PRIVS" ( + "DB_GRANT_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "DB_ID" bigint DEFAULT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "DB_PRIV" character varying(128) DEFAULT NULL, + PRIMARY KEY ("DB_GRANT_ID"), + CONSTRAINT "DBPRIVILEGEINDEX" UNIQUE ("DB_ID", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "DB_PRIV", "GRANTOR", "GRANTOR_TYPE") +); + +-- +-- Table: TBL_PRIVS +-- +CREATE TABLE "TBL_PRIVS" ( + "TBL_GRANT_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "TBL_PRIV" character varying(128) DEFAULT NULL, + "TBL_ID" bigint DEFAULT NULL, + PRIMARY KEY ("TBL_GRANT_ID") +); +CREATE INDEX "TABLEPRIVILEGEINDEX" on "TBL_PRIVS" ("TBL_ID", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "TBL_PRIV", "GRANTOR", "GRANTOR_TYPE"); + +-- +-- Table: TBL_COL_PRIVS +-- +CREATE TABLE "TBL_COL_PRIVS" ( + "TBL_COLUMN_GRANT_ID" bigint NOT NULL, + "COLUMN_NAME" character varying(128) DEFAULT NULL, + "CREATE_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "TBL_COL_PRIV" character varying(128) DEFAULT NULL, + "TBL_ID" bigint DEFAULT NULL, + PRIMARY KEY ("TBL_COLUMN_GRANT_ID") +); +CREATE INDEX "TABLECOLUMNPRIVILEGEINDEX" on "TBL_COL_PRIVS" ("TBL_ID", "COLUMN_NAME", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "TBL_COL_PRIV", "GRANTOR", "GRANTOR_TYPE"); + +-- +-- Table: PART_PRIVS +-- +CREATE TABLE "PART_PRIVS" ( + "PART_GRANT_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PART_ID" bigint DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "PART_PRIV" character varying(128) DEFAULT NULL, + PRIMARY KEY ("PART_GRANT_ID") +); +CREATE INDEX "PARTPRIVILEGEINDEX" on "PART_PRIVS" ("PART_ID", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "PART_PRIV", "GRANTOR", "GRANTOR_TYPE"); + +-- +-- Table: PART_COL_PRIVS +-- +CREATE TABLE "PART_COL_PRIVS" ( + "PART_COLUMN_GRANT_ID" bigint NOT NULL, + "COLUMN_NAME" character varying(128) DEFAULT NULL, + "CREATE_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PART_ID" bigint DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "PART_COL_PRIV" character varying(128) DEFAULT NULL, + PRIMARY KEY ("PART_COLUMN_GRANT_ID") +); +CREATE INDEX "PARTITIONCOLUMNPRIVILEGEINDEX" on "PART_COL_PRIVS" ("PART_ID", "COLUMN_NAME", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "PART_COL_PRIV", "GRANTOR", "GRANTOR_TYPE"); + +-- +-- Foreign Key Definitions +-- + +ALTER TABLE "ROLE_MAP" ADD FOREIGN KEY ("ROLE_ID") + REFERENCES "ROLES" ("ROLE_ID") DEFERRABLE; + +ALTER TABLE "DB_PRIVS" ADD FOREIGN KEY ("DB_ID") + REFERENCES "DBS" ("DB_ID") DEFERRABLE; + +ALTER TABLE "TBL_PRIVS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "TBL_COL_PRIVS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "PART_PRIVS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + +ALTER TABLE "PART_COL_PRIVS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + Index: metastore/scripts/upgrade/postgres/README =================================================================== --- metastore/scripts/upgrade/postgres/README (revision 0) +++ metastore/scripts/upgrade/postgres/README (revision 0) @@ -0,0 +1,102 @@ +Hive MetaStore Upgrade HowTo +============================ + +This document describes how to upgrade the schema of a PostgreSQL backed +Hive MetaStore instance from one release version of Hive to another +release version of Hive. For example, by following the steps listed +below it is possible to upgrade a Hive 0.5.0 MetaStore schema to a +Hive 0.7.0 MetaStore schema. Before attempting this project we +strongly recommend that you read through all of the steps in this +document and familiarize yourself with the required tools. + +MetaStore Upgrade Steps +======================= + +1) Shutdown your MetaStore instance and restrict access to the + MetaStore's PostgreSQL database. It is very important that no one else + accesses or modifies the contents of database while you are + performing the schema upgrade. + +2) Create a backup of your PostgreSQL metastore database. This will allow + you to revert any changes made during the upgrade process if + something goes wrong. The pg_dump utility is the easiest way to + create a backup of a PostgreSQL database: + + % pg_dump --opt > metastore_backup.sql + + Note that you may need also need to specify a hostname and username + using the --host and --username command line switches. + +3) Dump your metastore database schema to a file. We use the pg_dump + utility again, but this time with a command line option that + specifies we are only interested in dumping the DDL statements + required to create the schema: + + % pg_dump --schema-only > my-schema-x.y.z.postgres.sql + +4) The schema upgrade scripts assume that the schema you are upgrading + closely matches the official schema for your particular version of + Hive. The files in this directory with names like + "hive-schema-x.y.z.postgres.sql" contain dumps of the official schemas + corresponding to each of the released versions of Hive. You can + determine differences between your schema and the official schema + by diffing the contents of the official dump with the schema dump + you created in the previous step. Some differences are acceptable + and will not interfere with the upgrade process, but others need to + be resolved manually or the upgrade scripts will fail to complete. + + * Missing Tables: Hive's default configuration causes the MetaStore + to create schema elements only when they are needed. Some tables + may be missing from your MetaStore schema if you have not created + the corresponding Hive catalog objects, e.g. the PARTITIONS table + will probably not exist if you have not created any table + partitions in your MetaStore. You MUST create these missing tables + before running the upgrade scripts. The easiest way to do this is + by executing the official schema DDL script against your + schema. Each of the CREATE TABLE statements in the schema script + include an IF NOT EXISTS clause, so tables which already exist in + your schema will be ignored, and those which don't exist will get + created. + + * Extra Tables: Your schema may include a table named NUCLEUS_TABLES + or a table named SEQUENCE_TABLE. These tables are managed + by the DataNucleus ORM layer and will be created automatically if + they don't exist. No action on your part is required. + + * Reversed Column Constraint Names in the Same Table: Tables with + multiple constraints may have the names of the constraints + reversed. For example, the PARTITIONS table contains two foreign + key constraints named PARTITIONS_FK1 and PARTITIONS_FK2 which + reference SDS.SD_ID and TBLS.TBL_ID respectively. However, in your + schema you may find that PARTITIONS_FK1 references TBLS.TBL_ID and + PARTITIONS_FK2 references SDS.SD_ID. Either version is acceptable + -- the only requirement is that these constraints actually exist. + + * Differences in Column/Constraint Names: Your schema may contain + tables with columns named "IDX" or unique keys named + "UNIQUE". If you find either of these in your schema you + will need to change the names to "INTEGER_IDX" and + "UNIQUE_" before running the upgrade scripts. For more + background on this issue please refer to HIVE-1435. + +5) You are now ready to run the schema upgrade scripts. If you are + upgrading from Hive 0.5.0 to Hive 0.6.0 you need to run the + upgrade-0.5.0-to-0.6.0.postgres.sql script, but if you are upgrading + from 0.5.0 to 0.7.0 you will need to run the 0.5.0 to 0.6.0 upgrade + script followed by the 0.6.0 to 0.7.0 upgrade script. + + # su postgres + $ psql -f /upgrade-0.5.0-to-0.6.0.postgres.sql -d + $ psql -f /upgrade-0.6.0-to-0.7.0.postgres.sql -d + + These scripts should run to completion without any errors. If you + do encounter errors you need to analyze the cause and attempt to + trace it back to one of the preceding steps. + +6) The final step of the upgrade process is validating your freshly + upgraded schema against the official schema for your particular + version of Hive. This is accomplished by repeating steps (3) and + (4), but this time comparing against the official version of the + upgraded schema, e.g. if you upgraded the schema to Hive 0.7.0 then + you will want to compare your schema dump against the contents of + hive-schema-0.7.0.postgres.sql Index: metastore/scripts/upgrade/postgres/hive-schema-0.3.0.postgres.sql =================================================================== --- metastore/scripts/upgrade/postgres/hive-schema-0.3.0.postgres.sql (revision 0) +++ metastore/scripts/upgrade/postgres/hive-schema-0.3.0.postgres.sql (revision 0) @@ -0,0 +1,248 @@ +-- +-- Table: BUCKETING_COLS +-- +CREATE TABLE "BUCKETING_COLS" ( + "SD_ID" bigint NOT NULL, + "BUCKET_COL_NAME" character varying(256) DEFAULT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "INTEGER_IDX") +); +CREATE INDEX "BUCKETING_COLS_N49" on "BUCKETING_COLS" ("SD_ID"); + +-- +-- Table: COLUMNS +-- +CREATE TABLE "COLUMNS" ( + "SD_ID" bigint NOT NULL, + "COMMENT" character varying(256) DEFAULT NULL, + "COLUMN_NAME" character varying(128) NOT NULL, + "TYPE_NAME" character varying(128) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "COLUMN_NAME", "TYPE_NAME") +); +CREATE INDEX "COLUMNS_N49" on "COLUMNS" ("SD_ID"); + +-- +-- Table: PARTITIONS +-- +CREATE TABLE "PARTITIONS" ( + "PART_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "LAST_ACCESS_TIME" bigint NOT NULL, + "PART_NAME" character varying(767) DEFAULT NULL, + "SD_ID" bigint DEFAULT NULL, + "TBL_ID" bigint DEFAULT NULL, + PRIMARY KEY ("PART_ID"), + CONSTRAINT "UNIQUEPARTITION" UNIQUE ("PART_NAME", "TBL_ID") +); +CREATE INDEX "PARTITIONS_N49" on "PARTITIONS" ("SD_ID"); +CREATE INDEX "PARTITIONS_N50" on "PARTITIONS" ("TBL_ID"); + +-- +-- Table: PARTITION_KEYS +-- +CREATE TABLE "PARTITION_KEYS" ( + "TBL_ID" bigint NOT NULL, + "PKEY_COMMENT" character varying(767) DEFAULT NULL, + "PKEY_NAME" character varying(128) NOT NULL, + "PKEY_TYPE" character varying(767) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("TBL_ID", "PKEY_NAME") +); +CREATE INDEX "PARTITION_KEYS_N49" on "PARTITION_KEYS" ("TBL_ID"); + +-- +-- Table: PARTITION_KEY_VALS +-- +CREATE TABLE "PARTITION_KEY_VALS" ( + "PART_ID" bigint NOT NULL, + "PART_KEY_VAL" character varying(256) DEFAULT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("PART_ID", "INTEGER_IDX") +); +CREATE INDEX "PARTITION_KEY_VALS_N49" on "PARTITION_KEY_VALS" ("PART_ID"); + +-- +-- Table: PARTITION_PARAMS +-- +CREATE TABLE "PARTITION_PARAMS" ( + "PART_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("PART_ID", "PARAM_KEY") +); +CREATE INDEX "PARTITION_PARAMS_N49" on "PARTITION_PARAMS" ("PART_ID"); + +-- +-- Table: SDS +-- +CREATE TABLE "SDS" ( + "SD_ID" bigint NOT NULL, + "INPUT_FORMAT" character varying(256) DEFAULT NULL, + "IS_COMPRESSED" bit(1) NOT NULL, + "LOCATION" character varying(767) DEFAULT NULL, + "NUM_BUCKETS" bigint NOT NULL, + "OUTPUT_FORMAT" character varying(256) DEFAULT NULL, + "SERDE_ID" bigint DEFAULT NULL, + PRIMARY KEY ("SD_ID") +); +CREATE INDEX "SDS_N49" on "SDS" ("SERDE_ID"); + +-- +-- Table: SD_PARAMS +-- +CREATE TABLE "SD_PARAMS" ( + "SD_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("SD_ID", "PARAM_KEY") +); +CREATE INDEX "SD_PARAMS_N49" on "SD_PARAMS" ("SD_ID"); + +-- +-- Table: SERDES +-- +CREATE TABLE "SERDES" ( + "SERDE_ID" bigint NOT NULL, + "NAME" character varying(128) DEFAULT NULL, + "SLIB" character varying(767) DEFAULT NULL, + PRIMARY KEY ("SERDE_ID") +); + +-- +-- Table: SERDE_PARAMS +-- +CREATE TABLE "SERDE_PARAMS" ( + "SERDE_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("SERDE_ID", "PARAM_KEY") +); +CREATE INDEX "SERDE_PARAMS_N49" on "SERDE_PARAMS" ("SERDE_ID"); + +-- +-- Table: SORT_COLS +-- +CREATE TABLE "SORT_COLS" ( + "SD_ID" bigint NOT NULL, + "COLUMN_NAME" character varying(128) DEFAULT NULL, + "ORDER" bigint NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "INTEGER_IDX") +); +CREATE INDEX "SORT_COLS_N49" on "SORT_COLS" ("SD_ID"); + +-- +-- Table: TABLE_PARAMS +-- +CREATE TABLE "TABLE_PARAMS" ( + "TBL_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("TBL_ID", "PARAM_KEY") +); +CREATE INDEX "TABLE_PARAMS_N49" on "TABLE_PARAMS" ("TBL_ID"); + +-- +-- Table: TBLS +-- +CREATE TABLE "TBLS" ( + "TBL_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "DB_ID" bigint DEFAULT NULL, + "LAST_ACCESS_TIME" bigint NOT NULL, + "OWNER" character varying(128) DEFAULT NULL, + "RETENTION" bigint NOT NULL, + "SD_ID" bigint DEFAULT NULL, + "TBL_NAME" character varying(128) DEFAULT NULL, + PRIMARY KEY ("TBL_ID"), + CONSTRAINT "UNIQUETABLE" UNIQUE ("TBL_NAME", "DB_ID") +); +CREATE INDEX "TBLS_N50" on "TBLS" ("SD_ID"); +CREATE INDEX "TBLS_N49" on "TBLS" ("DB_ID"); + +-- +-- Table: TYPE_FIELDS +-- +CREATE TABLE "TYPE_FIELDS" ( + "TYPE_NAME" bigint NOT NULL, + "COMMENT" character varying(256) DEFAULT NULL, + "FIELD_NAME" character varying(128) NOT NULL, + "FIELD_TYPE" character varying(128) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("TYPE_NAME", "FIELD_NAME") +); +CREATE INDEX "TYPE_FIELDS_N49" on "TYPE_FIELDS" ("TYPE_NAME"); + +-- +-- Table: DBS +-- +CREATE TABLE "DBS" ( + "DB_ID" bigint NOT NULL, + "DESC" character varying(767) DEFAULT NULL, + "NAME" character varying(128) DEFAULT NULL, + PRIMARY KEY ("DB_ID"), + CONSTRAINT "UNIQUE_DATABASE" UNIQUE ("NAME") +); + +-- +-- Table: TYPES +-- +CREATE TABLE "TYPES" ( + "TYPES_ID" bigint NOT NULL, + "TYPE_NAME" character varying(128) DEFAULT NULL, + "TYPE1" character varying(128) DEFAULT NULL, + "TYPE2" character varying(128) DEFAULT NULL, + PRIMARY KEY ("TYPES_ID"), + CONSTRAINT "UNIQUE_TYPE" UNIQUE ("TYPE_NAME") +); + +-- +-- Foreign Key Definitions +-- + +ALTER TABLE "BUCKETING_COLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "COLUMNS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "PARTITIONS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "PARTITIONS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_KEYS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_KEY_VALS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_PARAMS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + +ALTER TABLE "SDS" ADD FOREIGN KEY ("SERDE_ID") + REFERENCES "SERDES" ("SERDE_ID") DEFERRABLE; + +ALTER TABLE "SD_PARAMS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "SERDE_PARAMS" ADD FOREIGN KEY ("SERDE_ID") + REFERENCES "SERDES" ("SERDE_ID") DEFERRABLE; + +ALTER TABLE "SORT_COLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "TABLE_PARAMS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "TBLS" ADD FOREIGN KEY ("DB_ID") + REFERENCES "DBS" ("DB_ID") DEFERRABLE; + +ALTER TABLE "TBLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "TYPE_FIELDS" ADD FOREIGN KEY ("TYPE_NAME") + REFERENCES "TYPES" ("TYPES_ID") DEFERRABLE; + Index: metastore/scripts/upgrade/postgres/hive-schema-0.4.0.postgres.sql =================================================================== --- metastore/scripts/upgrade/postgres/hive-schema-0.4.0.postgres.sql (revision 0) +++ metastore/scripts/upgrade/postgres/hive-schema-0.4.0.postgres.sql (revision 0) @@ -0,0 +1,248 @@ +-- +-- Table: BUCKETING_COLS +-- +CREATE TABLE "BUCKETING_COLS" ( + "SD_ID" bigint NOT NULL, + "BUCKET_COL_NAME" character varying(256) DEFAULT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "INTEGER_IDX") +); +CREATE INDEX "BUCKETING_COLS_N49" on "BUCKETING_COLS" ("SD_ID"); + +-- +-- Table: COLUMNS +-- +CREATE TABLE "COLUMNS" ( + "SD_ID" bigint NOT NULL, + "COMMENT" character varying(256) DEFAULT NULL, + "COLUMN_NAME" character varying(128) NOT NULL, + "TYPE_NAME" character varying(128) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "COLUMN_NAME", "TYPE_NAME") +); +CREATE INDEX "COLUMNS_N49" on "COLUMNS" ("SD_ID"); + +-- +-- Table: PARTITIONS +-- +CREATE TABLE "PARTITIONS" ( + "PART_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "LAST_ACCESS_TIME" bigint NOT NULL, + "PART_NAME" character varying(767) DEFAULT NULL, + "SD_ID" bigint DEFAULT NULL, + "TBL_ID" bigint DEFAULT NULL, + PRIMARY KEY ("PART_ID"), + CONSTRAINT "UNIQUEPARTITION" UNIQUE ("PART_NAME", "TBL_ID") +); +CREATE INDEX "PARTITIONS_N49" on "PARTITIONS" ("SD_ID"); +CREATE INDEX "PARTITIONS_N50" on "PARTITIONS" ("TBL_ID"); + +-- +-- Table: PARTITION_KEYS +-- +CREATE TABLE "PARTITION_KEYS" ( + "TBL_ID" bigint NOT NULL, + "PKEY_COMMENT" character varying(767) DEFAULT NULL, + "PKEY_NAME" character varying(128) NOT NULL, + "PKEY_TYPE" character varying(767) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("TBL_ID", "PKEY_NAME") +); +CREATE INDEX "PARTITION_KEYS_N49" on "PARTITION_KEYS" ("TBL_ID"); + +-- +-- Table: PARTITION_KEY_VALS +-- +CREATE TABLE "PARTITION_KEY_VALS" ( + "PART_ID" bigint NOT NULL, + "PART_KEY_VAL" character varying(256) DEFAULT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("PART_ID", "INTEGER_IDX") +); +CREATE INDEX "PARTITION_KEY_VALS_N49" on "PARTITION_KEY_VALS" ("PART_ID"); + +-- +-- Table: PARTITION_PARAMS +-- +CREATE TABLE "PARTITION_PARAMS" ( + "PART_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("PART_ID", "PARAM_KEY") +); +CREATE INDEX "PARTITION_PARAMS_N49" on "PARTITION_PARAMS" ("PART_ID"); + +-- +-- Table: SDS +-- +CREATE TABLE "SDS" ( + "SD_ID" bigint NOT NULL, + "INPUT_FORMAT" character varying(256) DEFAULT NULL, + "IS_COMPRESSED" bit(1) NOT NULL, + "LOCATION" character varying(767) DEFAULT NULL, + "NUM_BUCKETS" bigint NOT NULL, + "OUTPUT_FORMAT" character varying(256) DEFAULT NULL, + "SERDE_ID" bigint DEFAULT NULL, + PRIMARY KEY ("SD_ID") +); +CREATE INDEX "SDS_N49" on "SDS" ("SERDE_ID"); + +-- +-- Table: SD_PARAMS +-- +CREATE TABLE "SD_PARAMS" ( + "SD_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("SD_ID", "PARAM_KEY") +); +CREATE INDEX "SD_PARAMS_N49" on "SD_PARAMS" ("SD_ID"); + +-- +-- Table: SERDES +-- +CREATE TABLE "SERDES" ( + "SERDE_ID" bigint NOT NULL, + "NAME" character varying(128) DEFAULT NULL, + "SLIB" character varying(767) DEFAULT NULL, + PRIMARY KEY ("SERDE_ID") +); + +-- +-- Table: SERDE_PARAMS +-- +CREATE TABLE "SERDE_PARAMS" ( + "SERDE_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("SERDE_ID", "PARAM_KEY") +); +CREATE INDEX "SERDE_PARAMS_N49" on "SERDE_PARAMS" ("SERDE_ID"); + +-- +-- Table: SORT_COLS +-- +CREATE TABLE "SORT_COLS" ( + "SD_ID" bigint NOT NULL, + "COLUMN_NAME" character varying(128) DEFAULT NULL, + "ORDER" bigint NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "INTEGER_IDX") +); +CREATE INDEX "SORT_COLS_N49" on "SORT_COLS" ("SD_ID"); + +-- +-- Table: TABLE_PARAMS +-- +CREATE TABLE "TABLE_PARAMS" ( + "TBL_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("TBL_ID", "PARAM_KEY") +); +CREATE INDEX "TABLE_PARAMS_N49" on "TABLE_PARAMS" ("TBL_ID"); + +-- +-- Table: TBLS +-- +CREATE TABLE "TBLS" ( + "TBL_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "DB_ID" bigint DEFAULT NULL, + "LAST_ACCESS_TIME" bigint NOT NULL, + "OWNER" character varying(128) DEFAULT NULL, + "RETENTION" bigint NOT NULL, + "SD_ID" bigint DEFAULT NULL, + "TBL_NAME" character varying(128) DEFAULT NULL, + PRIMARY KEY ("TBL_ID"), + CONSTRAINT "UNIQUETABLE" UNIQUE ("TBL_NAME", "DB_ID") +); +CREATE INDEX "TBLS_N50" on "TBLS" ("SD_ID"); +CREATE INDEX "TBLS_N49" on "TBLS" ("DB_ID"); + +-- +-- Table: TYPE_FIELDS +-- +CREATE TABLE "TYPE_FIELDS" ( + "TYPE_NAME" bigint NOT NULL, + "COMMENT" character varying(256) DEFAULT NULL, + "FIELD_NAME" character varying(128) NOT NULL, + "FIELD_TYPE" character varying(128) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("TYPE_NAME", "FIELD_NAME") +); +CREATE INDEX "TYPE_FIELDS_N49" on "TYPE_FIELDS" ("TYPE_NAME"); + +-- +-- Table: DBS +-- +CREATE TABLE "DBS" ( + "DB_ID" bigint NOT NULL, + "DESC" character varying(767) DEFAULT NULL, + "NAME" character varying(128) DEFAULT NULL, + PRIMARY KEY ("DB_ID"), + CONSTRAINT "UNIQUE_DATABASE" UNIQUE ("NAME") +); + +-- +-- Table: TYPES +-- +CREATE TABLE "TYPES" ( + "TYPES_ID" bigint NOT NULL, + "TYPE_NAME" character varying(128) DEFAULT NULL, + "TYPE1" character varying(128) DEFAULT NULL, + "TYPE2" character varying(128) DEFAULT NULL, + PRIMARY KEY ("TYPES_ID"), + CONSTRAINT "UNIQUE_TYPE" UNIQUE ("TYPE_NAME") +); + +-- +-- Foreign Key Definitions +-- + +ALTER TABLE "BUCKETING_COLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "COLUMNS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "PARTITIONS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "PARTITIONS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_KEYS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_KEY_VALS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_PARAMS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + +ALTER TABLE "SDS" ADD FOREIGN KEY ("SERDE_ID") + REFERENCES "SERDES" ("SERDE_ID") DEFERRABLE; + +ALTER TABLE "SD_PARAMS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "SERDE_PARAMS" ADD FOREIGN KEY ("SERDE_ID") + REFERENCES "SERDES" ("SERDE_ID") DEFERRABLE; + +ALTER TABLE "SORT_COLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "TABLE_PARAMS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "TBLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "TBLS" ADD FOREIGN KEY ("DB_ID") + REFERENCES "DBS" ("DB_ID") DEFERRABLE; + +ALTER TABLE "TYPE_FIELDS" ADD FOREIGN KEY ("TYPE_NAME") + REFERENCES "TYPES" ("TYPES_ID") DEFERRABLE; + Index: metastore/scripts/upgrade/postgres/hive-schema-0.4.1.postgres.sql =================================================================== --- metastore/scripts/upgrade/postgres/hive-schema-0.4.1.postgres.sql (revision 0) +++ metastore/scripts/upgrade/postgres/hive-schema-0.4.1.postgres.sql (revision 0) @@ -0,0 +1,248 @@ +-- +-- Table: BUCKETING_COLS +-- +CREATE TABLE "BUCKETING_COLS" ( + "SD_ID" bigint NOT NULL, + "BUCKET_COL_NAME" character varying(256) DEFAULT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "INTEGER_IDX") +); +CREATE INDEX "BUCKETING_COLS_N49" on "BUCKETING_COLS" ("SD_ID"); + +-- +-- Table: COLUMNS +-- +CREATE TABLE "COLUMNS" ( + "SD_ID" bigint NOT NULL, + "COMMENT" character varying(256) DEFAULT NULL, + "COLUMN_NAME" character varying(128) NOT NULL, + "TYPE_NAME" character varying(128) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "COLUMN_NAME", "TYPE_NAME") +); +CREATE INDEX "COLUMNS_N49" on "COLUMNS" ("SD_ID"); + +-- +-- Table: PARTITIONS +-- +CREATE TABLE "PARTITIONS" ( + "PART_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "LAST_ACCESS_TIME" bigint NOT NULL, + "PART_NAME" character varying(767) DEFAULT NULL, + "SD_ID" bigint DEFAULT NULL, + "TBL_ID" bigint DEFAULT NULL, + PRIMARY KEY ("PART_ID"), + CONSTRAINT "UNIQUEPARTITION" UNIQUE ("PART_NAME", "TBL_ID") +); +CREATE INDEX "PARTITIONS_N49" on "PARTITIONS" ("TBL_ID"); +CREATE INDEX "PARTITIONS_N50" on "PARTITIONS" ("SD_ID"); + +-- +-- Table: PARTITION_KEYS +-- +CREATE TABLE "PARTITION_KEYS" ( + "TBL_ID" bigint NOT NULL, + "PKEY_COMMENT" character varying(767) DEFAULT NULL, + "PKEY_NAME" character varying(128) NOT NULL, + "PKEY_TYPE" character varying(767) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("TBL_ID", "PKEY_NAME") +); +CREATE INDEX "PARTITION_KEYS_N49" on "PARTITION_KEYS" ("TBL_ID"); + +-- +-- Table: PARTITION_KEY_VALS +-- +CREATE TABLE "PARTITION_KEY_VALS" ( + "PART_ID" bigint NOT NULL, + "PART_KEY_VAL" character varying(256) DEFAULT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("PART_ID", "INTEGER_IDX") +); +CREATE INDEX "PARTITION_KEY_VALS_N49" on "PARTITION_KEY_VALS" ("PART_ID"); + +-- +-- Table: PARTITION_PARAMS +-- +CREATE TABLE "PARTITION_PARAMS" ( + "PART_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("PART_ID", "PARAM_KEY") +); +CREATE INDEX "PARTITION_PARAMS_N49" on "PARTITION_PARAMS" ("PART_ID"); + +-- +-- Table: SDS +-- +CREATE TABLE "SDS" ( + "SD_ID" bigint NOT NULL, + "INPUT_FORMAT" character varying(256) DEFAULT NULL, + "IS_COMPRESSED" bit(1) NOT NULL, + "LOCATION" character varying(767) DEFAULT NULL, + "NUM_BUCKETS" bigint NOT NULL, + "OUTPUT_FORMAT" character varying(256) DEFAULT NULL, + "SERDE_ID" bigint DEFAULT NULL, + PRIMARY KEY ("SD_ID") +); +CREATE INDEX "SDS_N49" on "SDS" ("SERDE_ID"); + +-- +-- Table: SD_PARAMS +-- +CREATE TABLE "SD_PARAMS" ( + "SD_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("SD_ID", "PARAM_KEY") +); +CREATE INDEX "SD_PARAMS_N49" on "SD_PARAMS" ("SD_ID"); + +-- +-- Table: SERDES +-- +CREATE TABLE "SERDES" ( + "SERDE_ID" bigint NOT NULL, + "NAME" character varying(128) DEFAULT NULL, + "SLIB" character varying(767) DEFAULT NULL, + PRIMARY KEY ("SERDE_ID") +); + +-- +-- Table: SERDE_PARAMS +-- +CREATE TABLE "SERDE_PARAMS" ( + "SERDE_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("SERDE_ID", "PARAM_KEY") +); +CREATE INDEX "SERDE_PARAMS_N49" on "SERDE_PARAMS" ("SERDE_ID"); + +-- +-- Table: SORT_COLS +-- +CREATE TABLE "SORT_COLS" ( + "SD_ID" bigint NOT NULL, + "COLUMN_NAME" character varying(128) DEFAULT NULL, + "ORDER" bigint NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "INTEGER_IDX") +); +CREATE INDEX "SORT_COLS_N49" on "SORT_COLS" ("SD_ID"); + +-- +-- Table: TABLE_PARAMS +-- +CREATE TABLE "TABLE_PARAMS" ( + "TBL_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("TBL_ID", "PARAM_KEY") +); +CREATE INDEX "TABLE_PARAMS_N49" on "TABLE_PARAMS" ("TBL_ID"); + +-- +-- Table: TBLS +-- +CREATE TABLE "TBLS" ( + "TBL_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "DB_ID" bigint DEFAULT NULL, + "LAST_ACCESS_TIME" bigint NOT NULL, + "OWNER" character varying(128) DEFAULT NULL, + "RETENTION" bigint NOT NULL, + "SD_ID" bigint DEFAULT NULL, + "TBL_NAME" character varying(128) DEFAULT NULL, + PRIMARY KEY ("TBL_ID"), + CONSTRAINT "UNIQUETABLE" UNIQUE ("TBL_NAME", "DB_ID") +); +CREATE INDEX "TBLS_N50" on "TBLS" ("SD_ID"); +CREATE INDEX "TBLS_N49" on "TBLS" ("DB_ID"); + +-- +-- Table: TYPE_FIELDS +-- +CREATE TABLE "TYPE_FIELDS" ( + "TYPE_NAME" bigint NOT NULL, + "COMMENT" character varying(256) DEFAULT NULL, + "FIELD_NAME" character varying(128) NOT NULL, + "FIELD_TYPE" character varying(128) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("TYPE_NAME", "FIELD_NAME") +); +CREATE INDEX "TYPE_FIELDS_N49" on "TYPE_FIELDS" ("TYPE_NAME"); + +-- +-- Table: DBS +-- +CREATE TABLE "DBS" ( + "DB_ID" bigint NOT NULL, + "DESC" character varying(767) DEFAULT NULL, + "NAME" character varying(128) DEFAULT NULL, + PRIMARY KEY ("DB_ID"), + CONSTRAINT "UNIQUE_DATABASE" UNIQUE ("NAME") +); + +-- +-- Table: TYPES +-- +CREATE TABLE "TYPES" ( + "TYPES_ID" bigint NOT NULL, + "TYPE_NAME" character varying(128) DEFAULT NULL, + "TYPE1" character varying(128) DEFAULT NULL, + "TYPE2" character varying(128) DEFAULT NULL, + PRIMARY KEY ("TYPES_ID"), + CONSTRAINT "UNIQUE_TYPE" UNIQUE ("TYPE_NAME") +); + +-- +-- Foreign Key Definitions +-- + +ALTER TABLE "BUCKETING_COLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "COLUMNS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "PARTITIONS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "PARTITIONS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_KEYS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_KEY_VALS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_PARAMS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + +ALTER TABLE "SDS" ADD FOREIGN KEY ("SERDE_ID") + REFERENCES "SERDES" ("SERDE_ID") DEFERRABLE; + +ALTER TABLE "SD_PARAMS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "SERDE_PARAMS" ADD FOREIGN KEY ("SERDE_ID") + REFERENCES "SERDES" ("SERDE_ID") DEFERRABLE; + +ALTER TABLE "SORT_COLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "TABLE_PARAMS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "TBLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "TBLS" ADD FOREIGN KEY ("DB_ID") + REFERENCES "DBS" ("DB_ID") DEFERRABLE; + +ALTER TABLE "TYPE_FIELDS" ADD FOREIGN KEY ("TYPE_NAME") + REFERENCES "TYPES" ("TYPES_ID") DEFERRABLE; + Index: metastore/scripts/upgrade/postgres/hive-schema-0.5.0.postgres.sql =================================================================== --- metastore/scripts/upgrade/postgres/hive-schema-0.5.0.postgres.sql (revision 0) +++ metastore/scripts/upgrade/postgres/hive-schema-0.5.0.postgres.sql (revision 0) @@ -0,0 +1,248 @@ +-- +-- Table: BUCKETING_COLS +-- +CREATE TABLE "BUCKETING_COLS" ( + "SD_ID" bigint NOT NULL, + "BUCKET_COL_NAME" character varying(256) DEFAULT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "INTEGER_IDX") +); +CREATE INDEX "BUCKETING_COLS_N49" on "BUCKETING_COLS" ("SD_ID"); + +-- +-- Table: COLUMNS +-- +CREATE TABLE "COLUMNS" ( + "SD_ID" bigint NOT NULL, + "COMMENT" character varying(256) DEFAULT NULL, + "COLUMN_NAME" character varying(128) NOT NULL, + "TYPE_NAME" character varying(128) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "COLUMN_NAME", "TYPE_NAME") +); +CREATE INDEX "COLUMNS_N49" on "COLUMNS" ("SD_ID"); + +-- +-- Table: PARTITIONS +-- +CREATE TABLE "PARTITIONS" ( + "PART_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "LAST_ACCESS_TIME" bigint NOT NULL, + "PART_NAME" character varying(767) DEFAULT NULL, + "SD_ID" bigint DEFAULT NULL, + "TBL_ID" bigint DEFAULT NULL, + PRIMARY KEY ("PART_ID"), + CONSTRAINT "UNIQUEPARTITION" UNIQUE ("PART_NAME", "TBL_ID") +); +CREATE INDEX "PARTITIONS_N49" on "PARTITIONS" ("SD_ID"); +CREATE INDEX "PARTITIONS_N50" on "PARTITIONS" ("TBL_ID"); + +-- +-- Table: PARTITION_KEYS +-- +CREATE TABLE "PARTITION_KEYS" ( + "TBL_ID" bigint NOT NULL, + "PKEY_COMMENT" character varying(767) DEFAULT NULL, + "PKEY_NAME" character varying(128) NOT NULL, + "PKEY_TYPE" character varying(767) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("TBL_ID", "PKEY_NAME") +); +CREATE INDEX "PARTITION_KEYS_N49" on "PARTITION_KEYS" ("TBL_ID"); + +-- +-- Table: PARTITION_KEY_VALS +-- +CREATE TABLE "PARTITION_KEY_VALS" ( + "PART_ID" bigint NOT NULL, + "PART_KEY_VAL" character varying(256) DEFAULT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("PART_ID", "INTEGER_IDX") +); +CREATE INDEX "PARTITION_KEY_VALS_N49" on "PARTITION_KEY_VALS" ("PART_ID"); + +-- +-- Table: PARTITION_PARAMS +-- +CREATE TABLE "PARTITION_PARAMS" ( + "PART_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("PART_ID", "PARAM_KEY") +); +CREATE INDEX "PARTITION_PARAMS_N49" on "PARTITION_PARAMS" ("PART_ID"); + +-- +-- Table: SDS +-- +CREATE TABLE "SDS" ( + "SD_ID" bigint NOT NULL, + "INPUT_FORMAT" character varying(256) DEFAULT NULL, + "IS_COMPRESSED" bit(1) NOT NULL, + "LOCATION" character varying(767) DEFAULT NULL, + "NUM_BUCKETS" bigint NOT NULL, + "OUTPUT_FORMAT" character varying(256) DEFAULT NULL, + "SERDE_ID" bigint DEFAULT NULL, + PRIMARY KEY ("SD_ID") +); +CREATE INDEX "SDS_N49" on "SDS" ("SERDE_ID"); + +-- +-- Table: SD_PARAMS +-- +CREATE TABLE "SD_PARAMS" ( + "SD_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("SD_ID", "PARAM_KEY") +); +CREATE INDEX "SD_PARAMS_N49" on "SD_PARAMS" ("SD_ID"); + +-- +-- Table: SERDES +-- +CREATE TABLE "SERDES" ( + "SERDE_ID" bigint NOT NULL, + "NAME" character varying(128) DEFAULT NULL, + "SLIB" character varying(767) DEFAULT NULL, + PRIMARY KEY ("SERDE_ID") +); + +-- +-- Table: SERDE_PARAMS +-- +CREATE TABLE "SERDE_PARAMS" ( + "SERDE_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("SERDE_ID", "PARAM_KEY") +); +CREATE INDEX "SERDE_PARAMS_N49" on "SERDE_PARAMS" ("SERDE_ID"); + +-- +-- Table: SORT_COLS +-- +CREATE TABLE "SORT_COLS" ( + "SD_ID" bigint NOT NULL, + "COLUMN_NAME" character varying(128) DEFAULT NULL, + "ORDER" bigint NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "INTEGER_IDX") +); +CREATE INDEX "SORT_COLS_N49" on "SORT_COLS" ("SD_ID"); + +-- +-- Table: TABLE_PARAMS +-- +CREATE TABLE "TABLE_PARAMS" ( + "TBL_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("TBL_ID", "PARAM_KEY") +); +CREATE INDEX "TABLE_PARAMS_N49" on "TABLE_PARAMS" ("TBL_ID"); + +-- +-- Table: TBLS +-- +CREATE TABLE "TBLS" ( + "TBL_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "DB_ID" bigint DEFAULT NULL, + "LAST_ACCESS_TIME" bigint NOT NULL, + "OWNER" character varying(128) DEFAULT NULL, + "RETENTION" bigint NOT NULL, + "SD_ID" bigint DEFAULT NULL, + "TBL_NAME" character varying(128) DEFAULT NULL, + PRIMARY KEY ("TBL_ID"), + CONSTRAINT "UNIQUETABLE" UNIQUE ("TBL_NAME", "DB_ID") +); +CREATE INDEX "TBLS_N50" on "TBLS" ("SD_ID"); +CREATE INDEX "TBLS_N49" on "TBLS" ("DB_ID"); + +-- +-- Table: TYPE_FIELDS +-- +CREATE TABLE "TYPE_FIELDS" ( + "TYPE_NAME" bigint NOT NULL, + "COMMENT" character varying(256) DEFAULT NULL, + "FIELD_NAME" character varying(128) NOT NULL, + "FIELD_TYPE" character varying(128) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("TYPE_NAME", "FIELD_NAME") +); +CREATE INDEX "TYPE_FIELDS_N49" on "TYPE_FIELDS" ("TYPE_NAME"); + +-- +-- Table: DBS +-- +CREATE TABLE "DBS" ( + "DB_ID" bigint NOT NULL, + "DESC" character varying(767) DEFAULT NULL, + "NAME" character varying(128) DEFAULT NULL, + PRIMARY KEY ("DB_ID"), + CONSTRAINT "UNIQUE_DATABASE" UNIQUE ("NAME") +); + +-- +-- Table: TYPES +-- +CREATE TABLE "TYPES" ( + "TYPES_ID" bigint NOT NULL, + "TYPE_NAME" character varying(128) DEFAULT NULL, + "TYPE1" character varying(128) DEFAULT NULL, + "TYPE2" character varying(128) DEFAULT NULL, + PRIMARY KEY ("TYPES_ID"), + CONSTRAINT "UNIQUE_TYPE" UNIQUE ("TYPE_NAME") +); + +-- +-- Foreign Key Definitions +-- + +ALTER TABLE "BUCKETING_COLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "COLUMNS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "PARTITIONS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "PARTITIONS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_KEYS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_KEY_VALS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_PARAMS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + +ALTER TABLE "SDS" ADD FOREIGN KEY ("SERDE_ID") + REFERENCES "SERDES" ("SERDE_ID") DEFERRABLE; + +ALTER TABLE "SD_PARAMS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "SERDE_PARAMS" ADD FOREIGN KEY ("SERDE_ID") + REFERENCES "SERDES" ("SERDE_ID") DEFERRABLE; + +ALTER TABLE "SORT_COLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "TABLE_PARAMS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "TBLS" ADD FOREIGN KEY ("DB_ID") + REFERENCES "DBS" ("DB_ID") DEFERRABLE; + +ALTER TABLE "TBLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "TYPE_FIELDS" ADD FOREIGN KEY ("TYPE_NAME") + REFERENCES "TYPES" ("TYPES_ID") DEFERRABLE; + Index: metastore/scripts/upgrade/postgres/hive-schema-0.6.0.postgres.sql =================================================================== --- metastore/scripts/upgrade/postgres/hive-schema-0.6.0.postgres.sql (revision 0) +++ metastore/scripts/upgrade/postgres/hive-schema-0.6.0.postgres.sql (revision 0) @@ -0,0 +1,252 @@ +-- +-- Table: BUCKETING_COLS +-- +CREATE TABLE "BUCKETING_COLS" ( + "SD_ID" bigint NOT NULL, + "BUCKET_COL_NAME" character varying(256) DEFAULT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "INTEGER_IDX") +); +CREATE INDEX "BUCKETING_COLS_N49" on "BUCKETING_COLS" ("SD_ID"); + +-- +-- Table: COLUMNS +-- +CREATE TABLE "COLUMNS" ( + "SD_ID" bigint NOT NULL, + "COMMENT" character varying(256) DEFAULT NULL, + "COLUMN_NAME" character varying(128) NOT NULL, + "TYPE_NAME" character varying(4000) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "COLUMN_NAME") +); +CREATE INDEX "COLUMNS_N49" on "COLUMNS" ("SD_ID"); + +-- +-- Table: PARTITIONS +-- +CREATE TABLE "PARTITIONS" ( + "PART_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "LAST_ACCESS_TIME" bigint NOT NULL, + "PART_NAME" character varying(767) DEFAULT NULL, + "SD_ID" bigint DEFAULT NULL, + "TBL_ID" bigint DEFAULT NULL, + PRIMARY KEY ("PART_ID"), + CONSTRAINT "UNIQUEPARTITION" UNIQUE ("PART_NAME", "TBL_ID") +); +CREATE INDEX "PARTITIONS_N49" on "PARTITIONS" ("SD_ID"); +CREATE INDEX "PARTITIONS_N50" on "PARTITIONS" ("TBL_ID"); + +-- +-- Table: PARTITION_KEYS +-- +CREATE TABLE "PARTITION_KEYS" ( + "TBL_ID" bigint NOT NULL, + "PKEY_COMMENT" character varying(4000) DEFAULT NULL, + "PKEY_NAME" character varying(128) NOT NULL, + "PKEY_TYPE" character varying(767) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("TBL_ID", "PKEY_NAME") +); +CREATE INDEX "PARTITION_KEYS_N49" on "PARTITION_KEYS" ("TBL_ID"); + +-- +-- Table: PARTITION_KEY_VALS +-- +CREATE TABLE "PARTITION_KEY_VALS" ( + "PART_ID" bigint NOT NULL, + "PART_KEY_VAL" character varying(256) DEFAULT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("PART_ID", "INTEGER_IDX") +); +CREATE INDEX "PARTITION_KEY_VALS_N49" on "PARTITION_KEY_VALS" ("PART_ID"); + +-- +-- Table: PARTITION_PARAMS +-- +CREATE TABLE "PARTITION_PARAMS" ( + "PART_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(4000) DEFAULT NULL, + PRIMARY KEY ("PART_ID", "PARAM_KEY") +); +CREATE INDEX "PARTITION_PARAMS_N49" on "PARTITION_PARAMS" ("PART_ID"); + +-- +-- Table: SDS +-- +CREATE TABLE "SDS" ( + "SD_ID" bigint NOT NULL, + "INPUT_FORMAT" character varying(4000) DEFAULT NULL, + "IS_COMPRESSED" bit(1) NOT NULL, + "LOCATION" character varying(4000) DEFAULT NULL, + "NUM_BUCKETS" bigint NOT NULL, + "OUTPUT_FORMAT" character varying(4000) DEFAULT NULL, + "SERDE_ID" bigint DEFAULT NULL, + PRIMARY KEY ("SD_ID") +); +CREATE INDEX "SDS_N49" on "SDS" ("SERDE_ID"); + +-- +-- Table: SD_PARAMS +-- +CREATE TABLE "SD_PARAMS" ( + "SD_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(4000) DEFAULT NULL, + PRIMARY KEY ("SD_ID", "PARAM_KEY") +); +CREATE INDEX "SD_PARAMS_N49" on "SD_PARAMS" ("SD_ID"); + +-- +-- Table: SERDES +-- +CREATE TABLE "SERDES" ( + "SERDE_ID" bigint NOT NULL, + "NAME" character varying(128) DEFAULT NULL, + "SLIB" character varying(4000) DEFAULT NULL, + PRIMARY KEY ("SERDE_ID") +); + +-- +-- Table: SERDE_PARAMS +-- +CREATE TABLE "SERDE_PARAMS" ( + "SERDE_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(4000) DEFAULT NULL, + PRIMARY KEY ("SERDE_ID", "PARAM_KEY") +); +CREATE INDEX "SERDE_PARAMS_N49" on "SERDE_PARAMS" ("SERDE_ID"); + +-- +-- Table: SORT_COLS +-- +CREATE TABLE "SORT_COLS" ( + "SD_ID" bigint NOT NULL, + "COLUMN_NAME" character varying(128) DEFAULT NULL, + "ORDER" bigint NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "INTEGER_IDX") +); +CREATE INDEX "SORT_COLS_N49" on "SORT_COLS" ("SD_ID"); + +-- +-- Table: TABLE_PARAMS +-- +CREATE TABLE "TABLE_PARAMS" ( + "TBL_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(4000) DEFAULT NULL, + PRIMARY KEY ("TBL_ID", "PARAM_KEY") +); +CREATE INDEX "TABLE_PARAMS_N49" on "TABLE_PARAMS" ("TBL_ID"); + +-- +-- Table: TBLS +-- +CREATE TABLE "TBLS" ( + "TBL_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "DB_ID" bigint DEFAULT NULL, + "LAST_ACCESS_TIME" bigint NOT NULL, + "OWNER" character varying(767) DEFAULT NULL, + "RETENTION" bigint NOT NULL, + "SD_ID" bigint DEFAULT NULL, + "TBL_NAME" character varying(128) DEFAULT NULL, + "TBL_TYPE" character varying(128) DEFAULT NULL, + "VIEW_EXPANDED_TEXT" text, + "VIEW_ORIGINAL_TEXT" text, + PRIMARY KEY ("TBL_ID"), + CONSTRAINT "UNIQUETABLE" UNIQUE ("TBL_NAME", "DB_ID") +); +CREATE INDEX "TBLS_N50" on "TBLS" ("DB_ID"); +CREATE INDEX "TBLS_N49" on "TBLS" ("SD_ID"); + +-- +-- Table: TYPE_FIELDS +-- +CREATE TABLE "TYPE_FIELDS" ( + "TYPE_NAME" bigint NOT NULL, + "COMMENT" character varying(256) DEFAULT NULL, + "FIELD_NAME" character varying(128) NOT NULL, + "FIELD_TYPE" character varying(767) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("TYPE_NAME", "FIELD_NAME") +); +CREATE INDEX "TYPE_FIELDS_N49" on "TYPE_FIELDS" ("TYPE_NAME"); + +-- +-- Table: DBS +-- +CREATE TABLE "DBS" ( + "DB_ID" bigint NOT NULL, + "DESC" character varying(4000) DEFAULT NULL, + "DB_LOCATION_URI" character varying(4000) NOT NULL, + "NAME" character varying(128) DEFAULT NULL, + PRIMARY KEY ("DB_ID"), + CONSTRAINT "UNIQUE_DATABASE" UNIQUE ("NAME") +); + +-- +-- Table: TYPES +-- +CREATE TABLE "TYPES" ( + "TYPES_ID" bigint NOT NULL, + "TYPE_NAME" character varying(128) DEFAULT NULL, + "TYPE1" character varying(767) DEFAULT NULL, + "TYPE2" character varying(767) DEFAULT NULL, + PRIMARY KEY ("TYPES_ID"), + CONSTRAINT "UNIQUE_TYPE" UNIQUE ("TYPE_NAME") +); + +-- +-- Foreign Key Definitions +-- + +ALTER TABLE "BUCKETING_COLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "COLUMNS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "PARTITIONS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "PARTITIONS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_KEYS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_KEY_VALS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_PARAMS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + +ALTER TABLE "SDS" ADD FOREIGN KEY ("SERDE_ID") + REFERENCES "SERDES" ("SERDE_ID") DEFERRABLE; + +ALTER TABLE "SD_PARAMS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "SERDE_PARAMS" ADD FOREIGN KEY ("SERDE_ID") + REFERENCES "SERDES" ("SERDE_ID") DEFERRABLE; + +ALTER TABLE "SORT_COLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "TABLE_PARAMS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "TBLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "TBLS" ADD FOREIGN KEY ("DB_ID") + REFERENCES "DBS" ("DB_ID") DEFERRABLE; + +ALTER TABLE "TYPE_FIELDS" ADD FOREIGN KEY ("TYPE_NAME") + REFERENCES "TYPES" ("TYPES_ID") DEFERRABLE; + Index: metastore/scripts/upgrade/postgres/hive-schema-0.7.0.postgres.sql =================================================================== --- metastore/scripts/upgrade/postgres/hive-schema-0.7.0.postgres.sql (revision 0) +++ metastore/scripts/upgrade/postgres/hive-schema-0.7.0.postgres.sql (revision 0) @@ -0,0 +1,464 @@ +-- +-- Table: BUCKETING_COLS +-- +CREATE TABLE "BUCKETING_COLS" ( + "SD_ID" bigint NOT NULL, + "BUCKET_COL_NAME" character varying(256) DEFAULT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "INTEGER_IDX") +); +CREATE INDEX "BUCKETING_COLS_N49" on "BUCKETING_COLS" ("SD_ID"); + +-- +-- Table: COLUMNS +-- +CREATE TABLE "COLUMNS" ( + "SD_ID" bigint NOT NULL, + "COMMENT" character varying(256) DEFAULT NULL, + "COLUMN_NAME" character varying(128) NOT NULL, + "TYPE_NAME" character varying(4000) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "COLUMN_NAME") +); +CREATE INDEX "COLUMNS_N49" on "COLUMNS" ("SD_ID"); + +-- +-- Table: DATABASE_PARAMS +-- +CREATE TABLE "DATABASE_PARAMS" ( + "DB_ID" bigint NOT NULL, + "PARAM_KEY" character varying(180) NOT NULL, + "PARAM_VALUE" character varying(4000) DEFAULT NULL, + PRIMARY KEY ("DB_ID", "PARAM_KEY") +); +CREATE INDEX "DATABASE_PARAMS_N49" on "DATABASE_PARAMS" ("DB_ID"); + +-- +-- Table: DB_PRIVS +-- +CREATE TABLE "DB_PRIVS" ( + "DB_GRANT_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "DB_ID" bigint DEFAULT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "DB_PRIV" character varying(128) DEFAULT NULL, + PRIMARY KEY ("DB_GRANT_ID"), + CONSTRAINT "DBPRIVILEGEINDEX" UNIQUE ("DB_ID", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "DB_PRIV", "GRANTOR", "GRANTOR_TYPE") +); +CREATE INDEX "DB_PRIVS_N49" on "DB_PRIVS" ("DB_ID"); + +-- +-- Table: IDXS +-- +CREATE TABLE "IDXS" ( + "INDEX_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "DEFERRED_REBUILD" bit(1) NOT NULL, + "INDEX_HANDLER_CLASS" character varying(4000) DEFAULT NULL, + "INDEX_NAME" character varying(128) DEFAULT NULL, + "INDEX_TBL_ID" bigint DEFAULT NULL, + "LAST_ACCESS_TIME" bigint NOT NULL, + "ORIG_TBL_ID" bigint DEFAULT NULL, + "SD_ID" bigint DEFAULT NULL, + PRIMARY KEY ("INDEX_ID"), + CONSTRAINT "UNIQUEINDEX" UNIQUE ("INDEX_NAME", "ORIG_TBL_ID") +); +CREATE INDEX "IDXS_N51" on "IDXS" ("SD_ID"); +CREATE INDEX "IDXS_N50" on "IDXS" ("INDEX_TBL_ID"); +CREATE INDEX "IDXS_N49" on "IDXS" ("ORIG_TBL_ID"); + +-- +-- Table: INDEX_PARAMS +-- +CREATE TABLE "INDEX_PARAMS" ( + "INDEX_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(4000) DEFAULT NULL, + PRIMARY KEY ("INDEX_ID", "PARAM_KEY") +); +CREATE INDEX "INDEX_PARAMS_N49" on "INDEX_PARAMS" ("INDEX_ID"); + +-- +-- Table: PARTITIONS +-- +CREATE TABLE "PARTITIONS" ( + "PART_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "LAST_ACCESS_TIME" bigint NOT NULL, + "PART_NAME" character varying(767) DEFAULT NULL, + "SD_ID" bigint DEFAULT NULL, + "TBL_ID" bigint DEFAULT NULL, + PRIMARY KEY ("PART_ID"), + CONSTRAINT "UNIQUEPARTITION" UNIQUE ("PART_NAME", "TBL_ID") +); +CREATE INDEX "PARTITIONS_N49" on "PARTITIONS" ("TBL_ID"); +CREATE INDEX "PARTITIONS_N50" on "PARTITIONS" ("SD_ID"); + +-- +-- Table: PARTITION_KEYS +-- +CREATE TABLE "PARTITION_KEYS" ( + "TBL_ID" bigint NOT NULL, + "PKEY_COMMENT" character varying(4000) DEFAULT NULL, + "PKEY_NAME" character varying(128) NOT NULL, + "PKEY_TYPE" character varying(767) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("TBL_ID", "PKEY_NAME") +); +CREATE INDEX "PARTITION_KEYS_N49" on "PARTITION_KEYS" ("TBL_ID"); + +-- +-- Table: PARTITION_KEY_VALS +-- +CREATE TABLE "PARTITION_KEY_VALS" ( + "PART_ID" bigint NOT NULL, + "PART_KEY_VAL" character varying(256) DEFAULT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("PART_ID", "INTEGER_IDX") +); +CREATE INDEX "PARTITION_KEY_VALS_N49" on "PARTITION_KEY_VALS" ("PART_ID"); + +-- +-- Table: PARTITION_PARAMS +-- +CREATE TABLE "PARTITION_PARAMS" ( + "PART_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(4000) DEFAULT NULL, + PRIMARY KEY ("PART_ID", "PARAM_KEY") +); +CREATE INDEX "PARTITION_PARAMS_N49" on "PARTITION_PARAMS" ("PART_ID"); + +-- +-- Table: PART_COL_PRIVS +-- +CREATE TABLE "PART_COL_PRIVS" ( + "PART_COLUMN_GRANT_ID" bigint NOT NULL, + "COLUMN_NAME" character varying(128) DEFAULT NULL, + "CREATE_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PART_ID" bigint DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "PART_COL_PRIV" character varying(128) DEFAULT NULL, + PRIMARY KEY ("PART_COLUMN_GRANT_ID") +); +CREATE INDEX "PART_COL_PRIVS_N49" on "PART_COL_PRIVS" ("PART_ID"); +CREATE INDEX "PARTITIONCOLUMNPRIVILEGEINDEX" on "PART_COL_PRIVS" ("PART_ID", "COLUMN_NAME", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "PART_COL_PRIV", "GRANTOR", "GRANTOR_TYPE"); + +-- +-- Table: PART_PRIVS +-- +CREATE TABLE "PART_PRIVS" ( + "PART_GRANT_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PART_ID" bigint DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "PART_PRIV" character varying(128) DEFAULT NULL, + PRIMARY KEY ("PART_GRANT_ID") +); +CREATE INDEX "PARTPRIVILEGEINDEX" on "PART_PRIVS" ("PART_ID", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "PART_PRIV", "GRANTOR", "GRANTOR_TYPE"); +CREATE INDEX "PART_PRIVS_N49" on "PART_PRIVS" ("PART_ID"); + +-- +-- Table: ROLE_MAP +-- +CREATE TABLE "ROLE_MAP" ( + "ROLE_GRANT_ID" bigint NOT NULL, + "ADD_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "ROLE_ID" bigint DEFAULT NULL, + PRIMARY KEY ("ROLE_GRANT_ID"), + CONSTRAINT "USERROLEMAPINDEX" UNIQUE ("PRINCIPAL_NAME", "ROLE_ID", "GRANTOR", "GRANTOR_TYPE") +); +CREATE INDEX "ROLE_MAP_N49" on "ROLE_MAP" ("ROLE_ID"); + +-- +-- Table: SDS +-- +CREATE TABLE "SDS" ( + "SD_ID" bigint NOT NULL, + "INPUT_FORMAT" character varying(4000) DEFAULT NULL, + "IS_COMPRESSED" bit(1) NOT NULL, + "LOCATION" character varying(4000) DEFAULT NULL, + "NUM_BUCKETS" bigint NOT NULL, + "OUTPUT_FORMAT" character varying(4000) DEFAULT NULL, + "SERDE_ID" bigint DEFAULT NULL, + PRIMARY KEY ("SD_ID") +); +CREATE INDEX "SDS_N49" on "SDS" ("SERDE_ID"); + +-- +-- Table: SD_PARAMS +-- +CREATE TABLE "SD_PARAMS" ( + "SD_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(4000) DEFAULT NULL, + PRIMARY KEY ("SD_ID", "PARAM_KEY") +); +CREATE INDEX "SD_PARAMS_N49" on "SD_PARAMS" ("SD_ID"); + +-- +-- Table: SERDES +-- +CREATE TABLE "SERDES" ( + "SERDE_ID" bigint NOT NULL, + "NAME" character varying(128) DEFAULT NULL, + "SLIB" character varying(4000) DEFAULT NULL, + PRIMARY KEY ("SERDE_ID") +); + +-- +-- Table: SERDE_PARAMS +-- +CREATE TABLE "SERDE_PARAMS" ( + "SERDE_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(4000) DEFAULT NULL, + PRIMARY KEY ("SERDE_ID", "PARAM_KEY") +); +CREATE INDEX "SERDE_PARAMS_N49" on "SERDE_PARAMS" ("SERDE_ID"); + +-- +-- Table: SORT_COLS +-- +CREATE TABLE "SORT_COLS" ( + "SD_ID" bigint NOT NULL, + "COLUMN_NAME" character varying(128) DEFAULT NULL, + "ORDER" bigint NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("SD_ID", "INTEGER_IDX") +); +CREATE INDEX "SORT_COLS_N49" on "SORT_COLS" ("SD_ID"); + +-- +-- Table: TABLE_PARAMS +-- +CREATE TABLE "TABLE_PARAMS" ( + "TBL_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(4000) DEFAULT NULL, + PRIMARY KEY ("TBL_ID", "PARAM_KEY") +); +CREATE INDEX "TABLE_PARAMS_N49" on "TABLE_PARAMS" ("TBL_ID"); + +-- +-- Table: TBLS +-- +CREATE TABLE "TBLS" ( + "TBL_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "DB_ID" bigint DEFAULT NULL, + "LAST_ACCESS_TIME" bigint NOT NULL, + "OWNER" character varying(767) DEFAULT NULL, + "RETENTION" bigint NOT NULL, + "SD_ID" bigint DEFAULT NULL, + "TBL_NAME" character varying(128) DEFAULT NULL, + "TBL_TYPE" character varying(128) DEFAULT NULL, + "VIEW_EXPANDED_TEXT" text, + "VIEW_ORIGINAL_TEXT" text, + PRIMARY KEY ("TBL_ID"), + CONSTRAINT "UNIQUETABLE" UNIQUE ("TBL_NAME", "DB_ID") +); +CREATE INDEX "TBLS_N50" on "TBLS" ("SD_ID"); +CREATE INDEX "TBLS_N49" on "TBLS" ("DB_ID"); + +-- +-- Table: TBL_COL_PRIVS +-- +CREATE TABLE "TBL_COL_PRIVS" ( + "TBL_COLUMN_GRANT_ID" bigint NOT NULL, + "COLUMN_NAME" character varying(128) DEFAULT NULL, + "CREATE_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "TBL_COL_PRIV" character varying(128) DEFAULT NULL, + "TBL_ID" bigint DEFAULT NULL, + PRIMARY KEY ("TBL_COLUMN_GRANT_ID") +); +CREATE INDEX "TABLECOLUMNPRIVILEGEINDEX" on "TBL_COL_PRIVS" ("TBL_ID", "COLUMN_NAME", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "TBL_COL_PRIV", "GRANTOR", "GRANTOR_TYPE"); +CREATE INDEX "TBL_COL_PRIVS_N49" on "TBL_COL_PRIVS" ("TBL_ID"); + +-- +-- Table: TBL_PRIVS +-- +CREATE TABLE "TBL_PRIVS" ( + "TBL_GRANT_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "TBL_PRIV" character varying(128) DEFAULT NULL, + "TBL_ID" bigint DEFAULT NULL, + PRIMARY KEY ("TBL_GRANT_ID") +); +CREATE INDEX "TBL_PRIVS_N49" on "TBL_PRIVS" ("TBL_ID"); +CREATE INDEX "TABLEPRIVILEGEINDEX" on "TBL_PRIVS" ("TBL_ID", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "TBL_PRIV", "GRANTOR", "GRANTOR_TYPE"); + +-- +-- Table: TYPE_FIELDS +-- +CREATE TABLE "TYPE_FIELDS" ( + "TYPE_NAME" bigint NOT NULL, + "COMMENT" character varying(256) DEFAULT NULL, + "FIELD_NAME" character varying(128) NOT NULL, + "FIELD_TYPE" character varying(767) NOT NULL, + "INTEGER_IDX" bigint NOT NULL, + PRIMARY KEY ("TYPE_NAME", "FIELD_NAME") +); +CREATE INDEX "TYPE_FIELDS_N49" on "TYPE_FIELDS" ("TYPE_NAME"); + +-- +-- Table: DBS +-- +CREATE TABLE "DBS" ( + "DB_ID" bigint NOT NULL, + "DESC" character varying(4000) DEFAULT NULL, + "DB_LOCATION_URI" character varying(4000) NOT NULL, + "NAME" character varying(128) DEFAULT NULL, + PRIMARY KEY ("DB_ID"), + CONSTRAINT "UNIQUE_DATABASE" UNIQUE ("NAME") +); + +-- +-- Table: GLOBAL_PRIVS +-- +CREATE TABLE "GLOBAL_PRIVS" ( + "USER_GRANT_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "USER_PRIV" character varying(128) DEFAULT NULL, + PRIMARY KEY ("USER_GRANT_ID"), + CONSTRAINT "GLOBALPRIVILEGEINDEX" UNIQUE ("PRINCIPAL_NAME", "PRINCIPAL_TYPE", "USER_PRIV", "GRANTOR", "GRANTOR_TYPE") +); + +-- +-- Table: ROLES +-- +CREATE TABLE "ROLES" ( + "ROLE_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "OWNER_NAME" character varying(128) DEFAULT NULL, + "ROLE_NAME" character varying(128) DEFAULT NULL, + PRIMARY KEY ("ROLE_ID"), + CONSTRAINT "ROLEENTITYINDEX" UNIQUE ("ROLE_NAME") +); + +-- +-- Table: TYPES +-- +CREATE TABLE "TYPES" ( + "TYPES_ID" bigint NOT NULL, + "TYPE_NAME" character varying(128) DEFAULT NULL, + "TYPE1" character varying(767) DEFAULT NULL, + "TYPE2" character varying(767) DEFAULT NULL, + PRIMARY KEY ("TYPES_ID"), + CONSTRAINT "UNIQUE_TYPE" UNIQUE ("TYPE_NAME") +); + +-- +-- Foreign Key Definitions +-- + +ALTER TABLE "BUCKETING_COLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "COLUMNS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "DATABASE_PARAMS" ADD FOREIGN KEY ("DB_ID") + REFERENCES "DBS" ("DB_ID") DEFERRABLE; + +ALTER TABLE "DB_PRIVS" ADD FOREIGN KEY ("DB_ID") + REFERENCES "DBS" ("DB_ID") DEFERRABLE; + +ALTER TABLE "IDXS" ADD FOREIGN KEY ("INDEX_TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "IDXS" ADD FOREIGN KEY ("ORIG_TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "IDXS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "INDEX_PARAMS" ADD FOREIGN KEY ("INDEX_ID") + REFERENCES "IDXS" ("INDEX_ID") DEFERRABLE; + +ALTER TABLE "PARTITIONS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "PARTITIONS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_KEYS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_KEY_VALS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + +ALTER TABLE "PARTITION_PARAMS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + +ALTER TABLE "PART_COL_PRIVS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + +ALTER TABLE "PART_PRIVS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + +ALTER TABLE "ROLE_MAP" ADD FOREIGN KEY ("ROLE_ID") + REFERENCES "ROLES" ("ROLE_ID") DEFERRABLE; + +ALTER TABLE "SDS" ADD FOREIGN KEY ("SERDE_ID") + REFERENCES "SERDES" ("SERDE_ID") DEFERRABLE; + +ALTER TABLE "SD_PARAMS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "SERDE_PARAMS" ADD FOREIGN KEY ("SERDE_ID") + REFERENCES "SERDES" ("SERDE_ID") DEFERRABLE; + +ALTER TABLE "SORT_COLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "TABLE_PARAMS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "TBLS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "TBLS" ADD FOREIGN KEY ("DB_ID") + REFERENCES "DBS" ("DB_ID") DEFERRABLE; + +ALTER TABLE "TBL_COL_PRIVS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "TBL_PRIVS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "TYPE_FIELDS" ADD FOREIGN KEY ("TYPE_NAME") + REFERENCES "TYPES" ("TYPES_ID") DEFERRABLE; + Index: metastore/scripts/upgrade/postgres/upgrade-0.5.0-to-0.6.0.postgres.sql =================================================================== --- metastore/scripts/upgrade/postgres/upgrade-0.5.0-to-0.6.0.postgres.sql (revision 0) +++ metastore/scripts/upgrade/postgres/upgrade-0.5.0-to-0.6.0.postgres.sql (revision 0) @@ -0,0 +1,30 @@ +SELECT '< Upgrading MetaStore schema from 0.5.0 to 0.6.0 >'; +-- HIVE-972: Support views +ALTER TABLE "TBLS" ADD COLUMN "VIEW_EXPANDED_TEXT" text; +ALTER TABLE "TBLS" ADD COLUMN "VIEW_ORIGINAL_TEXT" text; + +-- HIVE-1068: CREATE VIEW followup: add a 'table type' enum +-- attribute in metastore +ALTER TABLE "TBLS" ADD COLUMN "TBL_TYPE" character varying(128); + +-- HIVE-675: Add database/schema support for Hive QL +ALTER TABLE "DBS" ALTER "DESC" TYPE character varying(4000); +ALTER TABLE "DBS" ADD COLUMN "DB_LOCATION_URI" character varying(4000) NOT NULL DEFAULT ''::character varying; + +-- HIVE-1364: Increase the maximum length of various metastore fields, +-- and remove TYPE_NAME from COLUMNS primary key +ALTER TABLE "TBLS" ALTER "OWNER" TYPE character varying(767); +ALTER TABLE "COLUMNS" ALTER "TYPE_NAME" TYPE character varying(4000); +ALTER TABLE "PARTITION_KEYS" ALTER "PKEY_COMMENT" TYPE character varying(4000); +ALTER TABLE "SD_PARAMS" ALTER "PARAM_VALUE" TYPE character varying(4000); +ALTER TABLE "SDS" ALTER "INPUT_FORMAT" TYPE character varying(4000); +ALTER TABLE "SDS" ALTER "LOCATION" TYPE character varying(4000); +ALTER TABLE "SDS" ALTER "OUTPUT_FORMAT" TYPE character varying(4000); +ALTER TABLE "SERDE_PARAMS" ALTER "PARAM_VALUE" TYPE character varying(4000); +ALTER TABLE "SERDES" ALTER "SLIB" TYPE character varying(4000); +ALTER TABLE "TABLE_PARAMS" ALTER "PARAM_VALUE" TYPE character varying(4000); +ALTER TABLE "COLUMNS" DROP CONSTRAINT "COLUMNS_pkey"; +ALTER TABLE "COLUMNS" ADD CONSTRAINT "COLUMNS_pkey" PRIMARY KEY ("SD_ID", "COLUMN_NAME"); +ALTER TABLE "PARTITION_PARAMS" ALTER "PARAM_VALUE" TYPE character varying(4000); + +SELECT '< Finished upgrading MetaStore schema from 0.5.0 to 0.6.0 >'; Index: metastore/scripts/upgrade/postgres/upgrade-0.6.0-to-0.7.0.postgres.sql =================================================================== --- metastore/scripts/upgrade/postgres/upgrade-0.6.0-to-0.7.0.postgres.sql (revision 0) +++ metastore/scripts/upgrade/postgres/upgrade-0.6.0-to-0.7.0.postgres.sql (revision 0) @@ -0,0 +1,219 @@ +SELECT 'Upgrading MetaStore schema from 0.6.0 to 0.7.0'; + +-- 005-HIVE-417.postgres.sql +SELECT '< HIVE-417 Implement Indexing in Hive >'; +CREATE TABLE "IDXS" ( + "INDEX_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "DEFERRED_REBUILD" bit(1) NOT NULL, + "INDEX_HANDLER_CLASS" character varying(256) DEFAULT NULL, + "INDEX_NAME" character varying(128) DEFAULT NULL, + "INDEX_TBL_ID" bigint DEFAULT NULL, + "LAST_ACCESS_TIME" bigint NOT NULL, + "ORIG_TBL_ID" bigint DEFAULT NULL, + "SD_ID" bigint DEFAULT NULL, + PRIMARY KEY ("INDEX_ID"), + CONSTRAINT "UNIQUEINDEX" UNIQUE ("INDEX_NAME", "ORIG_TBL_ID") +); +CREATE INDEX "IDXS_FK1" on "IDXS" ("SD_ID"); +CREATE INDEX "IDXS_FK2" on "IDXS" ("INDEX_TBL_ID"); +CREATE INDEX "IDXS_FK3" on "IDXS" ("ORIG_TBL_ID"); + +-- +-- Table: INDEX_PARAMS +-- +CREATE TABLE "INDEX_PARAMS" ( + "INDEX_ID" bigint NOT NULL, + "PARAM_KEY" character varying(256) NOT NULL, + "PARAM_VALUE" character varying(767) DEFAULT NULL, + PRIMARY KEY ("INDEX_ID", "PARAM_KEY") +); + +-- +-- Foreign Key Definitions +-- + +ALTER TABLE "IDXS" ADD FOREIGN KEY ("SD_ID") + REFERENCES "SDS" ("SD_ID") DEFERRABLE; + +ALTER TABLE "IDXS" ADD FOREIGN KEY ("INDEX_TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "IDXS" ADD FOREIGN KEY ("ORIG_TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "INDEX_PARAMS" ADD FOREIGN KEY ("INDEX_ID") + REFERENCES "IDXS" ("INDEX_ID") DEFERRABLE; + + -- 006-HIVE-1823.postgres.sql +SELECT '< HIVE-1823 Upgrade the database thrift interface to allow parameters key-value pairs >'; + +CREATE TABLE "DATABASE_PARAMS" ( + "DB_ID" bigint NOT NULL, + "PARAM_KEY" character varying(180) NOT NULL, + "PARAM_VALUE" character varying(4000) DEFAULT NULL, + PRIMARY KEY ("DB_ID", "PARAM_KEY") +); + +-- +-- Foreign Key Definitions +-- + +ALTER TABLE "DATABASE_PARAMS" ADD FOREIGN KEY ("DB_ID") + REFERENCES "DBS" ("DB_ID") DEFERRABLE; + + +-- 007-HIVE-78.postgres.sql +SELECT '< HIVE-78 Authorization model for Hive >'; + +CREATE TABLE "ROLES" ( + "ROLE_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "OWNER_NAME" character varying(128) DEFAULT NULL, + "ROLE_NAME" character varying(128) DEFAULT NULL, + PRIMARY KEY ("ROLE_ID"), + CONSTRAINT "ROLEENTITYINDEX" UNIQUE ("ROLE_NAME") +); + +-- +-- Table: ROLE_MAP +-- +CREATE TABLE "ROLE_MAP" ( + "ROLE_GRANT_ID" bigint NOT NULL, + "ADD_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "ROLE_ID" bigint DEFAULT NULL, + PRIMARY KEY ("ROLE_GRANT_ID"), + CONSTRAINT "USERROLEMAPINDEX" UNIQUE ("PRINCIPAL_NAME", "ROLE_ID", "GRANTOR", "GRANTOR_TYPE") +); + +-- +-- Table: GLOBAL_PRIVS +-- +CREATE TABLE "GLOBAL_PRIVS" ( + "USER_GRANT_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "USER_PRIV" character varying(128) DEFAULT NULL, + PRIMARY KEY ("USER_GRANT_ID"), + CONSTRAINT "GLOBALPRIVILEGEINDEX" UNIQUE ("PRINCIPAL_NAME", "PRINCIPAL_TYPE", "USER_PRIV", "GRANTOR", "GRANTOR_TYPE") +); + +-- +-- Table: DB_PRIVS +-- +CREATE TABLE "DB_PRIVS" ( + "DB_GRANT_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "DB_ID" bigint DEFAULT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "DB_PRIV" character varying(128) DEFAULT NULL, + PRIMARY KEY ("DB_GRANT_ID"), + CONSTRAINT "DBPRIVILEGEINDEX" UNIQUE ("DB_ID", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "DB_PRIV", "GRANTOR", "GRANTOR_TYPE") +); + +-- +-- Table: TBL_PRIVS +-- +CREATE TABLE "TBL_PRIVS" ( + "TBL_GRANT_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "TBL_PRIV" character varying(128) DEFAULT NULL, + "TBL_ID" bigint DEFAULT NULL, + PRIMARY KEY ("TBL_GRANT_ID") +); +CREATE INDEX "TABLEPRIVILEGEINDEX" on "TBL_PRIVS" ("TBL_ID", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "TBL_PRIV", "GRANTOR", "GRANTOR_TYPE"); + +-- +-- Table: TBL_COL_PRIVS +-- +CREATE TABLE "TBL_COL_PRIVS" ( + "TBL_COLUMN_GRANT_ID" bigint NOT NULL, + "COLUMN_NAME" character varying(128) DEFAULT NULL, + "CREATE_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "TBL_COL_PRIV" character varying(128) DEFAULT NULL, + "TBL_ID" bigint DEFAULT NULL, + PRIMARY KEY ("TBL_COLUMN_GRANT_ID") +); +CREATE INDEX "TABLECOLUMNPRIVILEGEINDEX" on "TBL_COL_PRIVS" ("TBL_ID", "COLUMN_NAME", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "TBL_COL_PRIV", "GRANTOR", "GRANTOR_TYPE"); + +-- +-- Table: PART_PRIVS +-- +CREATE TABLE "PART_PRIVS" ( + "PART_GRANT_ID" bigint NOT NULL, + "CREATE_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PART_ID" bigint DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "PART_PRIV" character varying(128) DEFAULT NULL, + PRIMARY KEY ("PART_GRANT_ID") +); +CREATE INDEX "PARTPRIVILEGEINDEX" on "PART_PRIVS" ("PART_ID", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "PART_PRIV", "GRANTOR", "GRANTOR_TYPE"); + +-- +-- Table: PART_COL_PRIVS +-- +CREATE TABLE "PART_COL_PRIVS" ( + "PART_COLUMN_GRANT_ID" bigint NOT NULL, + "COLUMN_NAME" character varying(128) DEFAULT NULL, + "CREATE_TIME" bigint NOT NULL, + "GRANT_OPTION" smallint NOT NULL, + "GRANTOR" character varying(128) DEFAULT NULL, + "GRANTOR_TYPE" character varying(128) DEFAULT NULL, + "PART_ID" bigint DEFAULT NULL, + "PRINCIPAL_NAME" character varying(128) DEFAULT NULL, + "PRINCIPAL_TYPE" character varying(128) DEFAULT NULL, + "PART_COL_PRIV" character varying(128) DEFAULT NULL, + PRIMARY KEY ("PART_COLUMN_GRANT_ID") +); +CREATE INDEX "PARTITIONCOLUMNPRIVILEGEINDEX" on "PART_COL_PRIVS" ("PART_ID", "COLUMN_NAME", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "PART_COL_PRIV", "GRANTOR", "GRANTOR_TYPE"); + +-- +-- Foreign Key Definitions +-- + +ALTER TABLE "ROLE_MAP" ADD FOREIGN KEY ("ROLE_ID") + REFERENCES "ROLES" ("ROLE_ID") DEFERRABLE; + +ALTER TABLE "DB_PRIVS" ADD FOREIGN KEY ("DB_ID") + REFERENCES "DBS" ("DB_ID") DEFERRABLE; + +ALTER TABLE "TBL_PRIVS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "TBL_COL_PRIVS" ADD FOREIGN KEY ("TBL_ID") + REFERENCES "TBLS" ("TBL_ID") DEFERRABLE; + +ALTER TABLE "PART_PRIVS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + +ALTER TABLE "PART_COL_PRIVS" ADD FOREIGN KEY ("PART_ID") + REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE; + +SELECT 'Finished upgrading MetaStore schema from 0.6.0 to 0.7.0'; Index: metastore/scripts/upgrade/postgres/upgrade-0.6.0.postgres.sql =================================================================== --- metastore/scripts/upgrade/postgres/upgrade-0.6.0.postgres.sql (revision 1084834) +++ metastore/scripts/upgrade/postgres/upgrade-0.6.0.postgres.sql (working copy) @@ -1,27 +0,0 @@ --- HIVE-972: Support views -ALTER TABLE "TBLS" ADD COLUMN "VIEW_EXPANDED_TEXT" text; -ALTER TABLE "TBLS" ADD COLUMN "VIEW_ORIGINAL_TEXT" text; - --- HIVE-1068: CREATE VIEW followup: add a 'table type' enum --- attribute in metastore -ALTER TABLE "TBLS" ADD COLUMN "TBL_TYPE" character varying(128); - --- HIVE-675: Add database/schema support for Hive QL -ALTER TABLE "DBS" ALTER "DESC" TYPE character varying(4000); -ALTER TABLE "DBS" ADD COLUMN "DB_LOCATION_URI" character varying(4000) NOT NULL DEFAULT ''::character varying; - --- HIVE-1364: Increase the maximum length of various metastore fields, --- and remove TYPE_NAME from COLUMNS primary key -ALTER TABLE "TBLS" ALTER "OWNER" TYPE character varying(767); -ALTER TABLE "COLUMNS" ALTER "TYPE_NAME" TYPE character varying(4000); -ALTER TABLE "PARTITION_KEYS" ALTER "PKEY_COMMENT" TYPE character varying(4000); -ALTER TABLE "SD_PARAMS" ALTER "PARAM_VALUE" TYPE character varying(4000); -ALTER TABLE "SDS" ALTER "INPUT_FORMAT" TYPE character varying(4000); -ALTER TABLE "SDS" ALTER "LOCATION" TYPE character varying(4000); -ALTER TABLE "SDS" ALTER "OUTPUT_FORMAT" TYPE character varying(4000); -ALTER TABLE "SERDE_PARAMS" ALTER "PARAM_VALUE" TYPE character varying(4000); -ALTER TABLE "SERDES" ALTER "SLIB" TYPE character varying(4000); -ALTER TABLE "TABLE_PARAMS" ALTER "PARAM_VALUE" TYPE character varying(4000); -ALTER TABLE "COLUMNS" DROP CONSTRAINT "COLUMNS_pkey"; -ALTER TABLE "COLUMNS" ADD CONSTRAINT "COLUMNS_pkey" PRIMARY KEY ("SD_ID", "COLUMN_NAME"); -ALTER TABLE "PARTITION_PARAMS" ALTER "PARAM_VALUE" TYPE character varying(4000);