Index: metastore/scripts/upgrade/oracle/010-HIVE-2989.oracle.sql =================================================================== --- metastore/scripts/upgrade/oracle/010-HIVE-2989.oracle.sql (revision 0) +++ metastore/scripts/upgrade/oracle/010-HIVE-2989.oracle.sql (working copy) @@ -0,0 +1,2 @@ +ALTER TABLE TBLS ADD LINK_TARGET_ID NUMBER DEFAULT NULL; +ALTER TABLE TBLS ADD CONSTRAINT TBLS_FK3 FOREIGN KEY (LINK_TARGET_ID) REFERENCES TBLS (TBL_ID) INITIALLY DEFERRED; Index: metastore/scripts/upgrade/oracle/hive-schema-0.10.0.oracle.sql =================================================================== --- metastore/scripts/upgrade/oracle/hive-schema-0.10.0.oracle.sql (revision 0) +++ metastore/scripts/upgrade/oracle/hive-schema-0.10.0.oracle.sql (working copy) @@ -0,0 +1,582 @@ +------------------------------------------------------------------ +-- DataNucleus SchemaTool (version 2.0.3) ran at 10/08/2011 21:27:47 +------------------------------------------------------------------ +-- org.apache.hadoop.hive.metastore.model.MDatabase +-- org.apache.hadoop.hive.metastore.model.MFieldSchema +-- org.apache.hadoop.hive.metastore.model.MType +-- org.apache.hadoop.hive.metastore.model.MTable +-- org.apache.hadoop.hive.metastore.model.MSerDeInfo +-- org.apache.hadoop.hive.metastore.model.MOrder +-- org.apache.hadoop.hive.metastore.model.MStorageDescriptor +-- org.apache.hadoop.hive.metastore.model.MPartition +-- org.apache.hadoop.hive.metastore.model.MIndex +-- org.apache.hadoop.hive.metastore.model.MRole +-- org.apache.hadoop.hive.metastore.model.MRoleMap +-- org.apache.hadoop.hive.metastore.model.MGlobalPrivilege +-- org.apache.hadoop.hive.metastore.model.MDBPrivilege +-- org.apache.hadoop.hive.metastore.model.MTablePrivilege +-- org.apache.hadoop.hive.metastore.model.MPartitionPrivilege +-- org.apache.hadoop.hive.metastore.model.MTableColumnPrivilege +-- org.apache.hadoop.hive.metastore.model.MPartitionColumnPrivilege +-- org.apache.hadoop.hive.metastore.model.MPartitionEvent +-- +-- Table PART_COL_PRIVS for classes [org.apache.hadoop.hive.metastore.model.MPartitionColumnPrivilege] +CREATE TABLE PART_COL_PRIVS +( + PART_COLUMN_GRANT_ID NUMBER NOT NULL, + "COLUMN_NAME" VARCHAR2(128) NULL, + CREATE_TIME NUMBER (10) NOT NULL, + GRANT_OPTION NUMBER (5) NOT NULL, + GRANTOR VARCHAR2(128) NULL, + GRANTOR_TYPE VARCHAR2(128) NULL, + PART_ID NUMBER NULL, + PRINCIPAL_NAME VARCHAR2(128) NULL, + PRINCIPAL_TYPE VARCHAR2(128) NULL, + PART_COL_PRIV VARCHAR2(128) NULL +); + +ALTER TABLE PART_COL_PRIVS ADD CONSTRAINT PART_COL_PRIVS_PK PRIMARY KEY (PART_COLUMN_GRANT_ID); + +-- Table CDS. +CREATE TABLE CDS +( + CD_ID NUMBER NOT NULL +); + +ALTER TABLE CDS ADD CONSTRAINT CDS_PK PRIMARY KEY (CD_ID); + +-- Table COLUMNS_V2 for join relationship +CREATE TABLE COLUMNS_V2 +( + CD_ID NUMBER NOT NULL, + "COMMENT" VARCHAR2(256) NULL, + "COLUMN_NAME" VARCHAR2(128) NOT NULL, + TYPE_NAME VARCHAR2(4000) NOT NULL, + INTEGER_IDX NUMBER(10) NOT NULL +); + +ALTER TABLE COLUMNS_V2 ADD CONSTRAINT COLUMNS_V2_PK PRIMARY KEY (CD_ID,"COLUMN_NAME"); + +-- Table PARTITION_KEY_VALS for join relationship +CREATE TABLE PARTITION_KEY_VALS +( + PART_ID NUMBER NOT NULL, + PART_KEY_VAL VARCHAR2(256) NULL, + INTEGER_IDX NUMBER(10) NOT NULL +); + +ALTER TABLE PARTITION_KEY_VALS ADD CONSTRAINT PARTITION_KEY_VALS_PK PRIMARY KEY (PART_ID,INTEGER_IDX); + +-- Table DBS for classes [org.apache.hadoop.hive.metastore.model.MDatabase] +CREATE TABLE DBS +( + DB_ID NUMBER NOT NULL, + "DESC" VARCHAR2(4000) NULL, + DB_LOCATION_URI VARCHAR2(4000) NOT NULL, + "NAME" VARCHAR2(128) NULL +); + +ALTER TABLE DBS ADD CONSTRAINT DBS_PK PRIMARY KEY (DB_ID); + +-- Table PARTITION_PARAMS for join relationship +CREATE TABLE PARTITION_PARAMS +( + PART_ID NUMBER NOT NULL, + PARAM_KEY VARCHAR2(256) NOT NULL, + PARAM_VALUE VARCHAR2(4000) NULL +); + +ALTER TABLE PARTITION_PARAMS ADD CONSTRAINT PARTITION_PARAMS_PK PRIMARY KEY (PART_ID,PARAM_KEY); + +-- Table SERDES for classes [org.apache.hadoop.hive.metastore.model.MSerDeInfo] +CREATE TABLE SERDES +( + SERDE_ID NUMBER NOT NULL, + "NAME" VARCHAR2(128) NULL, + SLIB VARCHAR2(4000) NULL +); + +ALTER TABLE SERDES ADD CONSTRAINT SERDES_PK PRIMARY KEY (SERDE_ID); + +-- Table TYPES for classes [org.apache.hadoop.hive.metastore.model.MType] +CREATE TABLE TYPES +( + TYPES_ID NUMBER NOT NULL, + TYPE_NAME VARCHAR2(128) NULL, + TYPE1 VARCHAR2(767) NULL, + TYPE2 VARCHAR2(767) NULL +); + +ALTER TABLE TYPES ADD CONSTRAINT TYPES_PK PRIMARY KEY (TYPES_ID); + +-- Table PARTITION_KEYS for join relationship +CREATE TABLE PARTITION_KEYS +( + TBL_ID NUMBER NOT NULL, + PKEY_COMMENT VARCHAR2(4000) NULL, + PKEY_NAME VARCHAR2(128) NOT NULL, + PKEY_TYPE VARCHAR2(767) NOT NULL, + INTEGER_IDX NUMBER(10) NOT NULL +); + +ALTER TABLE PARTITION_KEYS ADD CONSTRAINT PARTITION_KEY_PK PRIMARY KEY (TBL_ID,PKEY_NAME); + +-- Table ROLES for classes [org.apache.hadoop.hive.metastore.model.MRole] +CREATE TABLE ROLES +( + ROLE_ID NUMBER NOT NULL, + CREATE_TIME NUMBER (10) NOT NULL, + OWNER_NAME VARCHAR2(128) NULL, + ROLE_NAME VARCHAR2(128) NULL +); + +ALTER TABLE ROLES ADD CONSTRAINT ROLES_PK PRIMARY KEY (ROLE_ID); + +-- Table PARTITIONS for classes [org.apache.hadoop.hive.metastore.model.MPartition] +CREATE TABLE PARTITIONS +( + PART_ID NUMBER NOT NULL, + CREATE_TIME NUMBER (10) NOT NULL, + LAST_ACCESS_TIME NUMBER (10) NOT NULL, + PART_NAME VARCHAR2(767) NULL, + SD_ID NUMBER NULL, + TBL_ID NUMBER NULL +); + +ALTER TABLE PARTITIONS ADD CONSTRAINT PARTITIONS_PK PRIMARY KEY (PART_ID); + +-- Table INDEX_PARAMS for join relationship +CREATE TABLE INDEX_PARAMS +( + INDEX_ID NUMBER NOT NULL, + PARAM_KEY VARCHAR2(256) NOT NULL, + PARAM_VALUE VARCHAR2(4000) NULL +); + +ALTER TABLE INDEX_PARAMS ADD CONSTRAINT INDEX_PARAMS_PK PRIMARY KEY (INDEX_ID,PARAM_KEY); + +-- Table TBL_COL_PRIVS for classes [org.apache.hadoop.hive.metastore.model.MTableColumnPrivilege] +CREATE TABLE TBL_COL_PRIVS +( + TBL_COLUMN_GRANT_ID NUMBER NOT NULL, + "COLUMN_NAME" VARCHAR2(128) NULL, + CREATE_TIME NUMBER (10) NOT NULL, + GRANT_OPTION NUMBER (5) NOT NULL, + GRANTOR VARCHAR2(128) NULL, + GRANTOR_TYPE VARCHAR2(128) NULL, + PRINCIPAL_NAME VARCHAR2(128) NULL, + PRINCIPAL_TYPE VARCHAR2(128) NULL, + TBL_COL_PRIV VARCHAR2(128) NULL, + TBL_ID NUMBER NULL +); + +ALTER TABLE TBL_COL_PRIVS ADD CONSTRAINT TBL_COL_PRIVS_PK PRIMARY KEY (TBL_COLUMN_GRANT_ID); + +-- Table IDXS for classes [org.apache.hadoop.hive.metastore.model.MIndex] +CREATE TABLE IDXS +( + INDEX_ID NUMBER NOT NULL, + CREATE_TIME NUMBER (10) NOT NULL, + DEFERRED_REBUILD NUMBER(1) NOT NULL CHECK (DEFERRED_REBUILD IN (1,0)), + INDEX_HANDLER_CLASS VARCHAR2(4000) NULL, + INDEX_NAME VARCHAR2(128) NULL, + INDEX_TBL_ID NUMBER NULL, + LAST_ACCESS_TIME NUMBER (10) NOT NULL, + ORIG_TBL_ID NUMBER NULL, + SD_ID NUMBER NULL +); + +ALTER TABLE IDXS ADD CONSTRAINT IDXS_PK PRIMARY KEY (INDEX_ID); + +-- Table BUCKETING_COLS for join relationship +CREATE TABLE BUCKETING_COLS +( + SD_ID NUMBER NOT NULL, + BUCKET_COL_NAME VARCHAR2(256) NULL, + INTEGER_IDX NUMBER(10) NOT NULL +); + +ALTER TABLE BUCKETING_COLS ADD CONSTRAINT BUCKETING_COLS_PK PRIMARY KEY (SD_ID,INTEGER_IDX); + +-- Table TYPE_FIELDS for join relationship +CREATE TABLE TYPE_FIELDS +( + TYPE_NAME NUMBER NOT NULL, + "COMMENT" VARCHAR2(256) NULL, + FIELD_NAME VARCHAR2(128) NOT NULL, + FIELD_TYPE VARCHAR2(767) NOT NULL, + INTEGER_IDX NUMBER(10) NOT NULL +); + +ALTER TABLE TYPE_FIELDS ADD CONSTRAINT TYPE_FIELDS_PK PRIMARY KEY (TYPE_NAME,FIELD_NAME); + +-- Table SD_PARAMS for join relationship +CREATE TABLE SD_PARAMS +( + SD_ID NUMBER NOT NULL, + PARAM_KEY VARCHAR2(256) NOT NULL, + PARAM_VALUE VARCHAR2(4000) NULL +); + +ALTER TABLE SD_PARAMS ADD CONSTRAINT SD_PARAMS_PK PRIMARY KEY (SD_ID,PARAM_KEY); + +-- Table GLOBAL_PRIVS for classes [org.apache.hadoop.hive.metastore.model.MGlobalPrivilege] +CREATE TABLE GLOBAL_PRIVS +( + USER_GRANT_ID NUMBER NOT NULL, + CREATE_TIME NUMBER (10) NOT NULL, + GRANT_OPTION NUMBER (5) NOT NULL, + GRANTOR VARCHAR2(128) NULL, + GRANTOR_TYPE VARCHAR2(128) NULL, + PRINCIPAL_NAME VARCHAR2(128) NULL, + PRINCIPAL_TYPE VARCHAR2(128) NULL, + USER_PRIV VARCHAR2(128) NULL +); + +ALTER TABLE GLOBAL_PRIVS ADD CONSTRAINT GLOBAL_PRIVS_PK PRIMARY KEY (USER_GRANT_ID); + +-- Table SDS for classes [org.apache.hadoop.hive.metastore.model.MStorageDescriptor] +CREATE TABLE SDS +( + SD_ID NUMBER NOT NULL, + CD_ID NUMBER NULL, + INPUT_FORMAT VARCHAR2(4000) NULL, + IS_COMPRESSED NUMBER(1) NOT NULL CHECK (IS_COMPRESSED IN (1,0)), + LOCATION VARCHAR2(4000) NULL, + NUM_BUCKETS NUMBER (10) NOT NULL, + OUTPUT_FORMAT VARCHAR2(4000) NULL, + SERDE_ID NUMBER NULL +); + +ALTER TABLE SDS ADD CONSTRAINT SDS_PK PRIMARY KEY (SD_ID); + +-- Table TABLE_PARAMS for join relationship +CREATE TABLE TABLE_PARAMS +( + TBL_ID NUMBER NOT NULL, + PARAM_KEY VARCHAR2(256) NOT NULL, + PARAM_VALUE VARCHAR2(4000) NULL +); + +ALTER TABLE TABLE_PARAMS ADD CONSTRAINT TABLE_PARAMS_PK PRIMARY KEY (TBL_ID,PARAM_KEY); + +-- Table SORT_COLS for join relationship +CREATE TABLE SORT_COLS +( + SD_ID NUMBER NOT NULL, + "COLUMN_NAME" VARCHAR2(128) NULL, + "ORDER" NUMBER (10) NOT NULL, + INTEGER_IDX NUMBER(10) NOT NULL +); + +ALTER TABLE SORT_COLS ADD CONSTRAINT SORT_COLS_PK PRIMARY KEY (SD_ID,INTEGER_IDX); + +-- Table TBL_PRIVS for classes [org.apache.hadoop.hive.metastore.model.MTablePrivilege] +CREATE TABLE TBL_PRIVS +( + TBL_GRANT_ID NUMBER NOT NULL, + CREATE_TIME NUMBER (10) NOT NULL, + GRANT_OPTION NUMBER (5) NOT NULL, + GRANTOR VARCHAR2(128) NULL, + GRANTOR_TYPE VARCHAR2(128) NULL, + PRINCIPAL_NAME VARCHAR2(128) NULL, + PRINCIPAL_TYPE VARCHAR2(128) NULL, + TBL_PRIV VARCHAR2(128) NULL, + TBL_ID NUMBER NULL +); + +ALTER TABLE TBL_PRIVS ADD CONSTRAINT TBL_PRIVS_PK PRIMARY KEY (TBL_GRANT_ID); + +-- Table DATABASE_PARAMS for join relationship +CREATE TABLE DATABASE_PARAMS +( + DB_ID NUMBER NOT NULL, + PARAM_KEY VARCHAR2(180) NOT NULL, + PARAM_VALUE VARCHAR2(4000) NULL +); + +ALTER TABLE DATABASE_PARAMS ADD CONSTRAINT DATABASE_PARAMS_PK PRIMARY KEY (DB_ID,PARAM_KEY); + +-- Table ROLE_MAP for classes [org.apache.hadoop.hive.metastore.model.MRoleMap] +CREATE TABLE ROLE_MAP +( + ROLE_GRANT_ID NUMBER NOT NULL, + ADD_TIME NUMBER (10) NOT NULL, + GRANT_OPTION NUMBER (5) NOT NULL, + GRANTOR VARCHAR2(128) NULL, + GRANTOR_TYPE VARCHAR2(128) NULL, + PRINCIPAL_NAME VARCHAR2(128) NULL, + PRINCIPAL_TYPE VARCHAR2(128) NULL, + ROLE_ID NUMBER NULL +); + +ALTER TABLE ROLE_MAP ADD CONSTRAINT ROLE_MAP_PK PRIMARY KEY (ROLE_GRANT_ID); + +-- Table SERDE_PARAMS for join relationship +CREATE TABLE SERDE_PARAMS +( + SERDE_ID NUMBER NOT NULL, + PARAM_KEY VARCHAR2(256) NOT NULL, + PARAM_VALUE VARCHAR2(4000) NULL +); + +ALTER TABLE SERDE_PARAMS ADD CONSTRAINT SERDE_PARAMS_PK PRIMARY KEY (SERDE_ID,PARAM_KEY); + +-- Table PART_PRIVS for classes [org.apache.hadoop.hive.metastore.model.MPartitionPrivilege] +CREATE TABLE PART_PRIVS +( + PART_GRANT_ID NUMBER NOT NULL, + CREATE_TIME NUMBER (10) NOT NULL, + GRANT_OPTION NUMBER (5) NOT NULL, + GRANTOR VARCHAR2(128) NULL, + GRANTOR_TYPE VARCHAR2(128) NULL, + PART_ID NUMBER NULL, + PRINCIPAL_NAME VARCHAR2(128) NULL, + PRINCIPAL_TYPE VARCHAR2(128) NULL, + PART_PRIV VARCHAR2(128) NULL +); + +ALTER TABLE PART_PRIVS ADD CONSTRAINT PART_PRIVS_PK PRIMARY KEY (PART_GRANT_ID); + +-- Table DB_PRIVS for classes [org.apache.hadoop.hive.metastore.model.MDBPrivilege] +CREATE TABLE DB_PRIVS +( + DB_GRANT_ID NUMBER NOT NULL, + CREATE_TIME NUMBER (10) NOT NULL, + DB_ID NUMBER NULL, + GRANT_OPTION NUMBER (5) NOT NULL, + GRANTOR VARCHAR2(128) NULL, + GRANTOR_TYPE VARCHAR2(128) NULL, + PRINCIPAL_NAME VARCHAR2(128) NULL, + PRINCIPAL_TYPE VARCHAR2(128) NULL, + DB_PRIV VARCHAR2(128) NULL +); + +ALTER TABLE DB_PRIVS ADD CONSTRAINT DB_PRIVS_PK PRIMARY KEY (DB_GRANT_ID); + +-- Table TBLS for classes [org.apache.hadoop.hive.metastore.model.MTable] +CREATE TABLE TBLS +( + TBL_ID NUMBER NOT NULL, + CREATE_TIME NUMBER (10) NOT NULL, + DB_ID NUMBER NULL, + LAST_ACCESS_TIME NUMBER (10) NOT NULL, + OWNER VARCHAR2(767) NULL, + RETENTION NUMBER (10) NOT NULL, + SD_ID NUMBER NULL, + TBL_NAME VARCHAR2(128) NULL, + TBL_TYPE VARCHAR2(128) NULL, + VIEW_EXPANDED_TEXT CLOB NULL, + VIEW_ORIGINAL_TEXT CLOB NULL, + LINK_TARGET_ID NUMBER NULL +); + +ALTER TABLE TBLS ADD CONSTRAINT TBLS_PK PRIMARY KEY (TBL_ID); + +-- Table PARTITION_EVENTS for classes [org.apache.hadoop.hive.metastore.model.MPartitionEvent] +CREATE TABLE PARTITION_EVENTS +( + PART_NAME_ID NUMBER NOT NULL, + DB_NAME VARCHAR2(128) NULL, + EVENT_TIME NUMBER NOT NULL, + EVENT_TYPE NUMBER (10) NOT NULL, + PARTITION_NAME VARCHAR2(767) NULL, + TBL_NAME VARCHAR2(128) NULL +); + +ALTER TABLE PARTITION_EVENTS ADD CONSTRAINT PARTITION_EVENTS_PK PRIMARY KEY (PART_NAME_ID); + +-- Constraints for table PART_COL_PRIVS for class(es) [org.apache.hadoop.hive.metastore.model.MPartitionColumnPrivilege] +ALTER TABLE PART_COL_PRIVS ADD CONSTRAINT PART_COL_PRIVS_FK1 FOREIGN KEY (PART_ID) REFERENCES PARTITIONS (PART_ID) INITIALLY DEFERRED ; + +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); + + +-- Constraints for table COLUMNS_V2 +ALTER TABLE COLUMNS_V2 ADD CONSTRAINT COLUMNS_V2_FK1 FOREIGN KEY (CD_ID) REFERENCES CDS (CD_ID) INITIALLY DEFERRED ; + +CREATE INDEX COLUMNS_V2_N49 ON COLUMNS_V2 (CD_ID); + + +-- Constraints for table PARTITION_KEY_VALS +ALTER TABLE PARTITION_KEY_VALS ADD CONSTRAINT PARTITION_KEY_VALS_FK1 FOREIGN KEY (PART_ID) REFERENCES PARTITIONS (PART_ID) INITIALLY DEFERRED ; + +CREATE INDEX PARTITION_KEY_VALS_N49 ON PARTITION_KEY_VALS (PART_ID); + + +-- Constraints for table DBS for class(es) [org.apache.hadoop.hive.metastore.model.MDatabase] +CREATE UNIQUE INDEX UNIQUE_DATABASE ON DBS ("NAME"); + + +-- Constraints for table PARTITION_PARAMS +ALTER TABLE PARTITION_PARAMS ADD CONSTRAINT PARTITION_PARAMS_FK1 FOREIGN KEY (PART_ID) REFERENCES PARTITIONS (PART_ID) INITIALLY DEFERRED ; + +CREATE INDEX PARTITION_PARAMS_N49 ON PARTITION_PARAMS (PART_ID); + + +-- Constraints for table SERDES for class(es) [org.apache.hadoop.hive.metastore.model.MSerDeInfo] + +-- Constraints for table TYPES for class(es) [org.apache.hadoop.hive.metastore.model.MType] +CREATE UNIQUE INDEX UNIQUE_TYPE ON TYPES (TYPE_NAME); + + +-- Constraints for table PARTITION_KEYS +ALTER TABLE PARTITION_KEYS ADD CONSTRAINT PARTITION_KEYS_FK1 FOREIGN KEY (TBL_ID) REFERENCES TBLS (TBL_ID) INITIALLY DEFERRED ; + +CREATE INDEX PARTITION_KEYS_N49 ON PARTITION_KEYS (TBL_ID); + + +-- Constraints for table ROLES for class(es) [org.apache.hadoop.hive.metastore.model.MRole] +CREATE UNIQUE INDEX ROLEENTITYINDEX ON ROLES (ROLE_NAME); + + +-- Constraints for table PARTITIONS for class(es) [org.apache.hadoop.hive.metastore.model.MPartition] +ALTER TABLE PARTITIONS ADD CONSTRAINT PARTITIONS_FK1 FOREIGN KEY (TBL_ID) REFERENCES TBLS (TBL_ID) INITIALLY DEFERRED ; + +ALTER TABLE PARTITIONS ADD CONSTRAINT PARTITIONS_FK2 FOREIGN KEY (SD_ID) REFERENCES SDS (SD_ID) INITIALLY DEFERRED ; + +CREATE INDEX PARTITIONS_N49 ON PARTITIONS (SD_ID); + +CREATE INDEX PARTITIONS_N50 ON PARTITIONS (TBL_ID); + +CREATE UNIQUE INDEX UNIQUEPARTITION ON PARTITIONS (PART_NAME,TBL_ID); + + +-- Constraints for table INDEX_PARAMS +ALTER TABLE INDEX_PARAMS ADD CONSTRAINT INDEX_PARAMS_FK1 FOREIGN KEY (INDEX_ID) REFERENCES IDXS (INDEX_ID) INITIALLY DEFERRED ; + +CREATE INDEX INDEX_PARAMS_N49 ON INDEX_PARAMS (INDEX_ID); + + +-- Constraints for table TBL_COL_PRIVS for class(es) [org.apache.hadoop.hive.metastore.model.MTableColumnPrivilege] +ALTER TABLE TBL_COL_PRIVS ADD CONSTRAINT TBL_COL_PRIVS_FK1 FOREIGN KEY (TBL_ID) REFERENCES TBLS (TBL_ID) INITIALLY DEFERRED ; + +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); + + +-- Constraints for table IDXS for class(es) [org.apache.hadoop.hive.metastore.model.MIndex] +ALTER TABLE IDXS ADD CONSTRAINT IDXS_FK2 FOREIGN KEY (SD_ID) REFERENCES SDS (SD_ID) INITIALLY DEFERRED ; + +ALTER TABLE IDXS ADD CONSTRAINT IDXS_FK1 FOREIGN KEY (ORIG_TBL_ID) REFERENCES TBLS (TBL_ID) INITIALLY DEFERRED ; + +ALTER TABLE IDXS ADD CONSTRAINT IDXS_FK3 FOREIGN KEY (INDEX_TBL_ID) REFERENCES TBLS (TBL_ID) INITIALLY DEFERRED ; + +CREATE UNIQUE INDEX UNIQUEINDEX ON IDXS (INDEX_NAME,ORIG_TBL_ID); + +CREATE INDEX IDXS_N50 ON IDXS (INDEX_TBL_ID); + +CREATE INDEX IDXS_N51 ON IDXS (SD_ID); + +CREATE INDEX IDXS_N49 ON IDXS (ORIG_TBL_ID); + + +-- Constraints for table BUCKETING_COLS +ALTER TABLE BUCKETING_COLS ADD CONSTRAINT BUCKETING_COLS_FK1 FOREIGN KEY (SD_ID) REFERENCES SDS (SD_ID) INITIALLY DEFERRED ; + +CREATE INDEX BUCKETING_COLS_N49 ON BUCKETING_COLS (SD_ID); + + +-- Constraints for table TYPE_FIELDS +ALTER TABLE TYPE_FIELDS ADD CONSTRAINT TYPE_FIELDS_FK1 FOREIGN KEY (TYPE_NAME) REFERENCES TYPES (TYPES_ID) INITIALLY DEFERRED ; + +CREATE INDEX TYPE_FIELDS_N49 ON TYPE_FIELDS (TYPE_NAME); + + +-- Constraints for table SD_PARAMS +ALTER TABLE SD_PARAMS ADD CONSTRAINT SD_PARAMS_FK1 FOREIGN KEY (SD_ID) REFERENCES SDS (SD_ID) INITIALLY DEFERRED ; + +CREATE INDEX SD_PARAMS_N49 ON SD_PARAMS (SD_ID); + + +-- Constraints for table GLOBAL_PRIVS for class(es) [org.apache.hadoop.hive.metastore.model.MGlobalPrivilege] +CREATE UNIQUE INDEX GLOBALPRIVILEGEINDEX ON GLOBAL_PRIVS (PRINCIPAL_NAME,PRINCIPAL_TYPE,USER_PRIV,GRANTOR,GRANTOR_TYPE); + + +-- Constraints for table SDS for class(es) [org.apache.hadoop.hive.metastore.model.MStorageDescriptor] +ALTER TABLE SDS ADD CONSTRAINT SDS_FK1 FOREIGN KEY (SERDE_ID) REFERENCES SERDES (SERDE_ID) INITIALLY DEFERRED ; +ALTER TABLE SDS ADD CONSTRAINT SDS_FK2 FOREIGN KEY (CD_ID) REFERENCES CDS (CD_ID) INITIALLY DEFERRED ; + +CREATE INDEX SDS_N49 ON SDS (SERDE_ID); +CREATE INDEX SDS_N50 ON SDS (CD_ID); + + +-- Constraints for table TABLE_PARAMS +ALTER TABLE TABLE_PARAMS ADD CONSTRAINT TABLE_PARAMS_FK1 FOREIGN KEY (TBL_ID) REFERENCES TBLS (TBL_ID) INITIALLY DEFERRED ; + +CREATE INDEX TABLE_PARAMS_N49 ON TABLE_PARAMS (TBL_ID); + + +-- Constraints for table SORT_COLS +ALTER TABLE SORT_COLS ADD CONSTRAINT SORT_COLS_FK1 FOREIGN KEY (SD_ID) REFERENCES SDS (SD_ID) INITIALLY DEFERRED ; + +CREATE INDEX SORT_COLS_N49 ON SORT_COLS (SD_ID); + + +-- Constraints for table TBL_PRIVS for class(es) [org.apache.hadoop.hive.metastore.model.MTablePrivilege] +ALTER TABLE TBL_PRIVS ADD CONSTRAINT TBL_PRIVS_FK1 FOREIGN KEY (TBL_ID) REFERENCES TBLS (TBL_ID) INITIALLY DEFERRED ; + +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); + + +-- Constraints for table DATABASE_PARAMS +ALTER TABLE DATABASE_PARAMS ADD CONSTRAINT DATABASE_PARAMS_FK1 FOREIGN KEY (DB_ID) REFERENCES DBS (DB_ID) INITIALLY DEFERRED ; + +CREATE INDEX DATABASE_PARAMS_N49 ON DATABASE_PARAMS (DB_ID); + + +-- Constraints for table ROLE_MAP for class(es) [org.apache.hadoop.hive.metastore.model.MRoleMap] +ALTER TABLE ROLE_MAP ADD CONSTRAINT ROLE_MAP_FK1 FOREIGN KEY (ROLE_ID) REFERENCES ROLES (ROLE_ID) INITIALLY DEFERRED ; + +CREATE INDEX ROLE_MAP_N49 ON ROLE_MAP (ROLE_ID); + +CREATE UNIQUE INDEX USERROLEMAPINDEX ON ROLE_MAP (PRINCIPAL_NAME,ROLE_ID,GRANTOR,GRANTOR_TYPE); + + +-- Constraints for table SERDE_PARAMS +ALTER TABLE SERDE_PARAMS ADD CONSTRAINT SERDE_PARAMS_FK1 FOREIGN KEY (SERDE_ID) REFERENCES SERDES (SERDE_ID) INITIALLY DEFERRED ; + +CREATE INDEX SERDE_PARAMS_N49 ON SERDE_PARAMS (SERDE_ID); + + +-- Constraints for table PART_PRIVS for class(es) [org.apache.hadoop.hive.metastore.model.MPartitionPrivilege] +ALTER TABLE PART_PRIVS ADD CONSTRAINT PART_PRIVS_FK1 FOREIGN KEY (PART_ID) REFERENCES PARTITIONS (PART_ID) INITIALLY DEFERRED ; + +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); + + +-- Constraints for table DB_PRIVS for class(es) [org.apache.hadoop.hive.metastore.model.MDBPrivilege] +ALTER TABLE DB_PRIVS ADD CONSTRAINT DB_PRIVS_FK1 FOREIGN KEY (DB_ID) REFERENCES DBS (DB_ID) INITIALLY DEFERRED ; + +CREATE UNIQUE INDEX DBPRIVILEGEINDEX ON DB_PRIVS (DB_ID,PRINCIPAL_NAME,PRINCIPAL_TYPE,DB_PRIV,GRANTOR,GRANTOR_TYPE); + +CREATE INDEX DB_PRIVS_N49 ON DB_PRIVS (DB_ID); + + +-- Constraints for table TBLS for class(es) [org.apache.hadoop.hive.metastore.model.MTable] +ALTER TABLE TBLS ADD CONSTRAINT TBLS_FK3 FOREIGN KEY (LINK_TARGET_ID) REFERENCES TBLS (TBL_ID) INITIALLY DEFERRED ; + +ALTER TABLE TBLS ADD CONSTRAINT TBLS_FK2 FOREIGN KEY (DB_ID) REFERENCES DBS (DB_ID) INITIALLY DEFERRED ; + +ALTER TABLE TBLS ADD CONSTRAINT TBLS_FK1 FOREIGN KEY (SD_ID) REFERENCES SDS (SD_ID) INITIALLY DEFERRED ; + +CREATE INDEX TBLS_N48 ON TBLS (LINK_TARGET_ID); + +CREATE INDEX TBLS_N49 ON TBLS (DB_ID); + +CREATE UNIQUE INDEX UNIQUETABLE ON TBLS (TBL_NAME,DB_ID); + +CREATE INDEX TBLS_N50 ON TBLS (SD_ID); + + +-- Constraints for table PARTITION_EVENTS for class(es) [org.apache.hadoop.hive.metastore.model.MPartitionEvent] +CREATE INDEX PARTITIONEVENTINDEX ON PARTITION_EVENTS (PARTITION_NAME); + + Index: metastore/scripts/upgrade/oracle/upgrade-0.9.0-to-0.10.0.oracle.sql =================================================================== --- metastore/scripts/upgrade/oracle/upgrade-0.9.0-to-0.10.0.oracle.sql (revision 0) +++ metastore/scripts/upgrade/oracle/upgrade-0.9.0-to-0.10.0.oracle.sql (working copy) @@ -0,0 +1,3 @@ +SELECT 'Upgrading MetaStore schema from 0.9.0 to 0.10.0' AS ' '; +@010-HIVE-2989.oracle.sql +SELECT 'Finished upgrading MetaStore schema from 0.9.0 to 0.10.0' AS ' '; Index: metastore/scripts/upgrade/mysql/upgrade-0.9.0-to-0.10.0.mysql.sql =================================================================== --- metastore/scripts/upgrade/mysql/upgrade-0.9.0-to-0.10.0.mysql.sql (revision 0) +++ metastore/scripts/upgrade/mysql/upgrade-0.9.0-to-0.10.0.mysql.sql (working copy) @@ -0,0 +1,3 @@ +SELECT 'Upgrading MetaStore schema from 0.9.0 to 0.10.0' AS ' '; +SOURCE 010-HIVE-2989.mysql.sql; +SELECT 'Finished upgrading MetaStore schema from 0.9.0 to 0.10.0' AS ' '; Index: metastore/scripts/upgrade/mysql/010-HIVE-2989.mysql.sql =================================================================== --- metastore/scripts/upgrade/mysql/010-HIVE-2989.mysql.sql (revision 0) +++ metastore/scripts/upgrade/mysql/010-HIVE-2989.mysql.sql (working copy) @@ -0,0 +1,3 @@ +SELECT '< HIVE-2989: Support creation of TableLinks >' AS ' '; +ALTER TABLE TBLS ADD COLUMN LINK_TARGET_ID BIGINT(20) DEFAULT NULL; +ALTER TABLE TBLS ADD CONSTRAINT TBLS_FK3 FOREIGN KEY (LINK_TARGET_ID) REFERENCES TBLS (TBL_ID); Index: metastore/scripts/upgrade/mysql/hive-schema-0.10.0.mysql.sql =================================================================== --- metastore/scripts/upgrade/mysql/hive-schema-0.10.0.mysql.sql (revision 0) +++ metastore/scripts/upgrade/mysql/hive-schema-0.10.0.mysql.sql (working copy) @@ -0,0 +1,609 @@ +-- MySQL dump 10.13 Distrib 5.1.54, for debian-linux-gnu (x86_64) +-- +-- Host: localhost Database: mdb +-- ------------------------------------------------------ +-- Server version 5.1.54-1ubuntu4 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `BUCKETING_COLS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `BUCKETING_COLS` ( + `SD_ID` bigint(20) NOT NULL, + `BUCKET_COL_NAME` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `INTEGER_IDX` int(11) NOT NULL, + PRIMARY KEY (`SD_ID`,`INTEGER_IDX`), + KEY `BUCKETING_COLS_N49` (`SD_ID`), + CONSTRAINT `BUCKETING_COLS_FK1` FOREIGN KEY (`SD_ID`) REFERENCES `SDS` (`SD_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `CDS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `CDS` ( + `CD_ID` bigint(20) NOT NULL, + PRIMARY KEY (`CD_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `COLUMNS_V2` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `COLUMNS_V2` ( + `CD_ID` bigint(20) NOT NULL, + `COMMENT` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `COLUMN_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `TYPE_NAME` varchar(4000) DEFAULT NULL, + `INTEGER_IDX` int(11) NOT NULL, + PRIMARY KEY (`CD_ID`,`COLUMN_NAME`), + KEY `COLUMNS_V2_N49` (`CD_ID`), + CONSTRAINT `COLUMNS_V2_FK1` FOREIGN KEY (`CD_ID`) REFERENCES `CDS` (`CD_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `DATABASE_PARAMS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `DATABASE_PARAMS` ( + `DB_ID` bigint(20) NOT NULL, + `PARAM_KEY` varchar(180) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `PARAM_VALUE` varchar(4000) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + PRIMARY KEY (`DB_ID`,`PARAM_KEY`), + KEY `DATABASE_PARAMS_N49` (`DB_ID`), + CONSTRAINT `DATABASE_PARAMS_FK1` FOREIGN KEY (`DB_ID`) REFERENCES `DBS` (`DB_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `DBS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `DBS` ( + `DB_ID` bigint(20) NOT NULL, + `DESC` varchar(4000) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `DB_LOCATION_URI` varchar(4000) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + PRIMARY KEY (`DB_ID`), + UNIQUE KEY `UNIQUE_DATABASE` (`NAME`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `DB_PRIVS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `DB_PRIVS` ( + `DB_GRANT_ID` bigint(20) NOT NULL, + `CREATE_TIME` int(11) NOT NULL, + `DB_ID` bigint(20) DEFAULT NULL, + `GRANT_OPTION` smallint(6) NOT NULL, + `GRANTOR` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `GRANTOR_TYPE` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `PRINCIPAL_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `PRINCIPAL_TYPE` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `DB_PRIV` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + PRIMARY KEY (`DB_GRANT_ID`), + UNIQUE KEY `DBPRIVILEGEINDEX` (`DB_ID`,`PRINCIPAL_NAME`,`PRINCIPAL_TYPE`,`DB_PRIV`,`GRANTOR`,`GRANTOR_TYPE`), + KEY `DB_PRIVS_N49` (`DB_ID`), + CONSTRAINT `DB_PRIVS_FK1` FOREIGN KEY (`DB_ID`) REFERENCES `DBS` (`DB_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `GLOBAL_PRIVS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `GLOBAL_PRIVS` ( + `USER_GRANT_ID` bigint(20) NOT NULL, + `CREATE_TIME` int(11) NOT NULL, + `GRANT_OPTION` smallint(6) NOT NULL, + `GRANTOR` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `GRANTOR_TYPE` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `PRINCIPAL_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `PRINCIPAL_TYPE` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `USER_PRIV` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + PRIMARY KEY (`USER_GRANT_ID`), + UNIQUE KEY `GLOBALPRIVILEGEINDEX` (`PRINCIPAL_NAME`,`PRINCIPAL_TYPE`,`USER_PRIV`,`GRANTOR`,`GRANTOR_TYPE`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `IDXS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `IDXS` ( + `INDEX_ID` bigint(20) NOT NULL, + `CREATE_TIME` int(11) NOT NULL, + `DEFERRED_REBUILD` bit(1) NOT NULL, + `INDEX_HANDLER_CLASS` varchar(4000) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `INDEX_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `INDEX_TBL_ID` bigint(20) DEFAULT NULL, + `LAST_ACCESS_TIME` int(11) NOT NULL, + `ORIG_TBL_ID` bigint(20) DEFAULT NULL, + `SD_ID` bigint(20) DEFAULT NULL, + PRIMARY KEY (`INDEX_ID`), + UNIQUE KEY `UNIQUEINDEX` (`INDEX_NAME`,`ORIG_TBL_ID`), + KEY `IDXS_N51` (`SD_ID`), + KEY `IDXS_N50` (`INDEX_TBL_ID`), + KEY `IDXS_N49` (`ORIG_TBL_ID`), + CONSTRAINT `IDXS_FK3` FOREIGN KEY (`INDEX_TBL_ID`) REFERENCES `TBLS` (`TBL_ID`), + CONSTRAINT `IDXS_FK1` FOREIGN KEY (`ORIG_TBL_ID`) REFERENCES `TBLS` (`TBL_ID`), + CONSTRAINT `IDXS_FK2` FOREIGN KEY (`SD_ID`) REFERENCES `SDS` (`SD_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `INDEX_PARAMS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `INDEX_PARAMS` ( + `INDEX_ID` bigint(20) NOT NULL, + `PARAM_KEY` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `PARAM_VALUE` varchar(4000) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + PRIMARY KEY (`INDEX_ID`,`PARAM_KEY`), + KEY `INDEX_PARAMS_N49` (`INDEX_ID`), + CONSTRAINT `INDEX_PARAMS_FK1` FOREIGN KEY (`INDEX_ID`) REFERENCES `IDXS` (`INDEX_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `NUCLEUS_TABLES` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `NUCLEUS_TABLES` ( + `CLASS_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `TABLE_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `TYPE` varchar(4) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `OWNER` varchar(2) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `VERSION` varchar(20) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `INTERFACE_NAME` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + PRIMARY KEY (`CLASS_NAME`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `PARTITIONS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `PARTITIONS` ( + `PART_ID` bigint(20) NOT NULL, + `CREATE_TIME` int(11) NOT NULL, + `LAST_ACCESS_TIME` int(11) NOT NULL, + `PART_NAME` varchar(767) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `SD_ID` bigint(20) DEFAULT NULL, + `TBL_ID` bigint(20) DEFAULT NULL, + PRIMARY KEY (`PART_ID`), + UNIQUE KEY `UNIQUEPARTITION` (`PART_NAME`,`TBL_ID`), + KEY `PARTITIONS_N49` (`TBL_ID`), + KEY `PARTITIONS_N50` (`SD_ID`), + CONSTRAINT `PARTITIONS_FK2` FOREIGN KEY (`SD_ID`) REFERENCES `SDS` (`SD_ID`), + CONSTRAINT `PARTITIONS_FK1` FOREIGN KEY (`TBL_ID`) REFERENCES `TBLS` (`TBL_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `PARTITION_EVENTS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `PARTITION_EVENTS` ( + `PART_NAME_ID` bigint(20) NOT NULL, + `DB_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `EVENT_TIME` bigint(20) NOT NULL, + `EVENT_TYPE` int(11) NOT NULL, + `PARTITION_NAME` varchar(767) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `TBL_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + PRIMARY KEY (`PART_NAME_ID`), + KEY `PARTITIONEVENTINDEX` (`PARTITION_NAME`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `PARTITION_KEYS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `PARTITION_KEYS` ( + `TBL_ID` bigint(20) NOT NULL, + `PKEY_COMMENT` varchar(4000) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `PKEY_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `PKEY_TYPE` varchar(767) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `INTEGER_IDX` int(11) NOT NULL, + PRIMARY KEY (`TBL_ID`,`PKEY_NAME`), + KEY `PARTITION_KEYS_N49` (`TBL_ID`), + CONSTRAINT `PARTITION_KEYS_FK1` FOREIGN KEY (`TBL_ID`) REFERENCES `TBLS` (`TBL_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `PARTITION_KEY_VALS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `PARTITION_KEY_VALS` ( + `PART_ID` bigint(20) NOT NULL, + `PART_KEY_VAL` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `INTEGER_IDX` int(11) NOT NULL, + PRIMARY KEY (`PART_ID`,`INTEGER_IDX`), + KEY `PARTITION_KEY_VALS_N49` (`PART_ID`), + CONSTRAINT `PARTITION_KEY_VALS_FK1` FOREIGN KEY (`PART_ID`) REFERENCES `PARTITIONS` (`PART_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `PARTITION_PARAMS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `PARTITION_PARAMS` ( + `PART_ID` bigint(20) NOT NULL, + `PARAM_KEY` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `PARAM_VALUE` varchar(4000) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + PRIMARY KEY (`PART_ID`,`PARAM_KEY`), + KEY `PARTITION_PARAMS_N49` (`PART_ID`), + CONSTRAINT `PARTITION_PARAMS_FK1` FOREIGN KEY (`PART_ID`) REFERENCES `PARTITIONS` (`PART_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `PART_COL_PRIVS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `PART_COL_PRIVS` ( + `PART_COLUMN_GRANT_ID` bigint(20) NOT NULL, + `COLUMN_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `CREATE_TIME` int(11) NOT NULL, + `GRANT_OPTION` smallint(6) NOT NULL, + `GRANTOR` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `GRANTOR_TYPE` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `PART_ID` bigint(20) DEFAULT NULL, + `PRINCIPAL_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `PRINCIPAL_TYPE` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `PART_COL_PRIV` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + PRIMARY KEY (`PART_COLUMN_GRANT_ID`), + KEY `PART_COL_PRIVS_N49` (`PART_ID`), + KEY `PARTITIONCOLUMNPRIVILEGEINDEX` (`PART_ID`,`COLUMN_NAME`,`PRINCIPAL_NAME`,`PRINCIPAL_TYPE`,`PART_COL_PRIV`,`GRANTOR`,`GRANTOR_TYPE`), + CONSTRAINT `PART_COL_PRIVS_FK1` FOREIGN KEY (`PART_ID`) REFERENCES `PARTITIONS` (`PART_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `PART_PRIVS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `PART_PRIVS` ( + `PART_GRANT_ID` bigint(20) NOT NULL, + `CREATE_TIME` int(11) NOT NULL, + `GRANT_OPTION` smallint(6) NOT NULL, + `GRANTOR` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `GRANTOR_TYPE` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `PART_ID` bigint(20) DEFAULT NULL, + `PRINCIPAL_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `PRINCIPAL_TYPE` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `PART_PRIV` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + PRIMARY KEY (`PART_GRANT_ID`), + KEY `PARTPRIVILEGEINDEX` (`PART_ID`,`PRINCIPAL_NAME`,`PRINCIPAL_TYPE`,`PART_PRIV`,`GRANTOR`,`GRANTOR_TYPE`), + KEY `PART_PRIVS_N49` (`PART_ID`), + CONSTRAINT `PART_PRIVS_FK1` FOREIGN KEY (`PART_ID`) REFERENCES `PARTITIONS` (`PART_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `ROLES` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `ROLES` ( + `ROLE_ID` bigint(20) NOT NULL, + `CREATE_TIME` int(11) NOT NULL, + `OWNER_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `ROLE_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + PRIMARY KEY (`ROLE_ID`), + UNIQUE KEY `ROLEENTITYINDEX` (`ROLE_NAME`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `ROLE_MAP` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `ROLE_MAP` ( + `ROLE_GRANT_ID` bigint(20) NOT NULL, + `ADD_TIME` int(11) NOT NULL, + `GRANT_OPTION` smallint(6) NOT NULL, + `GRANTOR` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `GRANTOR_TYPE` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `PRINCIPAL_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `PRINCIPAL_TYPE` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `ROLE_ID` bigint(20) DEFAULT NULL, + PRIMARY KEY (`ROLE_GRANT_ID`), + UNIQUE KEY `USERROLEMAPINDEX` (`PRINCIPAL_NAME`,`ROLE_ID`,`GRANTOR`,`GRANTOR_TYPE`), + KEY `ROLE_MAP_N49` (`ROLE_ID`), + CONSTRAINT `ROLE_MAP_FK1` FOREIGN KEY (`ROLE_ID`) REFERENCES `ROLES` (`ROLE_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SDS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `SDS` ( + `SD_ID` bigint(20) NOT NULL, + `CD_ID` bigint(20) DEFAULT NULL, + `INPUT_FORMAT` varchar(4000) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `IS_COMPRESSED` bit(1) NOT NULL, + `LOCATION` varchar(4000) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `NUM_BUCKETS` int(11) NOT NULL, + `OUTPUT_FORMAT` varchar(4000) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `SERDE_ID` bigint(20) DEFAULT NULL, + PRIMARY KEY (`SD_ID`), + KEY `SDS_N49` (`SERDE_ID`), + KEY `SDS_N50` (`CD_ID`), + CONSTRAINT `SDS_FK1` FOREIGN KEY (`SERDE_ID`) REFERENCES `SERDES` (`SERDE_ID`), + CONSTRAINT `SDS_FK2` FOREIGN KEY (`CD_ID`) REFERENCES `CDS` (`CD_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SD_PARAMS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `SD_PARAMS` ( + `SD_ID` bigint(20) NOT NULL, + `PARAM_KEY` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `PARAM_VALUE` varchar(4000) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + PRIMARY KEY (`SD_ID`,`PARAM_KEY`), + KEY `SD_PARAMS_N49` (`SD_ID`), + CONSTRAINT `SD_PARAMS_FK1` FOREIGN KEY (`SD_ID`) REFERENCES `SDS` (`SD_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SEQUENCE_TABLE` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `SEQUENCE_TABLE` ( + `SEQUENCE_NAME` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `NEXT_VAL` bigint(20) NOT NULL, + PRIMARY KEY (`SEQUENCE_NAME`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SERDES` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `SERDES` ( + `SERDE_ID` bigint(20) NOT NULL, + `NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `SLIB` varchar(4000) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + PRIMARY KEY (`SERDE_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SERDE_PARAMS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `SERDE_PARAMS` ( + `SERDE_ID` bigint(20) NOT NULL, + `PARAM_KEY` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `PARAM_VALUE` varchar(4000) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + PRIMARY KEY (`SERDE_ID`,`PARAM_KEY`), + KEY `SERDE_PARAMS_N49` (`SERDE_ID`), + CONSTRAINT `SERDE_PARAMS_FK1` FOREIGN KEY (`SERDE_ID`) REFERENCES `SERDES` (`SERDE_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SORT_COLS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `SORT_COLS` ( + `SD_ID` bigint(20) NOT NULL, + `COLUMN_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `ORDER` int(11) NOT NULL, + `INTEGER_IDX` int(11) NOT NULL, + PRIMARY KEY (`SD_ID`,`INTEGER_IDX`), + KEY `SORT_COLS_N49` (`SD_ID`), + CONSTRAINT `SORT_COLS_FK1` FOREIGN KEY (`SD_ID`) REFERENCES `SDS` (`SD_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `TABLE_PARAMS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `TABLE_PARAMS` ( + `TBL_ID` bigint(20) NOT NULL, + `PARAM_KEY` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `PARAM_VALUE` varchar(4000) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + PRIMARY KEY (`TBL_ID`,`PARAM_KEY`), + KEY `TABLE_PARAMS_N49` (`TBL_ID`), + CONSTRAINT `TABLE_PARAMS_FK1` FOREIGN KEY (`TBL_ID`) REFERENCES `TBLS` (`TBL_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `TBLS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `TBLS` ( + `TBL_ID` bigint(20) NOT NULL, + `CREATE_TIME` int(11) NOT NULL, + `DB_ID` bigint(20) DEFAULT NULL, + `LAST_ACCESS_TIME` int(11) NOT NULL, + `OWNER` varchar(767) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `RETENTION` int(11) NOT NULL, + `SD_ID` bigint(20) DEFAULT NULL, + `TBL_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `TBL_TYPE` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `VIEW_EXPANDED_TEXT` mediumtext, + `VIEW_ORIGINAL_TEXT` mediumtext, + `LINK_TARGET_ID` bigint(20) DEFAULT NULL, + PRIMARY KEY (`TBL_ID`), + UNIQUE KEY `UNIQUETABLE` (`TBL_NAME`,`DB_ID`), + KEY `TBLS_N50` (`SD_ID`), + KEY `TBLS_N49` (`DB_ID`), + KEY `TBLS_N48` (`LINK_TARGET_ID`), + CONSTRAINT `TBLS_FK1` FOREIGN KEY (`SD_ID`) REFERENCES `SDS` (`SD_ID`), + CONSTRAINT `TBLS_FK2` FOREIGN KEY (`DB_ID`) REFERENCES `DBS` (`DB_ID`), + CONSTRAINT `TBLS_FK3` FOREIGN KEY (`LINK_TARGET_ID`) REFERENCES `TBLS` (`TBL_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `TBL_COL_PRIVS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `TBL_COL_PRIVS` ( + `TBL_COLUMN_GRANT_ID` bigint(20) NOT NULL, + `COLUMN_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `CREATE_TIME` int(11) NOT NULL, + `GRANT_OPTION` smallint(6) NOT NULL, + `GRANTOR` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `GRANTOR_TYPE` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `PRINCIPAL_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `PRINCIPAL_TYPE` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `TBL_COL_PRIV` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `TBL_ID` bigint(20) DEFAULT NULL, + PRIMARY KEY (`TBL_COLUMN_GRANT_ID`), + KEY `TABLECOLUMNPRIVILEGEINDEX` (`TBL_ID`,`COLUMN_NAME`,`PRINCIPAL_NAME`,`PRINCIPAL_TYPE`,`TBL_COL_PRIV`,`GRANTOR`,`GRANTOR_TYPE`), + KEY `TBL_COL_PRIVS_N49` (`TBL_ID`), + CONSTRAINT `TBL_COL_PRIVS_FK1` FOREIGN KEY (`TBL_ID`) REFERENCES `TBLS` (`TBL_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `TBL_PRIVS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `TBL_PRIVS` ( + `TBL_GRANT_ID` bigint(20) NOT NULL, + `CREATE_TIME` int(11) NOT NULL, + `GRANT_OPTION` smallint(6) NOT NULL, + `GRANTOR` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `GRANTOR_TYPE` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `PRINCIPAL_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `PRINCIPAL_TYPE` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `TBL_PRIV` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `TBL_ID` bigint(20) DEFAULT NULL, + PRIMARY KEY (`TBL_GRANT_ID`), + KEY `TBL_PRIVS_N49` (`TBL_ID`), + KEY `TABLEPRIVILEGEINDEX` (`TBL_ID`,`PRINCIPAL_NAME`,`PRINCIPAL_TYPE`,`TBL_PRIV`,`GRANTOR`,`GRANTOR_TYPE`), + CONSTRAINT `TBL_PRIVS_FK1` FOREIGN KEY (`TBL_ID`) REFERENCES `TBLS` (`TBL_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `TYPES` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `TYPES` ( + `TYPES_ID` bigint(20) NOT NULL, + `TYPE_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `TYPE1` varchar(767) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `TYPE2` varchar(767) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + PRIMARY KEY (`TYPES_ID`), + UNIQUE KEY `UNIQUE_TYPE` (`TYPE_NAME`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `TYPE_FIELDS` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `TYPE_FIELDS` ( + `TYPE_NAME` bigint(20) NOT NULL, + `COMMENT` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, + `FIELD_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `FIELD_TYPE` varchar(767) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + `INTEGER_IDX` int(11) NOT NULL, + PRIMARY KEY (`TYPE_NAME`,`FIELD_NAME`), + KEY `TYPE_FIELDS_N49` (`TYPE_NAME`), + CONSTRAINT `TYPE_FIELDS_FK1` FOREIGN KEY (`TYPE_NAME`) REFERENCES `TYPES` (`TYPES_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2011-09-22 13:31:46 Index: metastore/scripts/upgrade/derby/upgrade-0.9.0-to-0.10.0.derby.sql =================================================================== --- metastore/scripts/upgrade/derby/upgrade-0.9.0-to-0.10.0.derby.sql (revision 0) +++ metastore/scripts/upgrade/derby/upgrade-0.9.0-to-0.10.0.derby.sql (working copy) @@ -0,0 +1,2 @@ +-- Upgrade MetaStore schema from 0.9.0 to 0.10.0 +RUN '010-HIVE-2989.derby.sql'; Index: metastore/scripts/upgrade/derby/010-HIVE-2989.derby.sql =================================================================== --- metastore/scripts/upgrade/derby/010-HIVE-2989.derby.sql (revision 0) +++ metastore/scripts/upgrade/derby/010-HIVE-2989.derby.sql (working copy) @@ -0,0 +1,3 @@ +-- HIVE-2989: Support creation of TableLinks +ALTER TABLE "TBLS" ADD COLUMN "LINK_TARGET_ID" BIGINT DEFAULT NULL; +ALTER TABLE "TBLS" ADD CONSTRAINT "TBLS_FK3" FOREIGN KEY ("LINK_TARGET_ID") REFERENCES "TBLS" ("TBL_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; Index: metastore/scripts/upgrade/derby/hive-schema-0.10.0.derby.sql =================================================================== --- metastore/scripts/upgrade/derby/hive-schema-0.10.0.derby.sql (revision 0) +++ metastore/scripts/upgrade/derby/hive-schema-0.10.0.derby.sql (working copy) @@ -0,0 +1,248 @@ +-- Timestamp: 2011-09-22 15:32:02.024 +-- Source database is: /home/carl/Work/repos/hive1/metastore/scripts/upgrade/derby/mdb +-- Connection URL is: jdbc:derby:/home/carl/Work/repos/hive1/metastore/scripts/upgrade/derby/mdb +-- Specified schema is: APP +-- appendLogs: false + +-- ---------------------------------------------- +-- DDL Statements for functions +-- ---------------------------------------------- + +CREATE FUNCTION "APP"."NUCLEUS_ASCII" (C CHAR(1)) RETURNS INTEGER LANGUAGE JAVA PARAMETER STYLE JAVA READS SQL DATA CALLED ON NULL INPUT EXTERNAL NAME 'org.datanucleus.store.rdbms.adapter.DerbySQLFunction.ascii' ; + +CREATE FUNCTION "APP"."NUCLEUS_MATCHES" (TEXT VARCHAR(8000),PATTERN VARCHAR(8000)) RETURNS INTEGER LANGUAGE JAVA PARAMETER STYLE JAVA READS SQL DATA CALLED ON NULL INPUT EXTERNAL NAME 'org.datanucleus.store.rdbms.adapter.DerbySQLFunction.matches' ; + +-- ---------------------------------------------- +-- DDL Statements for tables +-- ---------------------------------------------- + +CREATE TABLE "APP"."DBS" ("DB_ID" BIGINT NOT NULL, "DESC" VARCHAR(4000), "DB_LOCATION_URI" VARCHAR(4000) NOT NULL, "NAME" VARCHAR(128)); + +CREATE TABLE "APP"."TBL_PRIVS" ("TBL_GRANT_ID" BIGINT NOT NULL, "CREATE_TIME" INTEGER NOT NULL, "GRANT_OPTION" SMALLINT NOT NULL, "GRANTOR" VARCHAR(128), "GRANTOR_TYPE" VARCHAR(128), "PRINCIPAL_NAME" VARCHAR(128), "PRINCIPAL_TYPE" VARCHAR(128), "TBL_PRIV" VARCHAR(128), "TBL_ID" BIGINT); + +CREATE TABLE "APP"."DATABASE_PARAMS" ("DB_ID" BIGINT NOT NULL, "PARAM_KEY" VARCHAR(180) NOT NULL, "PARAM_VALUE" VARCHAR(4000)); + +CREATE TABLE "APP"."TBL_COL_PRIVS" ("TBL_COLUMN_GRANT_ID" BIGINT NOT NULL, "COLUMN_NAME" VARCHAR(128), "CREATE_TIME" INTEGER NOT NULL, "GRANT_OPTION" SMALLINT NOT NULL, "GRANTOR" VARCHAR(128), "GRANTOR_TYPE" VARCHAR(128), "PRINCIPAL_NAME" VARCHAR(128), "PRINCIPAL_TYPE" VARCHAR(128), "TBL_COL_PRIV" VARCHAR(128), "TBL_ID" BIGINT); + +CREATE TABLE "APP"."SERDE_PARAMS" ("SERDE_ID" BIGINT NOT NULL, "PARAM_KEY" VARCHAR(256) NOT NULL, "PARAM_VALUE" VARCHAR(4000)); + +CREATE TABLE "APP"."COLUMNS_V2" ("CD_ID" BIGINT NOT NULL, "COMMENT" VARCHAR(4000), "COLUMN_NAME" VARCHAR(128) NOT NULL, "TYPE_NAME" VARCHAR(4000), "INTEGER_IDX" INTEGER NOT NULL); + +CREATE TABLE "APP"."SORT_COLS" ("SD_ID" BIGINT NOT NULL, "COLUMN_NAME" VARCHAR(128), "ORDER" INTEGER NOT NULL, "INTEGER_IDX" INTEGER NOT NULL); + +CREATE TABLE "APP"."CDS" ("CD_ID" BIGINT NOT NULL); + +CREATE TABLE "APP"."PARTITION_KEY_VALS" ("PART_ID" BIGINT NOT NULL, "PART_KEY_VAL" VARCHAR(256), "INTEGER_IDX" INTEGER NOT NULL); + +CREATE TABLE "APP"."DB_PRIVS" ("DB_GRANT_ID" BIGINT NOT NULL, "CREATE_TIME" INTEGER NOT NULL, "DB_ID" BIGINT, "GRANT_OPTION" SMALLINT NOT NULL, "GRANTOR" VARCHAR(128), "GRANTOR_TYPE" VARCHAR(128), "PRINCIPAL_NAME" VARCHAR(128), "PRINCIPAL_TYPE" VARCHAR(128), "DB_PRIV" VARCHAR(128)); + +CREATE TABLE "APP"."IDXS" ("INDEX_ID" BIGINT NOT NULL, "CREATE_TIME" INTEGER NOT NULL, "DEFERRED_REBUILD" CHAR(1) NOT NULL, "INDEX_HANDLER_CLASS" VARCHAR(4000), "INDEX_NAME" VARCHAR(128), "INDEX_TBL_ID" BIGINT, "LAST_ACCESS_TIME" INTEGER NOT NULL, "ORIG_TBL_ID" BIGINT, "SD_ID" BIGINT); + +CREATE TABLE "APP"."INDEX_PARAMS" ("INDEX_ID" BIGINT NOT NULL, "PARAM_KEY" VARCHAR(256) NOT NULL, "PARAM_VALUE" VARCHAR(4000)); + +CREATE TABLE "APP"."PARTITIONS" ("PART_ID" BIGINT NOT NULL, "CREATE_TIME" INTEGER NOT NULL, "LAST_ACCESS_TIME" INTEGER NOT NULL, "PART_NAME" VARCHAR(767), "SD_ID" BIGINT, "TBL_ID" BIGINT); + +CREATE TABLE "APP"."SERDES" ("SERDE_ID" BIGINT NOT NULL, "NAME" VARCHAR(128), "SLIB" VARCHAR(4000)); + +CREATE TABLE "APP"."PART_PRIVS" ("PART_GRANT_ID" BIGINT NOT NULL, "CREATE_TIME" INTEGER NOT NULL, "GRANT_OPTION" SMALLINT NOT NULL, "GRANTOR" VARCHAR(128), "GRANTOR_TYPE" VARCHAR(128), "PART_ID" BIGINT, "PRINCIPAL_NAME" VARCHAR(128), "PRINCIPAL_TYPE" VARCHAR(128), "PART_PRIV" VARCHAR(128)); + +CREATE TABLE "APP"."ROLE_MAP" ("ROLE_GRANT_ID" BIGINT NOT NULL, "ADD_TIME" INTEGER NOT NULL, "GRANT_OPTION" SMALLINT NOT NULL, "GRANTOR" VARCHAR(128), "GRANTOR_TYPE" VARCHAR(128), "PRINCIPAL_NAME" VARCHAR(128), "PRINCIPAL_TYPE" VARCHAR(128), "ROLE_ID" BIGINT); + +CREATE TABLE "APP"."TYPES" ("TYPES_ID" BIGINT NOT NULL, "TYPE_NAME" VARCHAR(128), "TYPE1" VARCHAR(767), "TYPE2" VARCHAR(767)); + +CREATE TABLE "APP"."GLOBAL_PRIVS" ("USER_GRANT_ID" BIGINT NOT NULL, "CREATE_TIME" INTEGER NOT NULL, "GRANT_OPTION" SMALLINT NOT NULL, "GRANTOR" VARCHAR(128), "GRANTOR_TYPE" VARCHAR(128), "PRINCIPAL_NAME" VARCHAR(128), "PRINCIPAL_TYPE" VARCHAR(128), "USER_PRIV" VARCHAR(128)); + +CREATE TABLE "APP"."PARTITION_PARAMS" ("PART_ID" BIGINT NOT NULL, "PARAM_KEY" VARCHAR(256) NOT NULL, "PARAM_VALUE" VARCHAR(4000)); + +CREATE TABLE "APP"."PARTITION_EVENTS" ("PART_NAME_ID" BIGINT NOT NULL, "DB_NAME" VARCHAR(128), "EVENT_TIME" BIGINT NOT NULL, "EVENT_TYPE" INTEGER NOT NULL, "PARTITION_NAME" VARCHAR(767), "TBL_NAME" VARCHAR(128)); + +CREATE TABLE "APP"."COLUMNS" ("SD_ID" BIGINT NOT NULL, "COMMENT" VARCHAR(256), "COLUMN_NAME" VARCHAR(128) NOT NULL, "TYPE_NAME" VARCHAR(4000) NOT NULL, "INTEGER_IDX" INTEGER NOT NULL); + +CREATE TABLE "APP"."ROLES" ("ROLE_ID" BIGINT NOT NULL, "CREATE_TIME" INTEGER NOT NULL, "OWNER_NAME" VARCHAR(128), "ROLE_NAME" VARCHAR(128)); + +CREATE TABLE "APP"."TBLS" ("TBL_ID" BIGINT NOT NULL, "CREATE_TIME" INTEGER NOT NULL, "DB_ID" BIGINT, "LAST_ACCESS_TIME" INTEGER NOT NULL, "OWNER" VARCHAR(767), "RETENTION" INTEGER NOT NULL, "SD_ID" BIGINT, "TBL_NAME" VARCHAR(128), "TBL_TYPE" VARCHAR(128), "VIEW_EXPANDED_TEXT" LONG VARCHAR, "VIEW_ORIGINAL_TEXT" LONG VARCHAR, "LINK_TARGET_ID" BIGINT DEFAULT NULL); + +CREATE TABLE "APP"."PARTITION_KEYS" ("TBL_ID" BIGINT NOT NULL, "PKEY_COMMENT" VARCHAR(4000), "PKEY_NAME" VARCHAR(128) NOT NULL, "PKEY_TYPE" VARCHAR(767) NOT NULL, "INTEGER_IDX" INTEGER NOT NULL); + +CREATE TABLE "APP"."PART_COL_PRIVS" ("PART_COLUMN_GRANT_ID" BIGINT NOT NULL, "COLUMN_NAME" VARCHAR(128), "CREATE_TIME" INTEGER NOT NULL, "GRANT_OPTION" SMALLINT NOT NULL, "GRANTOR" VARCHAR(128), "GRANTOR_TYPE" VARCHAR(128), "PART_ID" BIGINT, "PRINCIPAL_NAME" VARCHAR(128), "PRINCIPAL_TYPE" VARCHAR(128), "PART_COL_PRIV" VARCHAR(128)); + +CREATE TABLE "APP"."SDS" ("SD_ID" BIGINT NOT NULL, "INPUT_FORMAT" VARCHAR(4000), "IS_COMPRESSED" CHAR(1) NOT NULL, "LOCATION" VARCHAR(4000), "NUM_BUCKETS" INTEGER NOT NULL, "OUTPUT_FORMAT" VARCHAR(4000), "SERDE_ID" BIGINT, "CD_ID" BIGINT); + +CREATE TABLE "APP"."SEQUENCE_TABLE" ("SEQUENCE_NAME" VARCHAR(256) NOT NULL, "NEXT_VAL" BIGINT NOT NULL); + +CREATE TABLE "APP"."TABLE_PARAMS" ("TBL_ID" BIGINT NOT NULL, "PARAM_KEY" VARCHAR(256) NOT NULL, "PARAM_VALUE" VARCHAR(4000)); + +CREATE TABLE "APP"."BUCKETING_COLS" ("SD_ID" BIGINT NOT NULL, "BUCKET_COL_NAME" VARCHAR(256), "INTEGER_IDX" INTEGER NOT NULL); + +CREATE TABLE "APP"."TYPE_FIELDS" ("TYPE_NAME" BIGINT NOT NULL, "COMMENT" VARCHAR(256), "FIELD_NAME" VARCHAR(128) NOT NULL, "FIELD_TYPE" VARCHAR(767) NOT NULL, "INTEGER_IDX" INTEGER NOT NULL); + +CREATE TABLE "APP"."NUCLEUS_TABLES" ("CLASS_NAME" VARCHAR(128) NOT NULL, "TABLE_NAME" VARCHAR(128) NOT NULL, "TYPE" VARCHAR(4) NOT NULL, "OWNER" VARCHAR(2) NOT NULL, "VERSION" VARCHAR(20) NOT NULL, "INTERFACE_NAME" VARCHAR(256) DEFAULT NULL); + +CREATE TABLE "APP"."SD_PARAMS" ("SD_ID" BIGINT NOT NULL, "PARAM_KEY" VARCHAR(256) NOT NULL, "PARAM_VALUE" VARCHAR(4000)); + +-- ---------------------------------------------- +-- DDL Statements for indexes +-- ---------------------------------------------- + +CREATE UNIQUE INDEX "APP"."UNIQUEINDEX" ON "APP"."IDXS" ("INDEX_NAME", "ORIG_TBL_ID"); + +CREATE INDEX "APP"."TABLECOLUMNPRIVILEGEINDEX" ON "APP"."TBL_COL_PRIVS" ("TBL_ID", "COLUMN_NAME", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "TBL_COL_PRIV", "GRANTOR", "GRANTOR_TYPE"); + +CREATE UNIQUE INDEX "APP"."DBPRIVILEGEINDEX" ON "APP"."DB_PRIVS" ("DB_ID", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "DB_PRIV", "GRANTOR", "GRANTOR_TYPE"); + +CREATE INDEX "APP"."PARTPRIVILEGEINDEX" ON "APP"."PART_PRIVS" ("PART_ID", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "PART_PRIV", "GRANTOR", "GRANTOR_TYPE"); + +CREATE UNIQUE INDEX "APP"."ROLEENTITYINDEX" ON "APP"."ROLES" ("ROLE_NAME"); + +CREATE INDEX "APP"."TABLEPRIVILEGEINDEX" ON "APP"."TBL_PRIVS" ("TBL_ID", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "TBL_PRIV", "GRANTOR", "GRANTOR_TYPE"); + +CREATE UNIQUE INDEX "APP"."UNIQUETABLE" ON "APP"."TBLS" ("TBL_NAME", "DB_ID"); + +CREATE UNIQUE INDEX "APP"."UNIQUE_DATABASE" ON "APP"."DBS" ("NAME"); + +CREATE UNIQUE INDEX "APP"."USERROLEMAPINDEX" ON "APP"."ROLE_MAP" ("PRINCIPAL_NAME", "ROLE_ID", "GRANTOR", "GRANTOR_TYPE"); + +CREATE UNIQUE INDEX "APP"."GLOBALPRIVILEGEINDEX" ON "APP"."GLOBAL_PRIVS" ("PRINCIPAL_NAME", "PRINCIPAL_TYPE", "USER_PRIV", "GRANTOR", "GRANTOR_TYPE"); + +CREATE UNIQUE INDEX "APP"."UNIQUE_TYPE" ON "APP"."TYPES" ("TYPE_NAME"); + +CREATE INDEX "APP"."PARTITIONCOLUMNPRIVILEGEINDEX" ON "APP"."PART_COL_PRIVS" ("PART_ID", "COLUMN_NAME", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "PART_COL_PRIV", "GRANTOR", "GRANTOR_TYPE"); + +CREATE UNIQUE INDEX "APP"."UNIQUEPARTITION" ON "APP"."PARTITIONS" ("PART_NAME", "TBL_ID"); + +-- ---------------------------------------------- +-- DDL Statements for keys +-- ---------------------------------------------- + +-- primary/unique +ALTER TABLE "APP"."IDXS" ADD CONSTRAINT "IDXS_PK" PRIMARY KEY ("INDEX_ID"); + +ALTER TABLE "APP"."TBL_COL_PRIVS" ADD CONSTRAINT "TBL_COL_PRIVS_PK" PRIMARY KEY ("TBL_COLUMN_GRANT_ID"); + +ALTER TABLE "APP"."CDS" ADD CONSTRAINT "SQL110922153006460" PRIMARY KEY ("CD_ID"); + +ALTER TABLE "APP"."DB_PRIVS" ADD CONSTRAINT "DB_PRIVS_PK" PRIMARY KEY ("DB_GRANT_ID"); + +ALTER TABLE "APP"."INDEX_PARAMS" ADD CONSTRAINT "INDEX_PARAMS_PK" PRIMARY KEY ("INDEX_ID", "PARAM_KEY"); + +ALTER TABLE "APP"."PARTITION_KEYS" ADD CONSTRAINT "PARTITION_KEY_PK" PRIMARY KEY ("TBL_ID", "PKEY_NAME"); + +ALTER TABLE "APP"."SEQUENCE_TABLE" ADD CONSTRAINT "SEQUENCE_TABLE_PK" PRIMARY KEY ("SEQUENCE_NAME"); + +ALTER TABLE "APP"."PART_PRIVS" ADD CONSTRAINT "PART_PRIVS_PK" PRIMARY KEY ("PART_GRANT_ID"); + +ALTER TABLE "APP"."SDS" ADD CONSTRAINT "SDS_PK" PRIMARY KEY ("SD_ID"); + +ALTER TABLE "APP"."SERDES" ADD CONSTRAINT "SERDES_PK" PRIMARY KEY ("SERDE_ID"); + +ALTER TABLE "APP"."COLUMNS" ADD CONSTRAINT "COLUMNS_PK" PRIMARY KEY ("SD_ID", "COLUMN_NAME"); + +ALTER TABLE "APP"."PARTITION_EVENTS" ADD CONSTRAINT "PARTITION_EVENTS_PK" PRIMARY KEY ("PART_NAME_ID"); + +ALTER TABLE "APP"."TYPE_FIELDS" ADD CONSTRAINT "TYPE_FIELDS_PK" PRIMARY KEY ("TYPE_NAME", "FIELD_NAME"); + +ALTER TABLE "APP"."ROLES" ADD CONSTRAINT "ROLES_PK" PRIMARY KEY ("ROLE_ID"); + +ALTER TABLE "APP"."TBL_PRIVS" ADD CONSTRAINT "TBL_PRIVS_PK" PRIMARY KEY ("TBL_GRANT_ID"); + +ALTER TABLE "APP"."SERDE_PARAMS" ADD CONSTRAINT "SERDE_PARAMS_PK" PRIMARY KEY ("SERDE_ID", "PARAM_KEY"); + +ALTER TABLE "APP"."NUCLEUS_TABLES" ADD CONSTRAINT "NUCLEUS_TABLES_PK" PRIMARY KEY ("CLASS_NAME"); + +ALTER TABLE "APP"."TBLS" ADD CONSTRAINT "TBLS_PK" PRIMARY KEY ("TBL_ID"); + +ALTER TABLE "APP"."SD_PARAMS" ADD CONSTRAINT "SD_PARAMS_PK" PRIMARY KEY ("SD_ID", "PARAM_KEY"); + +ALTER TABLE "APP"."DATABASE_PARAMS" ADD CONSTRAINT "DATABASE_PARAMS_PK" PRIMARY KEY ("DB_ID", "PARAM_KEY"); + +ALTER TABLE "APP"."DBS" ADD CONSTRAINT "DBS_PK" PRIMARY KEY ("DB_ID"); + +ALTER TABLE "APP"."ROLE_MAP" ADD CONSTRAINT "ROLE_MAP_PK" PRIMARY KEY ("ROLE_GRANT_ID"); + +ALTER TABLE "APP"."GLOBAL_PRIVS" ADD CONSTRAINT "GLOBAL_PRIVS_PK" PRIMARY KEY ("USER_GRANT_ID"); + +ALTER TABLE "APP"."BUCKETING_COLS" ADD CONSTRAINT "BUCKETING_COLS_PK" PRIMARY KEY ("SD_ID", "INTEGER_IDX"); + +ALTER TABLE "APP"."SORT_COLS" ADD CONSTRAINT "SORT_COLS_PK" PRIMARY KEY ("SD_ID", "INTEGER_IDX"); + +ALTER TABLE "APP"."PARTITION_KEY_VALS" ADD CONSTRAINT "PARTITION_KEY_VALS_PK" PRIMARY KEY ("PART_ID", "INTEGER_IDX"); + +ALTER TABLE "APP"."TYPES" ADD CONSTRAINT "TYPES_PK" PRIMARY KEY ("TYPES_ID"); + +ALTER TABLE "APP"."COLUMNS_V2" ADD CONSTRAINT "SQL110922153006740" PRIMARY KEY ("CD_ID", "COLUMN_NAME"); + +ALTER TABLE "APP"."PART_COL_PRIVS" ADD CONSTRAINT "PART_COL_PRIVS_PK" PRIMARY KEY ("PART_COLUMN_GRANT_ID"); + +ALTER TABLE "APP"."PARTITION_PARAMS" ADD CONSTRAINT "PARTITION_PARAMS_PK" PRIMARY KEY ("PART_ID", "PARAM_KEY"); + +ALTER TABLE "APP"."PARTITIONS" ADD CONSTRAINT "PARTITIONS_PK" PRIMARY KEY ("PART_ID"); + +ALTER TABLE "APP"."TABLE_PARAMS" ADD CONSTRAINT "TABLE_PARAMS_PK" PRIMARY KEY ("TBL_ID", "PARAM_KEY"); + +-- foreign +ALTER TABLE "APP"."IDXS" ADD CONSTRAINT "IDXS_FK1" FOREIGN KEY ("ORIG_TBL_ID") REFERENCES "APP"."TBLS" ("TBL_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."IDXS" ADD CONSTRAINT "IDXS_FK2" FOREIGN KEY ("SD_ID") REFERENCES "APP"."SDS" ("SD_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."IDXS" ADD CONSTRAINT "IDXS_FK3" FOREIGN KEY ("INDEX_TBL_ID") REFERENCES "APP"."TBLS" ("TBL_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."TBL_COL_PRIVS" ADD CONSTRAINT "TBL_COL_PRIVS_FK1" FOREIGN KEY ("TBL_ID") REFERENCES "APP"."TBLS" ("TBL_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."DB_PRIVS" ADD CONSTRAINT "DB_PRIVS_FK1" FOREIGN KEY ("DB_ID") REFERENCES "APP"."DBS" ("DB_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."INDEX_PARAMS" ADD CONSTRAINT "INDEX_PARAMS_FK1" FOREIGN KEY ("INDEX_ID") REFERENCES "APP"."IDXS" ("INDEX_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."PARTITION_KEYS" ADD CONSTRAINT "PARTITION_KEYS_FK1" FOREIGN KEY ("TBL_ID") REFERENCES "APP"."TBLS" ("TBL_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."PART_PRIVS" ADD CONSTRAINT "PART_PRIVS_FK1" FOREIGN KEY ("PART_ID") REFERENCES "APP"."PARTITIONS" ("PART_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."SDS" ADD CONSTRAINT "SDS_FK1" FOREIGN KEY ("SERDE_ID") REFERENCES "APP"."SERDES" ("SERDE_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."SDS" ADD CONSTRAINT "SDS_FK2" FOREIGN KEY ("CD_ID") REFERENCES "APP"."CDS" ("CD_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."COLUMNS" ADD CONSTRAINT "COLUMNS_FK1" FOREIGN KEY ("SD_ID") REFERENCES "APP"."SDS" ("SD_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."TYPE_FIELDS" ADD CONSTRAINT "TYPE_FIELDS_FK1" FOREIGN KEY ("TYPE_NAME") REFERENCES "APP"."TYPES" ("TYPES_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."TBL_PRIVS" ADD CONSTRAINT "TBL_PRIVS_FK1" FOREIGN KEY ("TBL_ID") REFERENCES "APP"."TBLS" ("TBL_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."SERDE_PARAMS" ADD CONSTRAINT "SERDE_PARAMS_FK1" FOREIGN KEY ("SERDE_ID") REFERENCES "APP"."SERDES" ("SERDE_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."TBLS" ADD CONSTRAINT "TBLS_FK3" FOREIGN KEY ("LINK_TARGET_ID") REFERENCES "APP"."TBLS" ("TBL_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."TBLS" ADD CONSTRAINT "TBLS_FK2" FOREIGN KEY ("SD_ID") REFERENCES "APP"."SDS" ("SD_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."TBLS" ADD CONSTRAINT "TBLS_FK1" FOREIGN KEY ("DB_ID") REFERENCES "APP"."DBS" ("DB_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."SD_PARAMS" ADD CONSTRAINT "SD_PARAMS_FK1" FOREIGN KEY ("SD_ID") REFERENCES "APP"."SDS" ("SD_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."DATABASE_PARAMS" ADD CONSTRAINT "DATABASE_PARAMS_FK1" FOREIGN KEY ("DB_ID") REFERENCES "APP"."DBS" ("DB_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."ROLE_MAP" ADD CONSTRAINT "ROLE_MAP_FK1" FOREIGN KEY ("ROLE_ID") REFERENCES "APP"."ROLES" ("ROLE_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."BUCKETING_COLS" ADD CONSTRAINT "BUCKETING_COLS_FK1" FOREIGN KEY ("SD_ID") REFERENCES "APP"."SDS" ("SD_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."SORT_COLS" ADD CONSTRAINT "SORT_COLS_FK1" FOREIGN KEY ("SD_ID") REFERENCES "APP"."SDS" ("SD_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."PARTITION_KEY_VALS" ADD CONSTRAINT "PARTITION_KEY_VALS_FK1" FOREIGN KEY ("PART_ID") REFERENCES "APP"."PARTITIONS" ("PART_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."COLUMNS_V2" ADD CONSTRAINT "COLUMNS_V2_FK1" FOREIGN KEY ("CD_ID") REFERENCES "APP"."CDS" ("CD_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."PART_COL_PRIVS" ADD CONSTRAINT "PART_COL_PRIVS_FK1" FOREIGN KEY ("PART_ID") REFERENCES "APP"."PARTITIONS" ("PART_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."PARTITION_PARAMS" ADD CONSTRAINT "PARTITION_PARAMS_FK1" FOREIGN KEY ("PART_ID") REFERENCES "APP"."PARTITIONS" ("PART_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."PARTITIONS" ADD CONSTRAINT "PARTITIONS_FK1" FOREIGN KEY ("TBL_ID") REFERENCES "APP"."TBLS" ("TBL_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."PARTITIONS" ADD CONSTRAINT "PARTITIONS_FK2" FOREIGN KEY ("SD_ID") REFERENCES "APP"."SDS" ("SD_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +ALTER TABLE "APP"."TABLE_PARAMS" ADD CONSTRAINT "TABLE_PARAMS_FK1" FOREIGN KEY ("TBL_ID") REFERENCES "APP"."TBLS" ("TBL_ID") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------------------------- +-- DDL Statements for checks +-- ---------------------------------------------- + +ALTER TABLE "APP"."IDXS" ADD CONSTRAINT "SQL110318025504980" CHECK (DEFERRED_REBUILD IN ('Y','N')); + +ALTER TABLE "APP"."SDS" ADD CONSTRAINT "SQL110318025505550" CHECK (IS_COMPRESSED IN ('Y','N')); + Index: metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java =================================================================== --- metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java (revision 25657) +++ metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java (working copy) @@ -49,6 +49,7 @@ import org.apache.hadoop.hive.metastore.api.SerDeInfo; import org.apache.hadoop.hive.metastore.api.StorageDescriptor; import org.apache.hadoop.hive.metastore.api.Table; +import org.apache.hadoop.hive.metastore.api.TableIdentifier; import org.apache.hadoop.hive.metastore.api.Type; import org.apache.hadoop.hive.metastore.api.UnknownDBException; import org.apache.hadoop.hive.ql.exec.Utilities; @@ -1072,6 +1073,22 @@ tbl = client.getTable(dbName, tblName); } + // Check that we can't create a Managed Table that has its link target set. + Table tabLink = client.getTable(dbName, tblName); + assertNotNull(tabLink); + tabLink.setTableName(tblName2); + tabLink.setTableType(TableType.MANAGED_TABLE.toString()); + tabLink.setLinkTarget(new TableIdentifier(dbName, tblName)); + boolean failed = false; + try { + client.createTable(tabLink); + } catch (InvalidObjectException ex) { + failed = true; + } + if (!failed) { + assertTrue("Able to create a Managed Table that has its link target set", false); + } + Table tbl2 = client.getTable(dbName, tblName); assertNotNull(tbl2); assertEquals(tbl2.getDbName(), dbName); @@ -1289,6 +1306,19 @@ false); } + // another invalid alter table that tries to persist a Table Link that has no link target set. + Table tblLink = client.getTable(dbName, tblName); + tblLink.setTableType(TableType.DYNAMIC_TABLE_LINK.toString()); + failed = false; + try { + client.alter_table(dbName, tblName, tblLink); + } catch (InvalidOperationException ex) { + failed = true; + } + if (!failed) { + assertTrue("Able to write a Table Link without setting its link target", false); + } + //try an invalid alter table with partition key name Table tbl_pk = client.getTable(tbl.getDbName(), tbl.getTableName()); List partitionKeys = tbl_pk.getPartitionKeys(); Index: metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java =================================================================== --- metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java (revision 25657) +++ metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java (working copy) @@ -75,6 +75,7 @@ import org.apache.hadoop.hive.metastore.api.SerDeInfo; import org.apache.hadoop.hive.metastore.api.StorageDescriptor; import org.apache.hadoop.hive.metastore.api.Table; +import org.apache.hadoop.hive.metastore.api.TableIdentifier; import org.apache.hadoop.hive.metastore.api.Type; import org.apache.hadoop.hive.metastore.api.UnknownDBException; import org.apache.hadoop.hive.metastore.api.UnknownPartitionException; @@ -850,6 +851,16 @@ return tables; } + /** + * @param mtbl the MTable + * @return the TableIdentifier for the passed MTable. + */ + private TableIdentifier extractTableIdentifier(MTable mtbl) { + return new TableIdentifier( + mtbl.getDatabase().getName(), + mtbl.getTableName()); + } + private Table convertToTable(MTable mtbl) throws MetaException { if (mtbl == null) { return null; @@ -865,12 +876,26 @@ tableType = TableType.MANAGED_TABLE.toString(); } } - return new Table(mtbl.getTableName(), mtbl.getDatabase().getName(), mtbl + + TableIdentifier linkTarget = (mtbl.getLinkTarget() == null) ? null : + extractTableIdentifier(mtbl.getLinkTarget()); + List linkTables = new ArrayList(); + Set linkMTables = mtbl.getLinkTables(); + if (linkMTables != null) { + for (MTable linkMTable : linkMTables) { + linkTables.add(extractTableIdentifier(linkMTable)); + } + } + + Table tbl = new Table(mtbl.getTableName(), mtbl.getDatabase().getName(), mtbl .getOwner(), mtbl.getCreateTime(), mtbl.getLastAccessTime(), mtbl .getRetention(), convertToStorageDescriptor(mtbl.getSd()), convertToFieldSchemas(mtbl.getPartitionKeys()), mtbl.getParameters(), mtbl.getViewOriginalText(), mtbl.getViewExpandedText(), tableType); + tbl.setLinkTarget(linkTarget); + tbl.setLinkTables(linkTables); + return tbl; } private MTable convertToMTable(Table tbl) throws InvalidObjectException, @@ -902,13 +927,26 @@ } } + MTable linkTarget = null; + if (tbl.getLinkTarget() != null) { + linkTarget = getMTable(tbl.getLinkTarget().getDbName(), + tbl.getLinkTarget().getTableName()); + } + Set linkTables = new HashSet(); + List linkTIs = tbl.getLinkTables(); + if (linkTIs != null) { + for (TableIdentifier linkTI : linkTIs) { + linkTables.add(getMTable(linkTI.getDbName(), + linkTI.getTableName())); + } + } // A new table is always created with a new column descriptor return new MTable(tbl.getTableName().toLowerCase(), mdb, convertToMStorageDescriptor(tbl.getSd()), tbl.getOwner(), tbl .getCreateTime(), tbl.getLastAccessTime(), tbl.getRetention(), convertToMFieldSchemas(tbl.getPartitionKeys()), tbl.getParameters(), tbl.getViewOriginalText(), tbl.getViewExpandedText(), - tableType); + tableType, linkTarget, linkTables); } private List convertToMFieldSchemas(List keys) { Index: metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java =================================================================== --- metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java (revision 25657) +++ metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java (working copy) @@ -41,6 +41,7 @@ import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.metastore.api.Constants; import org.apache.hadoop.hive.metastore.api.FieldSchema; +import org.apache.hadoop.hive.metastore.api.InvalidObjectException; import org.apache.hadoop.hive.metastore.api.MetaException; import org.apache.hadoop.hive.metastore.api.SerDeInfo; import org.apache.hadoop.hive.metastore.api.StorageDescriptor; @@ -293,6 +294,29 @@ } /** + * Validates the name of the passed Table. A valid name is "[a-zA-z_0-9]+" except for Table Links + * for which the name is "X@Y" where X and Y conform to the usual standard. + * @param tbl + * @return true or false depending on conformance + */ + static public boolean validateTableName(Table tbl) { + String name = tbl.getTableName(); + if (tbl.isSetTableType() && + (tbl.getTableType().equals(TableType.DYNAMIC_TABLE_LINK.toString()) || + tbl.getTableType().equals(TableType.STATIC_TABLE_LINK.toString()))) { + String[] tokens = name.split("@"); + if ((tokens.length != 2) || !validateName(tokens[0]) + || !validateName(tokens[1])) { + return false; + } else { + return true; + } + } else { + return validateName(name); + } + } + + /** * validateName * * Checks the name conforms to our standars which are: "[a-zA-z_0-9]+". checks @@ -322,6 +346,46 @@ return true; } + /** + * Does additional Table validation that supplements the name validation. + * @param tbl + * @throws InvalidObjectException if the passed Table is found to be invalid. + */ + static public void validateTable(Table tbl) throws InvalidObjectException { + if (!tbl.isSetTableType()) { + return; + } + switch (TableType.fromString(tbl.getTableType())) { + case STATIC_TABLE_LINK: + case DYNAMIC_TABLE_LINK: + if (!tbl.isSetLinkTarget()) { + throw new InvalidObjectException("Table link " + tbl.getTableName() + " does not have " + + "its link target set"); + } + if (tbl.getLinkTablesSize() > 0) { + throw new InvalidObjectException("Table link " + tbl.getTableName() + " itself has links" + + " pointing to it. That is not allowed"); + } + break; + case MANAGED_TABLE: + case EXTERNAL_TABLE: + case INDEX_TABLE: + if (tbl.isSetViewExpandedText() || tbl.isSetViewOriginalText()) { + throw new InvalidObjectException("Table " + tbl.getTableName() + " is not a View but has" + + " original or expanded view text set for it."); + } + case VIRTUAL_VIEW: + if (tbl.isSetLinkTarget()) { + throw new InvalidObjectException(tbl.getTableName() + " is not a Table Link but has its" + + " link target set."); + } + break; + default: + throw new InvalidObjectException("Table "+ tbl.getTableName() + " has an unknown" + + " table type."); + } + } + public static String getListType(String t) { return "array<" + t + ">"; } Index: metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java =================================================================== --- metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java (revision 25657) +++ metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java (working copy) @@ -784,13 +784,14 @@ throws AlreadyExistsException, MetaException, InvalidObjectException, NoSuchObjectException { - if (!MetaStoreUtils.validateName(tbl.getTableName()) + if (!MetaStoreUtils.validateTableName(tbl) || !MetaStoreUtils.validateColNames(tbl.getSd().getCols()) || (tbl.getPartitionKeys() != null && !MetaStoreUtils .validateColNames(tbl.getPartitionKeys()))) { throw new InvalidObjectException(tbl.getTableName() + " is not a valid object name"); } + MetaStoreUtils.validateTable(tbl); Path tblPath = null; boolean success = false, madeDir = false; Index: metastore/src/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java =================================================================== --- metastore/src/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java (revision 25657) +++ metastore/src/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java (working copy) @@ -62,7 +62,7 @@ throw new InvalidOperationException("New table is invalid: " + newt); } - if (!MetaStoreUtils.validateName(newt.getTableName()) + if (!MetaStoreUtils.validateTableName(newt) || !MetaStoreUtils.validateColNames(newt.getSd().getCols())) { throw new InvalidOperationException(newt.getTableName() + " is not a valid object name"); @@ -178,6 +178,9 @@ } } } + // Do additional validity checks on the altered table that will be written. + MetaStoreUtils.validateTable(newt); + // now finally call alter table msdb.alterTable(dbname, name, newt); // commit the changes Index: metastore/src/java/org/apache/hadoop/hive/metastore/TableType.java =================================================================== --- metastore/src/java/org/apache/hadoop/hive/metastore/TableType.java (revision 25657) +++ metastore/src/java/org/apache/hadoop/hive/metastore/TableType.java (working copy) @@ -22,5 +22,19 @@ * Typesafe enum for types of tables described by the metastore. */ public enum TableType { - MANAGED_TABLE, EXTERNAL_TABLE, VIRTUAL_VIEW, INDEX_TABLE + MANAGED_TABLE, + EXTERNAL_TABLE, + VIRTUAL_VIEW, + INDEX_TABLE, + DYNAMIC_TABLE_LINK, + STATIC_TABLE_LINK; + + public static TableType fromString(String tabTypeStr) { + for (TableType tableType : values()) { + if (tableType.toString().equalsIgnoreCase(tabTypeStr)) { + return tableType; + } + } + return null; + } } Index: metastore/src/model/package.jdo =================================================================== --- metastore/src/model/package.jdo (revision 25657) +++ metastore/src/model/package.jdo (working copy) @@ -7,15 +7,15 @@ to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ---> +--> - - - + + + - + @@ -67,15 +67,15 @@ - - - + + + - + - + @@ -173,6 +173,10 @@ + + + + @@ -336,13 +340,13 @@ - + - + @@ -403,7 +407,7 @@ - + @@ -442,7 +446,7 @@ - + @@ -450,7 +454,7 @@ - + @@ -479,7 +483,7 @@ - + @@ -520,7 +524,7 @@ - + @@ -561,7 +565,7 @@ - + @@ -602,7 +606,7 @@ - + @@ -647,7 +651,7 @@ - + @@ -691,17 +695,17 @@ - - + + - + - - + + Index: metastore/src/model/org/apache/hadoop/hive/metastore/model/MTable.java =================================================================== --- metastore/src/model/org/apache/hadoop/hive/metastore/model/MTable.java (revision 25657) +++ metastore/src/model/org/apache/hadoop/hive/metastore/model/MTable.java (working copy) @@ -20,6 +20,8 @@ import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.HashSet; public class MTable { @@ -35,6 +37,8 @@ private String viewOriginalText; private String viewExpandedText; private String tableType; + private MTable linkTarget; + private Set linkTables; public MTable() {} @@ -51,11 +55,14 @@ * @param viewOriginalText * @param viewExpandedText * @param tableType + * @param linkTarget + * @param linkTables */ public MTable(String tableName, MDatabase database, MStorageDescriptor sd, String owner, int createTime, int lastAccessTime, int retention, List partitionKeys, Map parameters, - String viewOriginalText, String viewExpandedText, String tableType) { + String viewOriginalText, String viewExpandedText, String tableType, + MTable linkTarget, Set linkTables) { this.tableName = tableName; this.database = database; this.sd = sd; @@ -68,6 +75,8 @@ this.viewOriginalText = viewOriginalText; this.viewExpandedText = viewExpandedText; this.tableType = tableType; + this.linkTarget = linkTarget; + this.linkTables = linkTables; } /** @@ -237,4 +246,32 @@ public String getTableType() { return tableType; } + + /** + * @param linkTarget the table to which this link table points. + */ + public void setLinkTarget(MTable linkTarget) { + this.linkTarget = linkTarget; + } + + /** + * @return the ID of the table to which this link table points. + */ + public MTable getLinkTarget() { + return linkTarget; + } + + /** + * @param linkTables the set of all Link Tables pointing to this table. + */ + public void setLinkTables(Set linkTables) { + this.linkTables = linkTables; + } + + /** + * @return the set of all Link Tables pointing to this table. + */ + public Set getLinkTables() { + return new HashSet(linkTables); + } } Index: metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py =================================================================== --- metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py (revision 25657) +++ metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py (working copy) @@ -1435,6 +1435,78 @@ def __ne__(self, other): return not (self == other) +class TableIdentifier: + """ + Attributes: + - dbName + - tableName + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'dbName', None, None, ), # 1 + (2, TType.STRING, 'tableName', None, None, ), # 2 + ) + + def __init__(self, dbName=None, tableName=None,): + self.dbName = dbName + self.tableName = tableName + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + self.dbName = iprot.readString(); + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRING: + self.tableName = iprot.readString(); + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return + oprot.writeStructBegin('TableIdentifier') + if self.dbName is not None: + oprot.writeFieldBegin('dbName', TType.STRING, 1) + oprot.writeString(self.dbName) + oprot.writeFieldEnd() + if self.tableName is not None: + oprot.writeFieldBegin('tableName', TType.STRING, 2) + oprot.writeString(self.tableName) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + class Table: """ Attributes: @@ -1451,6 +1523,8 @@ - viewExpandedText - tableType - privileges + - linkTarget + - linkTables """ thrift_spec = ( @@ -1468,9 +1542,11 @@ (11, TType.STRING, 'viewExpandedText', None, None, ), # 11 (12, TType.STRING, 'tableType', None, None, ), # 12 (13, TType.STRUCT, 'privileges', (PrincipalPrivilegeSet, PrincipalPrivilegeSet.thrift_spec), None, ), # 13 + (14, TType.STRUCT, 'linkTarget', (TableIdentifier, TableIdentifier.thrift_spec), None, ), # 14 + (15, TType.LIST, 'linkTables', (TType.STRUCT,(TableIdentifier, TableIdentifier.thrift_spec)), None, ), # 15 ) - def __init__(self, tableName=None, dbName=None, owner=None, createTime=None, lastAccessTime=None, retention=None, sd=None, partitionKeys=None, parameters=None, viewOriginalText=None, viewExpandedText=None, tableType=None, privileges=None,): + def __init__(self, tableName=None, dbName=None, owner=None, createTime=None, lastAccessTime=None, retention=None, sd=None, partitionKeys=None, parameters=None, viewOriginalText=None, viewExpandedText=None, tableType=None, privileges=None, linkTarget=None, linkTables=None,): self.tableName = tableName self.dbName = dbName self.owner = owner @@ -1484,6 +1560,8 @@ self.viewExpandedText = viewExpandedText self.tableType = tableType self.privileges = privileges + self.linkTarget = linkTarget + self.linkTables = linkTables def read(self, iprot): if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: @@ -1573,6 +1651,23 @@ self.privileges.read(iprot) else: iprot.skip(ftype) + elif fid == 14: + if ftype == TType.STRUCT: + self.linkTarget = TableIdentifier() + self.linkTarget.read(iprot) + else: + iprot.skip(ftype) + elif fid == 15: + if ftype == TType.LIST: + self.linkTables = [] + (_etype133, _size130) = iprot.readListBegin() + for _i134 in xrange(_size130): + _elem135 = TableIdentifier() + _elem135.read(iprot) + self.linkTables.append(_elem135) + iprot.readListEnd() + else: + iprot.skip(ftype) else: iprot.skip(ftype) iprot.readFieldEnd() @@ -1614,16 +1709,16 @@ if self.partitionKeys is not None: oprot.writeFieldBegin('partitionKeys', TType.LIST, 8) oprot.writeListBegin(TType.STRUCT, len(self.partitionKeys)) - for iter130 in self.partitionKeys: - iter130.write(oprot) + for iter136 in self.partitionKeys: + iter136.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.parameters is not None: oprot.writeFieldBegin('parameters', TType.MAP, 9) oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.parameters)) - for kiter131,viter132 in self.parameters.items(): - oprot.writeString(kiter131) - oprot.writeString(viter132) + for kiter137,viter138 in self.parameters.items(): + oprot.writeString(kiter137) + oprot.writeString(viter138) oprot.writeMapEnd() oprot.writeFieldEnd() if self.viewOriginalText is not None: @@ -1642,6 +1737,17 @@ oprot.writeFieldBegin('privileges', TType.STRUCT, 13) self.privileges.write(oprot) oprot.writeFieldEnd() + if self.linkTarget is not None: + oprot.writeFieldBegin('linkTarget', TType.STRUCT, 14) + self.linkTarget.write(oprot) + oprot.writeFieldEnd() + if self.linkTables is not None: + oprot.writeFieldBegin('linkTables', TType.LIST, 15) + oprot.writeListBegin(TType.STRUCT, len(self.linkTables)) + for iter139 in self.linkTables: + iter139.write(oprot) + oprot.writeListEnd() + oprot.writeFieldEnd() oprot.writeFieldStop() oprot.writeStructEnd() @@ -1707,10 +1813,10 @@ if fid == 1: if ftype == TType.LIST: self.values = [] - (_etype136, _size133) = iprot.readListBegin() - for _i137 in xrange(_size133): - _elem138 = iprot.readString(); - self.values.append(_elem138) + (_etype143, _size140) = iprot.readListBegin() + for _i144 in xrange(_size140): + _elem145 = iprot.readString(); + self.values.append(_elem145) iprot.readListEnd() else: iprot.skip(ftype) @@ -1743,11 +1849,11 @@ elif fid == 7: if ftype == TType.MAP: self.parameters = {} - (_ktype140, _vtype141, _size139 ) = iprot.readMapBegin() - for _i143 in xrange(_size139): - _key144 = iprot.readString(); - _val145 = iprot.readString(); - self.parameters[_key144] = _val145 + (_ktype147, _vtype148, _size146 ) = iprot.readMapBegin() + for _i150 in xrange(_size146): + _key151 = iprot.readString(); + _val152 = iprot.readString(); + self.parameters[_key151] = _val152 iprot.readMapEnd() else: iprot.skip(ftype) @@ -1770,8 +1876,8 @@ if self.values is not None: oprot.writeFieldBegin('values', TType.LIST, 1) oprot.writeListBegin(TType.STRING, len(self.values)) - for iter146 in self.values: - oprot.writeString(iter146) + for iter153 in self.values: + oprot.writeString(iter153) oprot.writeListEnd() oprot.writeFieldEnd() if self.dbName is not None: @@ -1797,9 +1903,9 @@ if self.parameters is not None: oprot.writeFieldBegin('parameters', TType.MAP, 7) oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.parameters)) - for kiter147,viter148 in self.parameters.items(): - oprot.writeString(kiter147) - oprot.writeString(viter148) + for kiter154,viter155 in self.parameters.items(): + oprot.writeString(kiter154) + oprot.writeString(viter155) oprot.writeMapEnd() oprot.writeFieldEnd() if self.privileges is not None: @@ -1918,11 +2024,11 @@ elif fid == 9: if ftype == TType.MAP: self.parameters = {} - (_ktype150, _vtype151, _size149 ) = iprot.readMapBegin() - for _i153 in xrange(_size149): - _key154 = iprot.readString(); - _val155 = iprot.readString(); - self.parameters[_key154] = _val155 + (_ktype157, _vtype158, _size156 ) = iprot.readMapBegin() + for _i160 in xrange(_size156): + _key161 = iprot.readString(); + _val162 = iprot.readString(); + self.parameters[_key161] = _val162 iprot.readMapEnd() else: iprot.skip(ftype) @@ -1976,9 +2082,9 @@ if self.parameters is not None: oprot.writeFieldBegin('parameters', TType.MAP, 9) oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.parameters)) - for kiter156,viter157 in self.parameters.items(): - oprot.writeString(kiter156) - oprot.writeString(viter157) + for kiter163,viter164 in self.parameters.items(): + oprot.writeString(kiter163) + oprot.writeString(viter164) oprot.writeMapEnd() oprot.writeFieldEnd() if self.deferredRebuild is not None: @@ -2032,22 +2138,22 @@ if fid == 1: if ftype == TType.LIST: self.fieldSchemas = [] - (_etype161, _size158) = iprot.readListBegin() - for _i162 in xrange(_size158): - _elem163 = FieldSchema() - _elem163.read(iprot) - self.fieldSchemas.append(_elem163) + (_etype168, _size165) = iprot.readListBegin() + for _i169 in xrange(_size165): + _elem170 = FieldSchema() + _elem170.read(iprot) + self.fieldSchemas.append(_elem170) iprot.readListEnd() else: iprot.skip(ftype) elif fid == 2: if ftype == TType.MAP: self.properties = {} - (_ktype165, _vtype166, _size164 ) = iprot.readMapBegin() - for _i168 in xrange(_size164): - _key169 = iprot.readString(); - _val170 = iprot.readString(); - self.properties[_key169] = _val170 + (_ktype172, _vtype173, _size171 ) = iprot.readMapBegin() + for _i175 in xrange(_size171): + _key176 = iprot.readString(); + _val177 = iprot.readString(); + self.properties[_key176] = _val177 iprot.readMapEnd() else: iprot.skip(ftype) @@ -2064,16 +2170,16 @@ if self.fieldSchemas is not None: oprot.writeFieldBegin('fieldSchemas', TType.LIST, 1) oprot.writeListBegin(TType.STRUCT, len(self.fieldSchemas)) - for iter171 in self.fieldSchemas: - iter171.write(oprot) + for iter178 in self.fieldSchemas: + iter178.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.properties is not None: oprot.writeFieldBegin('properties', TType.MAP, 2) oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.properties)) - for kiter172,viter173 in self.properties.items(): - oprot.writeString(kiter172) - oprot.writeString(viter173) + for kiter179,viter180 in self.properties.items(): + oprot.writeString(kiter179) + oprot.writeString(viter180) oprot.writeMapEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -2120,11 +2226,11 @@ if fid == 1: if ftype == TType.MAP: self.properties = {} - (_ktype175, _vtype176, _size174 ) = iprot.readMapBegin() - for _i178 in xrange(_size174): - _key179 = iprot.readString(); - _val180 = iprot.readString(); - self.properties[_key179] = _val180 + (_ktype182, _vtype183, _size181 ) = iprot.readMapBegin() + for _i185 in xrange(_size181): + _key186 = iprot.readString(); + _val187 = iprot.readString(); + self.properties[_key186] = _val187 iprot.readMapEnd() else: iprot.skip(ftype) @@ -2141,9 +2247,9 @@ if self.properties is not None: oprot.writeFieldBegin('properties', TType.MAP, 1) oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.properties)) - for kiter181,viter182 in self.properties.items(): - oprot.writeString(kiter181) - oprot.writeString(viter182) + for kiter188,viter189 in self.properties.items(): + oprot.writeString(kiter188) + oprot.writeString(viter189) oprot.writeMapEnd() oprot.writeFieldEnd() oprot.writeFieldStop() Index: metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py =================================================================== --- metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py (revision 25657) +++ metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py (working copy) @@ -4815,10 +4815,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype186, _size183) = iprot.readListBegin() - for _i187 in xrange(_size183): - _elem188 = iprot.readString(); - self.success.append(_elem188) + (_etype193, _size190) = iprot.readListBegin() + for _i194 in xrange(_size190): + _elem195 = iprot.readString(); + self.success.append(_elem195) iprot.readListEnd() else: iprot.skip(ftype) @@ -4841,8 +4841,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter189 in self.success: - oprot.writeString(iter189) + for iter196 in self.success: + oprot.writeString(iter196) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -4937,10 +4937,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype193, _size190) = iprot.readListBegin() - for _i194 in xrange(_size190): - _elem195 = iprot.readString(); - self.success.append(_elem195) + (_etype200, _size197) = iprot.readListBegin() + for _i201 in xrange(_size197): + _elem202 = iprot.readString(); + self.success.append(_elem202) iprot.readListEnd() else: iprot.skip(ftype) @@ -4963,8 +4963,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter196 in self.success: - oprot.writeString(iter196) + for iter203 in self.success: + oprot.writeString(iter203) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -5674,12 +5674,12 @@ if fid == 0: if ftype == TType.MAP: self.success = {} - (_ktype198, _vtype199, _size197 ) = iprot.readMapBegin() - for _i201 in xrange(_size197): - _key202 = iprot.readString(); - _val203 = Type() - _val203.read(iprot) - self.success[_key202] = _val203 + (_ktype205, _vtype206, _size204 ) = iprot.readMapBegin() + for _i208 in xrange(_size204): + _key209 = iprot.readString(); + _val210 = Type() + _val210.read(iprot) + self.success[_key209] = _val210 iprot.readMapEnd() else: iprot.skip(ftype) @@ -5702,9 +5702,9 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.MAP, 0) oprot.writeMapBegin(TType.STRING, TType.STRUCT, len(self.success)) - for kiter204,viter205 in self.success.items(): - oprot.writeString(kiter204) - viter205.write(oprot) + for kiter211,viter212 in self.success.items(): + oprot.writeString(kiter211) + viter212.write(oprot) oprot.writeMapEnd() oprot.writeFieldEnd() if self.o2 is not None: @@ -5835,11 +5835,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype209, _size206) = iprot.readListBegin() - for _i210 in xrange(_size206): - _elem211 = FieldSchema() - _elem211.read(iprot) - self.success.append(_elem211) + (_etype216, _size213) = iprot.readListBegin() + for _i217 in xrange(_size213): + _elem218 = FieldSchema() + _elem218.read(iprot) + self.success.append(_elem218) iprot.readListEnd() else: iprot.skip(ftype) @@ -5874,8 +5874,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter212 in self.success: - iter212.write(oprot) + for iter219 in self.success: + iter219.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -6014,11 +6014,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype216, _size213) = iprot.readListBegin() - for _i217 in xrange(_size213): - _elem218 = FieldSchema() - _elem218.read(iprot) - self.success.append(_elem218) + (_etype223, _size220) = iprot.readListBegin() + for _i224 in xrange(_size220): + _elem225 = FieldSchema() + _elem225.read(iprot) + self.success.append(_elem225) iprot.readListEnd() else: iprot.skip(ftype) @@ -6053,8 +6053,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter219 in self.success: - iter219.write(oprot) + for iter226 in self.success: + iter226.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -6680,10 +6680,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype223, _size220) = iprot.readListBegin() - for _i224 in xrange(_size220): - _elem225 = iprot.readString(); - self.success.append(_elem225) + (_etype230, _size227) = iprot.readListBegin() + for _i231 in xrange(_size227): + _elem232 = iprot.readString(); + self.success.append(_elem232) iprot.readListEnd() else: iprot.skip(ftype) @@ -6706,8 +6706,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter226 in self.success: - oprot.writeString(iter226) + for iter233 in self.success: + oprot.writeString(iter233) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -6820,10 +6820,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype230, _size227) = iprot.readListBegin() - for _i231 in xrange(_size227): - _elem232 = iprot.readString(); - self.success.append(_elem232) + (_etype237, _size234) = iprot.readListBegin() + for _i238 in xrange(_size234): + _elem239 = iprot.readString(); + self.success.append(_elem239) iprot.readListEnd() else: iprot.skip(ftype) @@ -6846,8 +6846,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter233 in self.success: - oprot.writeString(iter233) + for iter240 in self.success: + oprot.writeString(iter240) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -7064,10 +7064,10 @@ elif fid == 2: if ftype == TType.LIST: self.tbl_names = [] - (_etype237, _size234) = iprot.readListBegin() - for _i238 in xrange(_size234): - _elem239 = iprot.readString(); - self.tbl_names.append(_elem239) + (_etype244, _size241) = iprot.readListBegin() + for _i245 in xrange(_size241): + _elem246 = iprot.readString(); + self.tbl_names.append(_elem246) iprot.readListEnd() else: iprot.skip(ftype) @@ -7088,8 +7088,8 @@ if self.tbl_names is not None: oprot.writeFieldBegin('tbl_names', TType.LIST, 2) oprot.writeListBegin(TType.STRING, len(self.tbl_names)) - for iter240 in self.tbl_names: - oprot.writeString(iter240) + for iter247 in self.tbl_names: + oprot.writeString(iter247) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -7144,11 +7144,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype244, _size241) = iprot.readListBegin() - for _i245 in xrange(_size241): - _elem246 = Table() - _elem246.read(iprot) - self.success.append(_elem246) + (_etype251, _size248) = iprot.readListBegin() + for _i252 in xrange(_size248): + _elem253 = Table() + _elem253.read(iprot) + self.success.append(_elem253) iprot.readListEnd() else: iprot.skip(ftype) @@ -7183,8 +7183,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter247 in self.success: - iter247.write(oprot) + for iter254 in self.success: + iter254.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -7335,10 +7335,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype251, _size248) = iprot.readListBegin() - for _i252 in xrange(_size248): - _elem253 = iprot.readString(); - self.success.append(_elem253) + (_etype258, _size255) = iprot.readListBegin() + for _i259 in xrange(_size255): + _elem260 = iprot.readString(); + self.success.append(_elem260) iprot.readListEnd() else: iprot.skip(ftype) @@ -7373,8 +7373,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter254 in self.success: - oprot.writeString(iter254) + for iter261 in self.success: + oprot.writeString(iter261) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -8097,11 +8097,11 @@ if fid == 1: if ftype == TType.LIST: self.new_parts = [] - (_etype258, _size255) = iprot.readListBegin() - for _i259 in xrange(_size255): - _elem260 = Partition() - _elem260.read(iprot) - self.new_parts.append(_elem260) + (_etype265, _size262) = iprot.readListBegin() + for _i266 in xrange(_size262): + _elem267 = Partition() + _elem267.read(iprot) + self.new_parts.append(_elem267) iprot.readListEnd() else: iprot.skip(ftype) @@ -8118,8 +8118,8 @@ if self.new_parts is not None: oprot.writeFieldBegin('new_parts', TType.LIST, 1) oprot.writeListBegin(TType.STRUCT, len(self.new_parts)) - for iter261 in self.new_parts: - iter261.write(oprot) + for iter268 in self.new_parts: + iter268.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -8280,10 +8280,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype265, _size262) = iprot.readListBegin() - for _i266 in xrange(_size262): - _elem267 = iprot.readString(); - self.part_vals.append(_elem267) + (_etype272, _size269) = iprot.readListBegin() + for _i273 in xrange(_size269): + _elem274 = iprot.readString(); + self.part_vals.append(_elem274) iprot.readListEnd() else: iprot.skip(ftype) @@ -8308,8 +8308,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter268 in self.part_vals: - oprot.writeString(iter268) + for iter275 in self.part_vals: + oprot.writeString(iter275) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -8657,10 +8657,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype272, _size269) = iprot.readListBegin() - for _i273 in xrange(_size269): - _elem274 = iprot.readString(); - self.part_vals.append(_elem274) + (_etype279, _size276) = iprot.readListBegin() + for _i280 in xrange(_size276): + _elem281 = iprot.readString(); + self.part_vals.append(_elem281) iprot.readListEnd() else: iprot.skip(ftype) @@ -8690,8 +8690,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter275 in self.part_vals: - oprot.writeString(iter275) + for iter282 in self.part_vals: + oprot.writeString(iter282) oprot.writeListEnd() oprot.writeFieldEnd() if self.deleteData is not None: @@ -9024,10 +9024,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype279, _size276) = iprot.readListBegin() - for _i280 in xrange(_size276): - _elem281 = iprot.readString(); - self.part_vals.append(_elem281) + (_etype286, _size283) = iprot.readListBegin() + for _i287 in xrange(_size283): + _elem288 = iprot.readString(); + self.part_vals.append(_elem288) iprot.readListEnd() else: iprot.skip(ftype) @@ -9052,8 +9052,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter282 in self.part_vals: - oprot.writeString(iter282) + for iter289 in self.part_vals: + oprot.writeString(iter289) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -9208,10 +9208,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype286, _size283) = iprot.readListBegin() - for _i287 in xrange(_size283): - _elem288 = iprot.readString(); - self.part_vals.append(_elem288) + (_etype293, _size290) = iprot.readListBegin() + for _i294 in xrange(_size290): + _elem295 = iprot.readString(); + self.part_vals.append(_elem295) iprot.readListEnd() else: iprot.skip(ftype) @@ -9223,10 +9223,10 @@ elif fid == 5: if ftype == TType.LIST: self.group_names = [] - (_etype292, _size289) = iprot.readListBegin() - for _i293 in xrange(_size289): - _elem294 = iprot.readString(); - self.group_names.append(_elem294) + (_etype299, _size296) = iprot.readListBegin() + for _i300 in xrange(_size296): + _elem301 = iprot.readString(); + self.group_names.append(_elem301) iprot.readListEnd() else: iprot.skip(ftype) @@ -9251,8 +9251,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter295 in self.part_vals: - oprot.writeString(iter295) + for iter302 in self.part_vals: + oprot.writeString(iter302) oprot.writeListEnd() oprot.writeFieldEnd() if self.user_name is not None: @@ -9262,8 +9262,8 @@ if self.group_names is not None: oprot.writeFieldBegin('group_names', TType.LIST, 5) oprot.writeListBegin(TType.STRING, len(self.group_names)) - for iter296 in self.group_names: - oprot.writeString(iter296) + for iter303 in self.group_names: + oprot.writeString(iter303) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -9655,11 +9655,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype300, _size297) = iprot.readListBegin() - for _i301 in xrange(_size297): - _elem302 = Partition() - _elem302.read(iprot) - self.success.append(_elem302) + (_etype307, _size304) = iprot.readListBegin() + for _i308 in xrange(_size304): + _elem309 = Partition() + _elem309.read(iprot) + self.success.append(_elem309) iprot.readListEnd() else: iprot.skip(ftype) @@ -9688,8 +9688,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter303 in self.success: - iter303.write(oprot) + for iter310 in self.success: + iter310.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -9776,10 +9776,10 @@ elif fid == 5: if ftype == TType.LIST: self.group_names = [] - (_etype307, _size304) = iprot.readListBegin() - for _i308 in xrange(_size304): - _elem309 = iprot.readString(); - self.group_names.append(_elem309) + (_etype314, _size311) = iprot.readListBegin() + for _i315 in xrange(_size311): + _elem316 = iprot.readString(); + self.group_names.append(_elem316) iprot.readListEnd() else: iprot.skip(ftype) @@ -9812,8 +9812,8 @@ if self.group_names is not None: oprot.writeFieldBegin('group_names', TType.LIST, 5) oprot.writeListBegin(TType.STRING, len(self.group_names)) - for iter310 in self.group_names: - oprot.writeString(iter310) + for iter317 in self.group_names: + oprot.writeString(iter317) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -9865,11 +9865,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype314, _size311) = iprot.readListBegin() - for _i315 in xrange(_size311): - _elem316 = Partition() - _elem316.read(iprot) - self.success.append(_elem316) + (_etype321, _size318) = iprot.readListBegin() + for _i322 in xrange(_size318): + _elem323 = Partition() + _elem323.read(iprot) + self.success.append(_elem323) iprot.readListEnd() else: iprot.skip(ftype) @@ -9898,8 +9898,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter317 in self.success: - iter317.write(oprot) + for iter324 in self.success: + iter324.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -10040,10 +10040,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype321, _size318) = iprot.readListBegin() - for _i322 in xrange(_size318): - _elem323 = iprot.readString(); - self.success.append(_elem323) + (_etype328, _size325) = iprot.readListBegin() + for _i329 in xrange(_size325): + _elem330 = iprot.readString(); + self.success.append(_elem330) iprot.readListEnd() else: iprot.skip(ftype) @@ -10066,8 +10066,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter324 in self.success: - oprot.writeString(iter324) + for iter331 in self.success: + oprot.writeString(iter331) oprot.writeListEnd() oprot.writeFieldEnd() if self.o2 is not None: @@ -10137,10 +10137,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype328, _size325) = iprot.readListBegin() - for _i329 in xrange(_size325): - _elem330 = iprot.readString(); - self.part_vals.append(_elem330) + (_etype335, _size332) = iprot.readListBegin() + for _i336 in xrange(_size332): + _elem337 = iprot.readString(); + self.part_vals.append(_elem337) iprot.readListEnd() else: iprot.skip(ftype) @@ -10170,8 +10170,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter331 in self.part_vals: - oprot.writeString(iter331) + for iter338 in self.part_vals: + oprot.writeString(iter338) oprot.writeListEnd() oprot.writeFieldEnd() if self.max_parts is not None: @@ -10227,11 +10227,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype335, _size332) = iprot.readListBegin() - for _i336 in xrange(_size332): - _elem337 = Partition() - _elem337.read(iprot) - self.success.append(_elem337) + (_etype342, _size339) = iprot.readListBegin() + for _i343 in xrange(_size339): + _elem344 = Partition() + _elem344.read(iprot) + self.success.append(_elem344) iprot.readListEnd() else: iprot.skip(ftype) @@ -10260,8 +10260,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter338 in self.success: - iter338.write(oprot) + for iter345 in self.success: + iter345.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -10341,10 +10341,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype342, _size339) = iprot.readListBegin() - for _i343 in xrange(_size339): - _elem344 = iprot.readString(); - self.part_vals.append(_elem344) + (_etype349, _size346) = iprot.readListBegin() + for _i350 in xrange(_size346): + _elem351 = iprot.readString(); + self.part_vals.append(_elem351) iprot.readListEnd() else: iprot.skip(ftype) @@ -10361,10 +10361,10 @@ elif fid == 6: if ftype == TType.LIST: self.group_names = [] - (_etype348, _size345) = iprot.readListBegin() - for _i349 in xrange(_size345): - _elem350 = iprot.readString(); - self.group_names.append(_elem350) + (_etype355, _size352) = iprot.readListBegin() + for _i356 in xrange(_size352): + _elem357 = iprot.readString(); + self.group_names.append(_elem357) iprot.readListEnd() else: iprot.skip(ftype) @@ -10389,8 +10389,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter351 in self.part_vals: - oprot.writeString(iter351) + for iter358 in self.part_vals: + oprot.writeString(iter358) oprot.writeListEnd() oprot.writeFieldEnd() if self.max_parts is not None: @@ -10404,8 +10404,8 @@ if self.group_names is not None: oprot.writeFieldBegin('group_names', TType.LIST, 6) oprot.writeListBegin(TType.STRING, len(self.group_names)) - for iter352 in self.group_names: - oprot.writeString(iter352) + for iter359 in self.group_names: + oprot.writeString(iter359) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -10457,11 +10457,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype356, _size353) = iprot.readListBegin() - for _i357 in xrange(_size353): - _elem358 = Partition() - _elem358.read(iprot) - self.success.append(_elem358) + (_etype363, _size360) = iprot.readListBegin() + for _i364 in xrange(_size360): + _elem365 = Partition() + _elem365.read(iprot) + self.success.append(_elem365) iprot.readListEnd() else: iprot.skip(ftype) @@ -10490,8 +10490,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter359 in self.success: - iter359.write(oprot) + for iter366 in self.success: + iter366.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -10565,10 +10565,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype363, _size360) = iprot.readListBegin() - for _i364 in xrange(_size360): - _elem365 = iprot.readString(); - self.part_vals.append(_elem365) + (_etype370, _size367) = iprot.readListBegin() + for _i371 in xrange(_size367): + _elem372 = iprot.readString(); + self.part_vals.append(_elem372) iprot.readListEnd() else: iprot.skip(ftype) @@ -10598,8 +10598,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter366 in self.part_vals: - oprot.writeString(iter366) + for iter373 in self.part_vals: + oprot.writeString(iter373) oprot.writeListEnd() oprot.writeFieldEnd() if self.max_parts is not None: @@ -10655,10 +10655,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype370, _size367) = iprot.readListBegin() - for _i371 in xrange(_size367): - _elem372 = iprot.readString(); - self.success.append(_elem372) + (_etype377, _size374) = iprot.readListBegin() + for _i378 in xrange(_size374): + _elem379 = iprot.readString(); + self.success.append(_elem379) iprot.readListEnd() else: iprot.skip(ftype) @@ -10687,8 +10687,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter373 in self.success: - oprot.writeString(iter373) + for iter380 in self.success: + oprot.writeString(iter380) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -10844,11 +10844,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype377, _size374) = iprot.readListBegin() - for _i378 in xrange(_size374): - _elem379 = Partition() - _elem379.read(iprot) - self.success.append(_elem379) + (_etype384, _size381) = iprot.readListBegin() + for _i385 in xrange(_size381): + _elem386 = Partition() + _elem386.read(iprot) + self.success.append(_elem386) iprot.readListEnd() else: iprot.skip(ftype) @@ -10877,8 +10877,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter380 in self.success: - iter380.write(oprot) + for iter387 in self.success: + iter387.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -10949,10 +10949,10 @@ elif fid == 3: if ftype == TType.LIST: self.names = [] - (_etype384, _size381) = iprot.readListBegin() - for _i385 in xrange(_size381): - _elem386 = iprot.readString(); - self.names.append(_elem386) + (_etype391, _size388) = iprot.readListBegin() + for _i392 in xrange(_size388): + _elem393 = iprot.readString(); + self.names.append(_elem393) iprot.readListEnd() else: iprot.skip(ftype) @@ -10977,8 +10977,8 @@ if self.names is not None: oprot.writeFieldBegin('names', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.names)) - for iter387 in self.names: - oprot.writeString(iter387) + for iter394 in self.names: + oprot.writeString(iter394) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -11030,11 +11030,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype391, _size388) = iprot.readListBegin() - for _i392 in xrange(_size388): - _elem393 = Partition() - _elem393.read(iprot) - self.success.append(_elem393) + (_etype398, _size395) = iprot.readListBegin() + for _i399 in xrange(_size395): + _elem400 = Partition() + _elem400.read(iprot) + self.success.append(_elem400) iprot.readListEnd() else: iprot.skip(ftype) @@ -11063,8 +11063,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter394 in self.success: - iter394.write(oprot) + for iter401 in self.success: + iter401.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -11469,10 +11469,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype398, _size395) = iprot.readListBegin() - for _i399 in xrange(_size395): - _elem400 = iprot.readString(); - self.part_vals.append(_elem400) + (_etype405, _size402) = iprot.readListBegin() + for _i406 in xrange(_size402): + _elem407 = iprot.readString(); + self.part_vals.append(_elem407) iprot.readListEnd() else: iprot.skip(ftype) @@ -11503,8 +11503,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter401 in self.part_vals: - oprot.writeString(iter401) + for iter408 in self.part_vals: + oprot.writeString(iter408) oprot.writeListEnd() oprot.writeFieldEnd() if self.new_part is not None: @@ -11835,10 +11835,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype405, _size402) = iprot.readListBegin() - for _i406 in xrange(_size402): - _elem407 = iprot.readString(); - self.success.append(_elem407) + (_etype412, _size409) = iprot.readListBegin() + for _i413 in xrange(_size409): + _elem414 = iprot.readString(); + self.success.append(_elem414) iprot.readListEnd() else: iprot.skip(ftype) @@ -11861,8 +11861,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter408 in self.success: - oprot.writeString(iter408) + for iter415 in self.success: + oprot.writeString(iter415) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -11975,11 +11975,11 @@ if fid == 0: if ftype == TType.MAP: self.success = {} - (_ktype410, _vtype411, _size409 ) = iprot.readMapBegin() - for _i413 in xrange(_size409): - _key414 = iprot.readString(); - _val415 = iprot.readString(); - self.success[_key414] = _val415 + (_ktype417, _vtype418, _size416 ) = iprot.readMapBegin() + for _i420 in xrange(_size416): + _key421 = iprot.readString(); + _val422 = iprot.readString(); + self.success[_key421] = _val422 iprot.readMapEnd() else: iprot.skip(ftype) @@ -12002,9 +12002,9 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.MAP, 0) oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success)) - for kiter416,viter417 in self.success.items(): - oprot.writeString(kiter416) - oprot.writeString(viter417) + for kiter423,viter424 in self.success.items(): + oprot.writeString(kiter423) + oprot.writeString(viter424) oprot.writeMapEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -12074,11 +12074,11 @@ elif fid == 3: if ftype == TType.MAP: self.part_vals = {} - (_ktype419, _vtype420, _size418 ) = iprot.readMapBegin() - for _i422 in xrange(_size418): - _key423 = iprot.readString(); - _val424 = iprot.readString(); - self.part_vals[_key423] = _val424 + (_ktype426, _vtype427, _size425 ) = iprot.readMapBegin() + for _i429 in xrange(_size425): + _key430 = iprot.readString(); + _val431 = iprot.readString(); + self.part_vals[_key430] = _val431 iprot.readMapEnd() else: iprot.skip(ftype) @@ -12108,9 +12108,9 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.MAP, 3) oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.part_vals)) - for kiter425,viter426 in self.part_vals.items(): - oprot.writeString(kiter425) - oprot.writeString(viter426) + for kiter432,viter433 in self.part_vals.items(): + oprot.writeString(kiter432) + oprot.writeString(viter433) oprot.writeMapEnd() oprot.writeFieldEnd() if self.eventType is not None: @@ -12306,11 +12306,11 @@ elif fid == 3: if ftype == TType.MAP: self.part_vals = {} - (_ktype428, _vtype429, _size427 ) = iprot.readMapBegin() - for _i431 in xrange(_size427): - _key432 = iprot.readString(); - _val433 = iprot.readString(); - self.part_vals[_key432] = _val433 + (_ktype435, _vtype436, _size434 ) = iprot.readMapBegin() + for _i438 in xrange(_size434): + _key439 = iprot.readString(); + _val440 = iprot.readString(); + self.part_vals[_key439] = _val440 iprot.readMapEnd() else: iprot.skip(ftype) @@ -12340,9 +12340,9 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.MAP, 3) oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.part_vals)) - for kiter434,viter435 in self.part_vals.items(): - oprot.writeString(kiter434) - oprot.writeString(viter435) + for kiter441,viter442 in self.part_vals.items(): + oprot.writeString(kiter441) + oprot.writeString(viter442) oprot.writeMapEnd() oprot.writeFieldEnd() if self.eventType is not None: @@ -13314,11 +13314,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype439, _size436) = iprot.readListBegin() - for _i440 in xrange(_size436): - _elem441 = Index() - _elem441.read(iprot) - self.success.append(_elem441) + (_etype446, _size443) = iprot.readListBegin() + for _i447 in xrange(_size443): + _elem448 = Index() + _elem448.read(iprot) + self.success.append(_elem448) iprot.readListEnd() else: iprot.skip(ftype) @@ -13347,8 +13347,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter442 in self.success: - iter442.write(oprot) + for iter449 in self.success: + iter449.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -13489,10 +13489,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype446, _size443) = iprot.readListBegin() - for _i447 in xrange(_size443): - _elem448 = iprot.readString(); - self.success.append(_elem448) + (_etype453, _size450) = iprot.readListBegin() + for _i454 in xrange(_size450): + _elem455 = iprot.readString(); + self.success.append(_elem455) iprot.readListEnd() else: iprot.skip(ftype) @@ -13515,8 +13515,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter449 in self.success: - oprot.writeString(iter449) + for iter456 in self.success: + oprot.writeString(iter456) oprot.writeListEnd() oprot.writeFieldEnd() if self.o2 is not None: @@ -13876,10 +13876,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype453, _size450) = iprot.readListBegin() - for _i454 in xrange(_size450): - _elem455 = iprot.readString(); - self.success.append(_elem455) + (_etype460, _size457) = iprot.readListBegin() + for _i461 in xrange(_size457): + _elem462 = iprot.readString(); + self.success.append(_elem462) iprot.readListEnd() else: iprot.skip(ftype) @@ -13902,8 +13902,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter456 in self.success: - oprot.writeString(iter456) + for iter463 in self.success: + oprot.writeString(iter463) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -14376,11 +14376,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype460, _size457) = iprot.readListBegin() - for _i461 in xrange(_size457): - _elem462 = Role() - _elem462.read(iprot) - self.success.append(_elem462) + (_etype467, _size464) = iprot.readListBegin() + for _i468 in xrange(_size464): + _elem469 = Role() + _elem469.read(iprot) + self.success.append(_elem469) iprot.readListEnd() else: iprot.skip(ftype) @@ -14403,8 +14403,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter463 in self.success: - iter463.write(oprot) + for iter470 in self.success: + iter470.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -14472,10 +14472,10 @@ elif fid == 3: if ftype == TType.LIST: self.group_names = [] - (_etype467, _size464) = iprot.readListBegin() - for _i468 in xrange(_size464): - _elem469 = iprot.readString(); - self.group_names.append(_elem469) + (_etype474, _size471) = iprot.readListBegin() + for _i475 in xrange(_size471): + _elem476 = iprot.readString(); + self.group_names.append(_elem476) iprot.readListEnd() else: iprot.skip(ftype) @@ -14500,8 +14500,8 @@ if self.group_names is not None: oprot.writeFieldBegin('group_names', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.group_names)) - for iter470 in self.group_names: - oprot.writeString(iter470) + for iter477 in self.group_names: + oprot.writeString(iter477) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -14708,11 +14708,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype474, _size471) = iprot.readListBegin() - for _i475 in xrange(_size471): - _elem476 = HiveObjectPrivilege() - _elem476.read(iprot) - self.success.append(_elem476) + (_etype481, _size478) = iprot.readListBegin() + for _i482 in xrange(_size478): + _elem483 = HiveObjectPrivilege() + _elem483.read(iprot) + self.success.append(_elem483) iprot.readListEnd() else: iprot.skip(ftype) @@ -14735,8 +14735,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter477 in self.success: - iter477.write(oprot) + for iter484 in self.success: + iter484.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -15061,10 +15061,10 @@ elif fid == 2: if ftype == TType.LIST: self.group_names = [] - (_etype481, _size478) = iprot.readListBegin() - for _i482 in xrange(_size478): - _elem483 = iprot.readString(); - self.group_names.append(_elem483) + (_etype488, _size485) = iprot.readListBegin() + for _i489 in xrange(_size485): + _elem490 = iprot.readString(); + self.group_names.append(_elem490) iprot.readListEnd() else: iprot.skip(ftype) @@ -15085,8 +15085,8 @@ if self.group_names is not None: oprot.writeFieldBegin('group_names', TType.LIST, 2) oprot.writeListBegin(TType.STRING, len(self.group_names)) - for iter484 in self.group_names: - oprot.writeString(iter484) + for iter491 in self.group_names: + oprot.writeString(iter491) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -15135,10 +15135,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype488, _size485) = iprot.readListBegin() - for _i489 in xrange(_size485): - _elem490 = iprot.readString(); - self.success.append(_elem490) + (_etype495, _size492) = iprot.readListBegin() + for _i496 in xrange(_size492): + _elem497 = iprot.readString(); + self.success.append(_elem497) iprot.readListEnd() else: iprot.skip(ftype) @@ -15161,8 +15161,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter491 in self.success: - oprot.writeString(iter491) + for iter498 in self.success: + oprot.writeString(iter498) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: Index: metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp =================================================================== --- metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp (revision 25657) +++ metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp (working copy) @@ -715,14 +715,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size163; - ::apache::thrift::protocol::TType _etype166; - iprot->readListBegin(_etype166, _size163); - this->success.resize(_size163); - uint32_t _i167; - for (_i167 = 0; _i167 < _size163; ++_i167) + uint32_t _size169; + ::apache::thrift::protocol::TType _etype172; + iprot->readListBegin(_etype172, _size169); + this->success.resize(_size169); + uint32_t _i173; + for (_i173 = 0; _i173 < _size169; ++_i173) { - xfer += iprot->readString(this->success[_i167]); + xfer += iprot->readString(this->success[_i173]); } iprot->readListEnd(); } @@ -761,10 +761,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->success.size())); - std::vector ::const_iterator _iter168; - for (_iter168 = this->success.begin(); _iter168 != this->success.end(); ++_iter168) + std::vector ::const_iterator _iter174; + for (_iter174 = this->success.begin(); _iter174 != this->success.end(); ++_iter174) { - xfer += oprot->writeString((*_iter168)); + xfer += oprot->writeString((*_iter174)); } xfer += oprot->writeListEnd(); } @@ -803,14 +803,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size169; - ::apache::thrift::protocol::TType _etype172; - iprot->readListBegin(_etype172, _size169); - (*(this->success)).resize(_size169); - uint32_t _i173; - for (_i173 = 0; _i173 < _size169; ++_i173) + uint32_t _size175; + ::apache::thrift::protocol::TType _etype178; + iprot->readListBegin(_etype178, _size175); + (*(this->success)).resize(_size175); + uint32_t _i179; + for (_i179 = 0; _i179 < _size175; ++_i179) { - xfer += iprot->readString((*(this->success))[_i173]); + xfer += iprot->readString((*(this->success))[_i179]); } iprot->readListEnd(); } @@ -911,14 +911,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size174; - ::apache::thrift::protocol::TType _etype177; - iprot->readListBegin(_etype177, _size174); - this->success.resize(_size174); - uint32_t _i178; - for (_i178 = 0; _i178 < _size174; ++_i178) + uint32_t _size180; + ::apache::thrift::protocol::TType _etype183; + iprot->readListBegin(_etype183, _size180); + this->success.resize(_size180); + uint32_t _i184; + for (_i184 = 0; _i184 < _size180; ++_i184) { - xfer += iprot->readString(this->success[_i178]); + xfer += iprot->readString(this->success[_i184]); } iprot->readListEnd(); } @@ -957,10 +957,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->success.size())); - std::vector ::const_iterator _iter179; - for (_iter179 = this->success.begin(); _iter179 != this->success.end(); ++_iter179) + std::vector ::const_iterator _iter185; + for (_iter185 = this->success.begin(); _iter185 != this->success.end(); ++_iter185) { - xfer += oprot->writeString((*_iter179)); + xfer += oprot->writeString((*_iter185)); } xfer += oprot->writeListEnd(); } @@ -999,14 +999,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size180; - ::apache::thrift::protocol::TType _etype183; - iprot->readListBegin(_etype183, _size180); - (*(this->success)).resize(_size180); - uint32_t _i184; - for (_i184 = 0; _i184 < _size180; ++_i184) + uint32_t _size186; + ::apache::thrift::protocol::TType _etype189; + iprot->readListBegin(_etype189, _size186); + (*(this->success)).resize(_size186); + uint32_t _i190; + for (_i190 = 0; _i190 < _size186; ++_i190) { - xfer += iprot->readString((*(this->success))[_i184]); + xfer += iprot->readString((*(this->success))[_i190]); } iprot->readListEnd(); } @@ -1927,17 +1927,17 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { this->success.clear(); - uint32_t _size185; - ::apache::thrift::protocol::TType _ktype186; - ::apache::thrift::protocol::TType _vtype187; - iprot->readMapBegin(_ktype186, _vtype187, _size185); - uint32_t _i189; - for (_i189 = 0; _i189 < _size185; ++_i189) + uint32_t _size191; + ::apache::thrift::protocol::TType _ktype192; + ::apache::thrift::protocol::TType _vtype193; + iprot->readMapBegin(_ktype192, _vtype193, _size191); + uint32_t _i195; + for (_i195 = 0; _i195 < _size191; ++_i195) { - std::string _key190; - xfer += iprot->readString(_key190); - Type& _val191 = this->success[_key190]; - xfer += _val191.read(iprot); + std::string _key196; + xfer += iprot->readString(_key196); + Type& _val197 = this->success[_key196]; + xfer += _val197.read(iprot); } iprot->readMapEnd(); } @@ -1976,11 +1976,11 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_MAP, 0); { xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRUCT, static_cast(this->success.size())); - std::map ::const_iterator _iter192; - for (_iter192 = this->success.begin(); _iter192 != this->success.end(); ++_iter192) + std::map ::const_iterator _iter198; + for (_iter198 = this->success.begin(); _iter198 != this->success.end(); ++_iter198) { - xfer += oprot->writeString(_iter192->first); - xfer += _iter192->second.write(oprot); + xfer += oprot->writeString(_iter198->first); + xfer += _iter198->second.write(oprot); } xfer += oprot->writeMapEnd(); } @@ -2019,17 +2019,17 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { (*(this->success)).clear(); - uint32_t _size193; - ::apache::thrift::protocol::TType _ktype194; - ::apache::thrift::protocol::TType _vtype195; - iprot->readMapBegin(_ktype194, _vtype195, _size193); - uint32_t _i197; - for (_i197 = 0; _i197 < _size193; ++_i197) + uint32_t _size199; + ::apache::thrift::protocol::TType _ktype200; + ::apache::thrift::protocol::TType _vtype201; + iprot->readMapBegin(_ktype200, _vtype201, _size199); + uint32_t _i203; + for (_i203 = 0; _i203 < _size199; ++_i203) { - std::string _key198; - xfer += iprot->readString(_key198); - Type& _val199 = (*(this->success))[_key198]; - xfer += _val199.read(iprot); + std::string _key204; + xfer += iprot->readString(_key204); + Type& _val205 = (*(this->success))[_key204]; + xfer += _val205.read(iprot); } iprot->readMapEnd(); } @@ -2158,14 +2158,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size200; - ::apache::thrift::protocol::TType _etype203; - iprot->readListBegin(_etype203, _size200); - this->success.resize(_size200); - uint32_t _i204; - for (_i204 = 0; _i204 < _size200; ++_i204) + uint32_t _size206; + ::apache::thrift::protocol::TType _etype209; + iprot->readListBegin(_etype209, _size206); + this->success.resize(_size206); + uint32_t _i210; + for (_i210 = 0; _i210 < _size206; ++_i210) { - xfer += this->success[_i204].read(iprot); + xfer += this->success[_i210].read(iprot); } iprot->readListEnd(); } @@ -2220,10 +2220,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->success.size())); - std::vector ::const_iterator _iter205; - for (_iter205 = this->success.begin(); _iter205 != this->success.end(); ++_iter205) + std::vector ::const_iterator _iter211; + for (_iter211 = this->success.begin(); _iter211 != this->success.end(); ++_iter211) { - xfer += (*_iter205).write(oprot); + xfer += (*_iter211).write(oprot); } xfer += oprot->writeListEnd(); } @@ -2270,14 +2270,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size206; - ::apache::thrift::protocol::TType _etype209; - iprot->readListBegin(_etype209, _size206); - (*(this->success)).resize(_size206); - uint32_t _i210; - for (_i210 = 0; _i210 < _size206; ++_i210) + uint32_t _size212; + ::apache::thrift::protocol::TType _etype215; + iprot->readListBegin(_etype215, _size212); + (*(this->success)).resize(_size212); + uint32_t _i216; + for (_i216 = 0; _i216 < _size212; ++_i216) { - xfer += (*(this->success))[_i210].read(iprot); + xfer += (*(this->success))[_i216].read(iprot); } iprot->readListEnd(); } @@ -2422,14 +2422,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size211; - ::apache::thrift::protocol::TType _etype214; - iprot->readListBegin(_etype214, _size211); - this->success.resize(_size211); - uint32_t _i215; - for (_i215 = 0; _i215 < _size211; ++_i215) + uint32_t _size217; + ::apache::thrift::protocol::TType _etype220; + iprot->readListBegin(_etype220, _size217); + this->success.resize(_size217); + uint32_t _i221; + for (_i221 = 0; _i221 < _size217; ++_i221) { - xfer += this->success[_i215].read(iprot); + xfer += this->success[_i221].read(iprot); } iprot->readListEnd(); } @@ -2484,10 +2484,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->success.size())); - std::vector ::const_iterator _iter216; - for (_iter216 = this->success.begin(); _iter216 != this->success.end(); ++_iter216) + std::vector ::const_iterator _iter222; + for (_iter222 = this->success.begin(); _iter222 != this->success.end(); ++_iter222) { - xfer += (*_iter216).write(oprot); + xfer += (*_iter222).write(oprot); } xfer += oprot->writeListEnd(); } @@ -2534,14 +2534,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size217; - ::apache::thrift::protocol::TType _etype220; - iprot->readListBegin(_etype220, _size217); - (*(this->success)).resize(_size217); - uint32_t _i221; - for (_i221 = 0; _i221 < _size217; ++_i221) + uint32_t _size223; + ::apache::thrift::protocol::TType _etype226; + iprot->readListBegin(_etype226, _size223); + (*(this->success)).resize(_size223); + uint32_t _i227; + for (_i227 = 0; _i227 < _size223; ++_i227) { - xfer += (*(this->success))[_i221].read(iprot); + xfer += (*(this->success))[_i227].read(iprot); } iprot->readListEnd(); } @@ -3342,14 +3342,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size222; - ::apache::thrift::protocol::TType _etype225; - iprot->readListBegin(_etype225, _size222); - this->success.resize(_size222); - uint32_t _i226; - for (_i226 = 0; _i226 < _size222; ++_i226) + uint32_t _size228; + ::apache::thrift::protocol::TType _etype231; + iprot->readListBegin(_etype231, _size228); + this->success.resize(_size228); + uint32_t _i232; + for (_i232 = 0; _i232 < _size228; ++_i232) { - xfer += iprot->readString(this->success[_i226]); + xfer += iprot->readString(this->success[_i232]); } iprot->readListEnd(); } @@ -3388,10 +3388,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->success.size())); - std::vector ::const_iterator _iter227; - for (_iter227 = this->success.begin(); _iter227 != this->success.end(); ++_iter227) + std::vector ::const_iterator _iter233; + for (_iter233 = this->success.begin(); _iter233 != this->success.end(); ++_iter233) { - xfer += oprot->writeString((*_iter227)); + xfer += oprot->writeString((*_iter233)); } xfer += oprot->writeListEnd(); } @@ -3430,14 +3430,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size228; - ::apache::thrift::protocol::TType _etype231; - iprot->readListBegin(_etype231, _size228); - (*(this->success)).resize(_size228); - uint32_t _i232; - for (_i232 = 0; _i232 < _size228; ++_i232) + uint32_t _size234; + ::apache::thrift::protocol::TType _etype237; + iprot->readListBegin(_etype237, _size234); + (*(this->success)).resize(_size234); + uint32_t _i238; + for (_i238 = 0; _i238 < _size234; ++_i238) { - xfer += iprot->readString((*(this->success))[_i232]); + xfer += iprot->readString((*(this->success))[_i238]); } iprot->readListEnd(); } @@ -3552,14 +3552,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size233; - ::apache::thrift::protocol::TType _etype236; - iprot->readListBegin(_etype236, _size233); - this->success.resize(_size233); - uint32_t _i237; - for (_i237 = 0; _i237 < _size233; ++_i237) + uint32_t _size239; + ::apache::thrift::protocol::TType _etype242; + iprot->readListBegin(_etype242, _size239); + this->success.resize(_size239); + uint32_t _i243; + for (_i243 = 0; _i243 < _size239; ++_i243) { - xfer += iprot->readString(this->success[_i237]); + xfer += iprot->readString(this->success[_i243]); } iprot->readListEnd(); } @@ -3598,10 +3598,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->success.size())); - std::vector ::const_iterator _iter238; - for (_iter238 = this->success.begin(); _iter238 != this->success.end(); ++_iter238) + std::vector ::const_iterator _iter244; + for (_iter244 = this->success.begin(); _iter244 != this->success.end(); ++_iter244) { - xfer += oprot->writeString((*_iter238)); + xfer += oprot->writeString((*_iter244)); } xfer += oprot->writeListEnd(); } @@ -3640,14 +3640,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size239; - ::apache::thrift::protocol::TType _etype242; - iprot->readListBegin(_etype242, _size239); - (*(this->success)).resize(_size239); - uint32_t _i243; - for (_i243 = 0; _i243 < _size239; ++_i243) + uint32_t _size245; + ::apache::thrift::protocol::TType _etype248; + iprot->readListBegin(_etype248, _size245); + (*(this->success)).resize(_size245); + uint32_t _i249; + for (_i249 = 0; _i249 < _size245; ++_i249) { - xfer += iprot->readString((*(this->success))[_i243]); + xfer += iprot->readString((*(this->success))[_i249]); } iprot->readListEnd(); } @@ -3920,14 +3920,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->tbl_names.clear(); - uint32_t _size244; - ::apache::thrift::protocol::TType _etype247; - iprot->readListBegin(_etype247, _size244); - this->tbl_names.resize(_size244); - uint32_t _i248; - for (_i248 = 0; _i248 < _size244; ++_i248) + uint32_t _size250; + ::apache::thrift::protocol::TType _etype253; + iprot->readListBegin(_etype253, _size250); + this->tbl_names.resize(_size250); + uint32_t _i254; + for (_i254 = 0; _i254 < _size250; ++_i254) { - xfer += iprot->readString(this->tbl_names[_i248]); + xfer += iprot->readString(this->tbl_names[_i254]); } iprot->readListEnd(); } @@ -3957,10 +3957,10 @@ xfer += oprot->writeFieldBegin("tbl_names", ::apache::thrift::protocol::T_LIST, 2); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->tbl_names.size())); - std::vector ::const_iterator _iter249; - for (_iter249 = this->tbl_names.begin(); _iter249 != this->tbl_names.end(); ++_iter249) + std::vector ::const_iterator _iter255; + for (_iter255 = this->tbl_names.begin(); _iter255 != this->tbl_names.end(); ++_iter255) { - xfer += oprot->writeString((*_iter249)); + xfer += oprot->writeString((*_iter255)); } xfer += oprot->writeListEnd(); } @@ -3979,10 +3979,10 @@ xfer += oprot->writeFieldBegin("tbl_names", ::apache::thrift::protocol::T_LIST, 2); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*(this->tbl_names)).size())); - std::vector ::const_iterator _iter250; - for (_iter250 = (*(this->tbl_names)).begin(); _iter250 != (*(this->tbl_names)).end(); ++_iter250) + std::vector ::const_iterator _iter256; + for (_iter256 = (*(this->tbl_names)).begin(); _iter256 != (*(this->tbl_names)).end(); ++_iter256) { - xfer += oprot->writeString((*_iter250)); + xfer += oprot->writeString((*_iter256)); } xfer += oprot->writeListEnd(); } @@ -4016,14 +4016,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size251; - ::apache::thrift::protocol::TType _etype254; - iprot->readListBegin(_etype254, _size251); - this->success.resize(_size251); - uint32_t _i255; - for (_i255 = 0; _i255 < _size251; ++_i255) + uint32_t _size257; + ::apache::thrift::protocol::TType _etype260; + iprot->readListBegin(_etype260, _size257); + this->success.resize(_size257); + uint32_t _i261; + for (_i261 = 0; _i261 < _size257; ++_i261) { - xfer += this->success[_i255].read(iprot); + xfer += this->success[_i261].read(iprot); } iprot->readListEnd(); } @@ -4078,10 +4078,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->success.size())); - std::vector ::const_iterator _iter256; - for (_iter256 = this->success.begin(); _iter256 != this->success.end(); ++_iter256) + std::vector
::const_iterator _iter262; + for (_iter262 = this->success.begin(); _iter262 != this->success.end(); ++_iter262) { - xfer += (*_iter256).write(oprot); + xfer += (*_iter262).write(oprot); } xfer += oprot->writeListEnd(); } @@ -4128,14 +4128,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size257; - ::apache::thrift::protocol::TType _etype260; - iprot->readListBegin(_etype260, _size257); - (*(this->success)).resize(_size257); - uint32_t _i261; - for (_i261 = 0; _i261 < _size257; ++_i261) + uint32_t _size263; + ::apache::thrift::protocol::TType _etype266; + iprot->readListBegin(_etype266, _size263); + (*(this->success)).resize(_size263); + uint32_t _i267; + for (_i267 = 0; _i267 < _size263; ++_i267) { - xfer += (*(this->success))[_i261].read(iprot); + xfer += (*(this->success))[_i267].read(iprot); } iprot->readListEnd(); } @@ -4294,14 +4294,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size262; - ::apache::thrift::protocol::TType _etype265; - iprot->readListBegin(_etype265, _size262); - this->success.resize(_size262); - uint32_t _i266; - for (_i266 = 0; _i266 < _size262; ++_i266) + uint32_t _size268; + ::apache::thrift::protocol::TType _etype271; + iprot->readListBegin(_etype271, _size268); + this->success.resize(_size268); + uint32_t _i272; + for (_i272 = 0; _i272 < _size268; ++_i272) { - xfer += iprot->readString(this->success[_i266]); + xfer += iprot->readString(this->success[_i272]); } iprot->readListEnd(); } @@ -4356,10 +4356,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->success.size())); - std::vector ::const_iterator _iter267; - for (_iter267 = this->success.begin(); _iter267 != this->success.end(); ++_iter267) + std::vector ::const_iterator _iter273; + for (_iter273 = this->success.begin(); _iter273 != this->success.end(); ++_iter273) { - xfer += oprot->writeString((*_iter267)); + xfer += oprot->writeString((*_iter273)); } xfer += oprot->writeListEnd(); } @@ -4406,14 +4406,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size268; - ::apache::thrift::protocol::TType _etype271; - iprot->readListBegin(_etype271, _size268); - (*(this->success)).resize(_size268); - uint32_t _i272; - for (_i272 = 0; _i272 < _size268; ++_i272) + uint32_t _size274; + ::apache::thrift::protocol::TType _etype277; + iprot->readListBegin(_etype277, _size274); + (*(this->success)).resize(_size274); + uint32_t _i278; + for (_i278 = 0; _i278 < _size274; ++_i278) { - xfer += iprot->readString((*(this->success))[_i272]); + xfer += iprot->readString((*(this->success))[_i278]); } iprot->readListEnd(); } @@ -5358,14 +5358,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->new_parts.clear(); - uint32_t _size273; - ::apache::thrift::protocol::TType _etype276; - iprot->readListBegin(_etype276, _size273); - this->new_parts.resize(_size273); - uint32_t _i277; - for (_i277 = 0; _i277 < _size273; ++_i277) + uint32_t _size279; + ::apache::thrift::protocol::TType _etype282; + iprot->readListBegin(_etype282, _size279); + this->new_parts.resize(_size279); + uint32_t _i283; + for (_i283 = 0; _i283 < _size279; ++_i283) { - xfer += this->new_parts[_i277].read(iprot); + xfer += this->new_parts[_i283].read(iprot); } iprot->readListEnd(); } @@ -5392,10 +5392,10 @@ xfer += oprot->writeFieldBegin("new_parts", ::apache::thrift::protocol::T_LIST, 1); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->new_parts.size())); - std::vector ::const_iterator _iter278; - for (_iter278 = this->new_parts.begin(); _iter278 != this->new_parts.end(); ++_iter278) + std::vector ::const_iterator _iter284; + for (_iter284 = this->new_parts.begin(); _iter284 != this->new_parts.end(); ++_iter284) { - xfer += (*_iter278).write(oprot); + xfer += (*_iter284).write(oprot); } xfer += oprot->writeListEnd(); } @@ -5411,10 +5411,10 @@ xfer += oprot->writeFieldBegin("new_parts", ::apache::thrift::protocol::T_LIST, 1); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast((*(this->new_parts)).size())); - std::vector ::const_iterator _iter279; - for (_iter279 = (*(this->new_parts)).begin(); _iter279 != (*(this->new_parts)).end(); ++_iter279) + std::vector ::const_iterator _iter285; + for (_iter285 = (*(this->new_parts)).begin(); _iter285 != (*(this->new_parts)).end(); ++_iter285) { - xfer += (*_iter279).write(oprot); + xfer += (*_iter285).write(oprot); } xfer += oprot->writeListEnd(); } @@ -5620,14 +5620,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size280; - ::apache::thrift::protocol::TType _etype283; - iprot->readListBegin(_etype283, _size280); - this->part_vals.resize(_size280); - uint32_t _i284; - for (_i284 = 0; _i284 < _size280; ++_i284) + uint32_t _size286; + ::apache::thrift::protocol::TType _etype289; + iprot->readListBegin(_etype289, _size286); + this->part_vals.resize(_size286); + uint32_t _i290; + for (_i290 = 0; _i290 < _size286; ++_i290) { - xfer += iprot->readString(this->part_vals[_i284]); + xfer += iprot->readString(this->part_vals[_i290]); } iprot->readListEnd(); } @@ -5660,10 +5660,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->part_vals.size())); - std::vector ::const_iterator _iter285; - for (_iter285 = this->part_vals.begin(); _iter285 != this->part_vals.end(); ++_iter285) + std::vector ::const_iterator _iter291; + for (_iter291 = this->part_vals.begin(); _iter291 != this->part_vals.end(); ++_iter291) { - xfer += oprot->writeString((*_iter285)); + xfer += oprot->writeString((*_iter291)); } xfer += oprot->writeListEnd(); } @@ -5685,10 +5685,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*(this->part_vals)).size())); - std::vector ::const_iterator _iter286; - for (_iter286 = (*(this->part_vals)).begin(); _iter286 != (*(this->part_vals)).end(); ++_iter286) + std::vector ::const_iterator _iter292; + for (_iter292 = (*(this->part_vals)).begin(); _iter292 != (*(this->part_vals)).end(); ++_iter292) { - xfer += oprot->writeString((*_iter286)); + xfer += oprot->writeString((*_iter292)); } xfer += oprot->writeListEnd(); } @@ -6140,14 +6140,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size287; - ::apache::thrift::protocol::TType _etype290; - iprot->readListBegin(_etype290, _size287); - this->part_vals.resize(_size287); - uint32_t _i291; - for (_i291 = 0; _i291 < _size287; ++_i291) + uint32_t _size293; + ::apache::thrift::protocol::TType _etype296; + iprot->readListBegin(_etype296, _size293); + this->part_vals.resize(_size293); + uint32_t _i297; + for (_i297 = 0; _i297 < _size293; ++_i297) { - xfer += iprot->readString(this->part_vals[_i291]); + xfer += iprot->readString(this->part_vals[_i297]); } iprot->readListEnd(); } @@ -6188,10 +6188,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->part_vals.size())); - std::vector ::const_iterator _iter292; - for (_iter292 = this->part_vals.begin(); _iter292 != this->part_vals.end(); ++_iter292) + std::vector ::const_iterator _iter298; + for (_iter298 = this->part_vals.begin(); _iter298 != this->part_vals.end(); ++_iter298) { - xfer += oprot->writeString((*_iter292)); + xfer += oprot->writeString((*_iter298)); } xfer += oprot->writeListEnd(); } @@ -6216,10 +6216,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*(this->part_vals)).size())); - std::vector ::const_iterator _iter293; - for (_iter293 = (*(this->part_vals)).begin(); _iter293 != (*(this->part_vals)).end(); ++_iter293) + std::vector ::const_iterator _iter299; + for (_iter299 = (*(this->part_vals)).begin(); _iter299 != (*(this->part_vals)).end(); ++_iter299) { - xfer += oprot->writeString((*_iter293)); + xfer += oprot->writeString((*_iter299)); } xfer += oprot->writeListEnd(); } @@ -6648,14 +6648,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size294; - ::apache::thrift::protocol::TType _etype297; - iprot->readListBegin(_etype297, _size294); - this->part_vals.resize(_size294); - uint32_t _i298; - for (_i298 = 0; _i298 < _size294; ++_i298) + uint32_t _size300; + ::apache::thrift::protocol::TType _etype303; + iprot->readListBegin(_etype303, _size300); + this->part_vals.resize(_size300); + uint32_t _i304; + for (_i304 = 0; _i304 < _size300; ++_i304) { - xfer += iprot->readString(this->part_vals[_i298]); + xfer += iprot->readString(this->part_vals[_i304]); } iprot->readListEnd(); } @@ -6688,10 +6688,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->part_vals.size())); - std::vector ::const_iterator _iter299; - for (_iter299 = this->part_vals.begin(); _iter299 != this->part_vals.end(); ++_iter299) + std::vector ::const_iterator _iter305; + for (_iter305 = this->part_vals.begin(); _iter305 != this->part_vals.end(); ++_iter305) { - xfer += oprot->writeString((*_iter299)); + xfer += oprot->writeString((*_iter305)); } xfer += oprot->writeListEnd(); } @@ -6713,10 +6713,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*(this->part_vals)).size())); - std::vector ::const_iterator _iter300; - for (_iter300 = (*(this->part_vals)).begin(); _iter300 != (*(this->part_vals)).end(); ++_iter300) + std::vector ::const_iterator _iter306; + for (_iter306 = (*(this->part_vals)).begin(); _iter306 != (*(this->part_vals)).end(); ++_iter306) { - xfer += oprot->writeString((*_iter300)); + xfer += oprot->writeString((*_iter306)); } xfer += oprot->writeListEnd(); } @@ -6902,14 +6902,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size301; - ::apache::thrift::protocol::TType _etype304; - iprot->readListBegin(_etype304, _size301); - this->part_vals.resize(_size301); - uint32_t _i305; - for (_i305 = 0; _i305 < _size301; ++_i305) + uint32_t _size307; + ::apache::thrift::protocol::TType _etype310; + iprot->readListBegin(_etype310, _size307); + this->part_vals.resize(_size307); + uint32_t _i311; + for (_i311 = 0; _i311 < _size307; ++_i311) { - xfer += iprot->readString(this->part_vals[_i305]); + xfer += iprot->readString(this->part_vals[_i311]); } iprot->readListEnd(); } @@ -6930,14 +6930,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->group_names.clear(); - uint32_t _size306; - ::apache::thrift::protocol::TType _etype309; - iprot->readListBegin(_etype309, _size306); - this->group_names.resize(_size306); - uint32_t _i310; - for (_i310 = 0; _i310 < _size306; ++_i310) + uint32_t _size312; + ::apache::thrift::protocol::TType _etype315; + iprot->readListBegin(_etype315, _size312); + this->group_names.resize(_size312); + uint32_t _i316; + for (_i316 = 0; _i316 < _size312; ++_i316) { - xfer += iprot->readString(this->group_names[_i310]); + xfer += iprot->readString(this->group_names[_i316]); } iprot->readListEnd(); } @@ -6970,10 +6970,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->part_vals.size())); - std::vector ::const_iterator _iter311; - for (_iter311 = this->part_vals.begin(); _iter311 != this->part_vals.end(); ++_iter311) + std::vector ::const_iterator _iter317; + for (_iter317 = this->part_vals.begin(); _iter317 != this->part_vals.end(); ++_iter317) { - xfer += oprot->writeString((*_iter311)); + xfer += oprot->writeString((*_iter317)); } xfer += oprot->writeListEnd(); } @@ -6984,10 +6984,10 @@ xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 5); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->group_names.size())); - std::vector ::const_iterator _iter312; - for (_iter312 = this->group_names.begin(); _iter312 != this->group_names.end(); ++_iter312) + std::vector ::const_iterator _iter318; + for (_iter318 = this->group_names.begin(); _iter318 != this->group_names.end(); ++_iter318) { - xfer += oprot->writeString((*_iter312)); + xfer += oprot->writeString((*_iter318)); } xfer += oprot->writeListEnd(); } @@ -7009,10 +7009,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*(this->part_vals)).size())); - std::vector ::const_iterator _iter313; - for (_iter313 = (*(this->part_vals)).begin(); _iter313 != (*(this->part_vals)).end(); ++_iter313) + std::vector ::const_iterator _iter319; + for (_iter319 = (*(this->part_vals)).begin(); _iter319 != (*(this->part_vals)).end(); ++_iter319) { - xfer += oprot->writeString((*_iter313)); + xfer += oprot->writeString((*_iter319)); } xfer += oprot->writeListEnd(); } @@ -7023,10 +7023,10 @@ xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 5); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*(this->group_names)).size())); - std::vector ::const_iterator _iter314; - for (_iter314 = (*(this->group_names)).begin(); _iter314 != (*(this->group_names)).end(); ++_iter314) + std::vector ::const_iterator _iter320; + for (_iter320 = (*(this->group_names)).begin(); _iter320 != (*(this->group_names)).end(); ++_iter320) { - xfer += oprot->writeString((*_iter314)); + xfer += oprot->writeString((*_iter320)); } xfer += oprot->writeListEnd(); } @@ -7512,14 +7512,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size315; - ::apache::thrift::protocol::TType _etype318; - iprot->readListBegin(_etype318, _size315); - this->success.resize(_size315); - uint32_t _i319; - for (_i319 = 0; _i319 < _size315; ++_i319) + uint32_t _size321; + ::apache::thrift::protocol::TType _etype324; + iprot->readListBegin(_etype324, _size321); + this->success.resize(_size321); + uint32_t _i325; + for (_i325 = 0; _i325 < _size321; ++_i325) { - xfer += this->success[_i319].read(iprot); + xfer += this->success[_i325].read(iprot); } iprot->readListEnd(); } @@ -7566,10 +7566,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->success.size())); - std::vector ::const_iterator _iter320; - for (_iter320 = this->success.begin(); _iter320 != this->success.end(); ++_iter320) + std::vector ::const_iterator _iter326; + for (_iter326 = this->success.begin(); _iter326 != this->success.end(); ++_iter326) { - xfer += (*_iter320).write(oprot); + xfer += (*_iter326).write(oprot); } xfer += oprot->writeListEnd(); } @@ -7612,14 +7612,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size321; - ::apache::thrift::protocol::TType _etype324; - iprot->readListBegin(_etype324, _size321); - (*(this->success)).resize(_size321); - uint32_t _i325; - for (_i325 = 0; _i325 < _size321; ++_i325) + uint32_t _size327; + ::apache::thrift::protocol::TType _etype330; + iprot->readListBegin(_etype330, _size327); + (*(this->success)).resize(_size327); + uint32_t _i331; + for (_i331 = 0; _i331 < _size327; ++_i331) { - xfer += (*(this->success))[_i325].read(iprot); + xfer += (*(this->success))[_i331].read(iprot); } iprot->readListEnd(); } @@ -7712,14 +7712,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->group_names.clear(); - uint32_t _size326; - ::apache::thrift::protocol::TType _etype329; - iprot->readListBegin(_etype329, _size326); - this->group_names.resize(_size326); - uint32_t _i330; - for (_i330 = 0; _i330 < _size326; ++_i330) + uint32_t _size332; + ::apache::thrift::protocol::TType _etype335; + iprot->readListBegin(_etype335, _size332); + this->group_names.resize(_size332); + uint32_t _i336; + for (_i336 = 0; _i336 < _size332; ++_i336) { - xfer += iprot->readString(this->group_names[_i330]); + xfer += iprot->readString(this->group_names[_i336]); } iprot->readListEnd(); } @@ -7758,10 +7758,10 @@ xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 5); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->group_names.size())); - std::vector ::const_iterator _iter331; - for (_iter331 = this->group_names.begin(); _iter331 != this->group_names.end(); ++_iter331) + std::vector ::const_iterator _iter337; + for (_iter337 = this->group_names.begin(); _iter337 != this->group_names.end(); ++_iter337) { - xfer += oprot->writeString((*_iter331)); + xfer += oprot->writeString((*_iter337)); } xfer += oprot->writeListEnd(); } @@ -7789,10 +7789,10 @@ xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 5); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*(this->group_names)).size())); - std::vector ::const_iterator _iter332; - for (_iter332 = (*(this->group_names)).begin(); _iter332 != (*(this->group_names)).end(); ++_iter332) + std::vector ::const_iterator _iter338; + for (_iter338 = (*(this->group_names)).begin(); _iter338 != (*(this->group_names)).end(); ++_iter338) { - xfer += oprot->writeString((*_iter332)); + xfer += oprot->writeString((*_iter338)); } xfer += oprot->writeListEnd(); } @@ -7826,14 +7826,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size333; - ::apache::thrift::protocol::TType _etype336; - iprot->readListBegin(_etype336, _size333); - this->success.resize(_size333); - uint32_t _i337; - for (_i337 = 0; _i337 < _size333; ++_i337) + uint32_t _size339; + ::apache::thrift::protocol::TType _etype342; + iprot->readListBegin(_etype342, _size339); + this->success.resize(_size339); + uint32_t _i343; + for (_i343 = 0; _i343 < _size339; ++_i343) { - xfer += this->success[_i337].read(iprot); + xfer += this->success[_i343].read(iprot); } iprot->readListEnd(); } @@ -7880,10 +7880,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->success.size())); - std::vector ::const_iterator _iter338; - for (_iter338 = this->success.begin(); _iter338 != this->success.end(); ++_iter338) + std::vector ::const_iterator _iter344; + for (_iter344 = this->success.begin(); _iter344 != this->success.end(); ++_iter344) { - xfer += (*_iter338).write(oprot); + xfer += (*_iter344).write(oprot); } xfer += oprot->writeListEnd(); } @@ -7926,14 +7926,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size339; - ::apache::thrift::protocol::TType _etype342; - iprot->readListBegin(_etype342, _size339); - (*(this->success)).resize(_size339); - uint32_t _i343; - for (_i343 = 0; _i343 < _size339; ++_i343) + uint32_t _size345; + ::apache::thrift::protocol::TType _etype348; + iprot->readListBegin(_etype348, _size345); + (*(this->success)).resize(_size345); + uint32_t _i349; + for (_i349 = 0; _i349 < _size345; ++_i349) { - xfer += (*(this->success))[_i343].read(iprot); + xfer += (*(this->success))[_i349].read(iprot); } iprot->readListEnd(); } @@ -8084,14 +8084,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size344; - ::apache::thrift::protocol::TType _etype347; - iprot->readListBegin(_etype347, _size344); - this->success.resize(_size344); - uint32_t _i348; - for (_i348 = 0; _i348 < _size344; ++_i348) + uint32_t _size350; + ::apache::thrift::protocol::TType _etype353; + iprot->readListBegin(_etype353, _size350); + this->success.resize(_size350); + uint32_t _i354; + for (_i354 = 0; _i354 < _size350; ++_i354) { - xfer += iprot->readString(this->success[_i348]); + xfer += iprot->readString(this->success[_i354]); } iprot->readListEnd(); } @@ -8130,10 +8130,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->success.size())); - std::vector ::const_iterator _iter349; - for (_iter349 = this->success.begin(); _iter349 != this->success.end(); ++_iter349) + std::vector ::const_iterator _iter355; + for (_iter355 = this->success.begin(); _iter355 != this->success.end(); ++_iter355) { - xfer += oprot->writeString((*_iter349)); + xfer += oprot->writeString((*_iter355)); } xfer += oprot->writeListEnd(); } @@ -8172,14 +8172,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size350; - ::apache::thrift::protocol::TType _etype353; - iprot->readListBegin(_etype353, _size350); - (*(this->success)).resize(_size350); - uint32_t _i354; - for (_i354 = 0; _i354 < _size350; ++_i354) + uint32_t _size356; + ::apache::thrift::protocol::TType _etype359; + iprot->readListBegin(_etype359, _size356); + (*(this->success)).resize(_size356); + uint32_t _i360; + for (_i360 = 0; _i360 < _size356; ++_i360) { - xfer += iprot->readString((*(this->success))[_i354]); + xfer += iprot->readString((*(this->success))[_i360]); } iprot->readListEnd(); } @@ -8248,14 +8248,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size355; - ::apache::thrift::protocol::TType _etype358; - iprot->readListBegin(_etype358, _size355); - this->part_vals.resize(_size355); - uint32_t _i359; - for (_i359 = 0; _i359 < _size355; ++_i359) + uint32_t _size361; + ::apache::thrift::protocol::TType _etype364; + iprot->readListBegin(_etype364, _size361); + this->part_vals.resize(_size361); + uint32_t _i365; + for (_i365 = 0; _i365 < _size361; ++_i365) { - xfer += iprot->readString(this->part_vals[_i359]); + xfer += iprot->readString(this->part_vals[_i365]); } iprot->readListEnd(); } @@ -8296,10 +8296,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->part_vals.size())); - std::vector ::const_iterator _iter360; - for (_iter360 = this->part_vals.begin(); _iter360 != this->part_vals.end(); ++_iter360) + std::vector ::const_iterator _iter366; + for (_iter366 = this->part_vals.begin(); _iter366 != this->part_vals.end(); ++_iter366) { - xfer += oprot->writeString((*_iter360)); + xfer += oprot->writeString((*_iter366)); } xfer += oprot->writeListEnd(); } @@ -8324,10 +8324,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*(this->part_vals)).size())); - std::vector ::const_iterator _iter361; - for (_iter361 = (*(this->part_vals)).begin(); _iter361 != (*(this->part_vals)).end(); ++_iter361) + std::vector ::const_iterator _iter367; + for (_iter367 = (*(this->part_vals)).begin(); _iter367 != (*(this->part_vals)).end(); ++_iter367) { - xfer += oprot->writeString((*_iter361)); + xfer += oprot->writeString((*_iter367)); } xfer += oprot->writeListEnd(); } @@ -8364,14 +8364,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size362; - ::apache::thrift::protocol::TType _etype365; - iprot->readListBegin(_etype365, _size362); - this->success.resize(_size362); - uint32_t _i366; - for (_i366 = 0; _i366 < _size362; ++_i366) + uint32_t _size368; + ::apache::thrift::protocol::TType _etype371; + iprot->readListBegin(_etype371, _size368); + this->success.resize(_size368); + uint32_t _i372; + for (_i372 = 0; _i372 < _size368; ++_i372) { - xfer += this->success[_i366].read(iprot); + xfer += this->success[_i372].read(iprot); } iprot->readListEnd(); } @@ -8418,10 +8418,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->success.size())); - std::vector ::const_iterator _iter367; - for (_iter367 = this->success.begin(); _iter367 != this->success.end(); ++_iter367) + std::vector ::const_iterator _iter373; + for (_iter373 = this->success.begin(); _iter373 != this->success.end(); ++_iter373) { - xfer += (*_iter367).write(oprot); + xfer += (*_iter373).write(oprot); } xfer += oprot->writeListEnd(); } @@ -8464,14 +8464,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size368; - ::apache::thrift::protocol::TType _etype371; - iprot->readListBegin(_etype371, _size368); - (*(this->success)).resize(_size368); - uint32_t _i372; - for (_i372 = 0; _i372 < _size368; ++_i372) + uint32_t _size374; + ::apache::thrift::protocol::TType _etype377; + iprot->readListBegin(_etype377, _size374); + (*(this->success)).resize(_size374); + uint32_t _i378; + for (_i378 = 0; _i378 < _size374; ++_i378) { - xfer += (*(this->success))[_i372].read(iprot); + xfer += (*(this->success))[_i378].read(iprot); } iprot->readListEnd(); } @@ -8548,14 +8548,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size373; - ::apache::thrift::protocol::TType _etype376; - iprot->readListBegin(_etype376, _size373); - this->part_vals.resize(_size373); - uint32_t _i377; - for (_i377 = 0; _i377 < _size373; ++_i377) + uint32_t _size379; + ::apache::thrift::protocol::TType _etype382; + iprot->readListBegin(_etype382, _size379); + this->part_vals.resize(_size379); + uint32_t _i383; + for (_i383 = 0; _i383 < _size379; ++_i383) { - xfer += iprot->readString(this->part_vals[_i377]); + xfer += iprot->readString(this->part_vals[_i383]); } iprot->readListEnd(); } @@ -8584,14 +8584,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->group_names.clear(); - uint32_t _size378; - ::apache::thrift::protocol::TType _etype381; - iprot->readListBegin(_etype381, _size378); - this->group_names.resize(_size378); - uint32_t _i382; - for (_i382 = 0; _i382 < _size378; ++_i382) + uint32_t _size384; + ::apache::thrift::protocol::TType _etype387; + iprot->readListBegin(_etype387, _size384); + this->group_names.resize(_size384); + uint32_t _i388; + for (_i388 = 0; _i388 < _size384; ++_i388) { - xfer += iprot->readString(this->group_names[_i382]); + xfer += iprot->readString(this->group_names[_i388]); } iprot->readListEnd(); } @@ -8624,10 +8624,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->part_vals.size())); - std::vector ::const_iterator _iter383; - for (_iter383 = this->part_vals.begin(); _iter383 != this->part_vals.end(); ++_iter383) + std::vector ::const_iterator _iter389; + for (_iter389 = this->part_vals.begin(); _iter389 != this->part_vals.end(); ++_iter389) { - xfer += oprot->writeString((*_iter383)); + xfer += oprot->writeString((*_iter389)); } xfer += oprot->writeListEnd(); } @@ -8641,10 +8641,10 @@ xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 6); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->group_names.size())); - std::vector ::const_iterator _iter384; - for (_iter384 = this->group_names.begin(); _iter384 != this->group_names.end(); ++_iter384) + std::vector ::const_iterator _iter390; + for (_iter390 = this->group_names.begin(); _iter390 != this->group_names.end(); ++_iter390) { - xfer += oprot->writeString((*_iter384)); + xfer += oprot->writeString((*_iter390)); } xfer += oprot->writeListEnd(); } @@ -8666,10 +8666,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*(this->part_vals)).size())); - std::vector ::const_iterator _iter385; - for (_iter385 = (*(this->part_vals)).begin(); _iter385 != (*(this->part_vals)).end(); ++_iter385) + std::vector ::const_iterator _iter391; + for (_iter391 = (*(this->part_vals)).begin(); _iter391 != (*(this->part_vals)).end(); ++_iter391) { - xfer += oprot->writeString((*_iter385)); + xfer += oprot->writeString((*_iter391)); } xfer += oprot->writeListEnd(); } @@ -8683,10 +8683,10 @@ xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 6); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*(this->group_names)).size())); - std::vector ::const_iterator _iter386; - for (_iter386 = (*(this->group_names)).begin(); _iter386 != (*(this->group_names)).end(); ++_iter386) + std::vector ::const_iterator _iter392; + for (_iter392 = (*(this->group_names)).begin(); _iter392 != (*(this->group_names)).end(); ++_iter392) { - xfer += oprot->writeString((*_iter386)); + xfer += oprot->writeString((*_iter392)); } xfer += oprot->writeListEnd(); } @@ -8720,14 +8720,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size387; - ::apache::thrift::protocol::TType _etype390; - iprot->readListBegin(_etype390, _size387); - this->success.resize(_size387); - uint32_t _i391; - for (_i391 = 0; _i391 < _size387; ++_i391) + uint32_t _size393; + ::apache::thrift::protocol::TType _etype396; + iprot->readListBegin(_etype396, _size393); + this->success.resize(_size393); + uint32_t _i397; + for (_i397 = 0; _i397 < _size393; ++_i397) { - xfer += this->success[_i391].read(iprot); + xfer += this->success[_i397].read(iprot); } iprot->readListEnd(); } @@ -8774,10 +8774,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->success.size())); - std::vector ::const_iterator _iter392; - for (_iter392 = this->success.begin(); _iter392 != this->success.end(); ++_iter392) + std::vector ::const_iterator _iter398; + for (_iter398 = this->success.begin(); _iter398 != this->success.end(); ++_iter398) { - xfer += (*_iter392).write(oprot); + xfer += (*_iter398).write(oprot); } xfer += oprot->writeListEnd(); } @@ -8820,14 +8820,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size393; - ::apache::thrift::protocol::TType _etype396; - iprot->readListBegin(_etype396, _size393); - (*(this->success)).resize(_size393); - uint32_t _i397; - for (_i397 = 0; _i397 < _size393; ++_i397) + uint32_t _size399; + ::apache::thrift::protocol::TType _etype402; + iprot->readListBegin(_etype402, _size399); + (*(this->success)).resize(_size399); + uint32_t _i403; + for (_i403 = 0; _i403 < _size399; ++_i403) { - xfer += (*(this->success))[_i397].read(iprot); + xfer += (*(this->success))[_i403].read(iprot); } iprot->readListEnd(); } @@ -8904,14 +8904,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size398; - ::apache::thrift::protocol::TType _etype401; - iprot->readListBegin(_etype401, _size398); - this->part_vals.resize(_size398); - uint32_t _i402; - for (_i402 = 0; _i402 < _size398; ++_i402) + uint32_t _size404; + ::apache::thrift::protocol::TType _etype407; + iprot->readListBegin(_etype407, _size404); + this->part_vals.resize(_size404); + uint32_t _i408; + for (_i408 = 0; _i408 < _size404; ++_i408) { - xfer += iprot->readString(this->part_vals[_i402]); + xfer += iprot->readString(this->part_vals[_i408]); } iprot->readListEnd(); } @@ -8952,10 +8952,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->part_vals.size())); - std::vector ::const_iterator _iter403; - for (_iter403 = this->part_vals.begin(); _iter403 != this->part_vals.end(); ++_iter403) + std::vector ::const_iterator _iter409; + for (_iter409 = this->part_vals.begin(); _iter409 != this->part_vals.end(); ++_iter409) { - xfer += oprot->writeString((*_iter403)); + xfer += oprot->writeString((*_iter409)); } xfer += oprot->writeListEnd(); } @@ -8980,10 +8980,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*(this->part_vals)).size())); - std::vector ::const_iterator _iter404; - for (_iter404 = (*(this->part_vals)).begin(); _iter404 != (*(this->part_vals)).end(); ++_iter404) + std::vector ::const_iterator _iter410; + for (_iter410 = (*(this->part_vals)).begin(); _iter410 != (*(this->part_vals)).end(); ++_iter410) { - xfer += oprot->writeString((*_iter404)); + xfer += oprot->writeString((*_iter410)); } xfer += oprot->writeListEnd(); } @@ -9020,14 +9020,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size405; - ::apache::thrift::protocol::TType _etype408; - iprot->readListBegin(_etype408, _size405); - this->success.resize(_size405); - uint32_t _i409; - for (_i409 = 0; _i409 < _size405; ++_i409) + uint32_t _size411; + ::apache::thrift::protocol::TType _etype414; + iprot->readListBegin(_etype414, _size411); + this->success.resize(_size411); + uint32_t _i415; + for (_i415 = 0; _i415 < _size411; ++_i415) { - xfer += iprot->readString(this->success[_i409]); + xfer += iprot->readString(this->success[_i415]); } iprot->readListEnd(); } @@ -9074,10 +9074,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->success.size())); - std::vector ::const_iterator _iter410; - for (_iter410 = this->success.begin(); _iter410 != this->success.end(); ++_iter410) + std::vector ::const_iterator _iter416; + for (_iter416 = this->success.begin(); _iter416 != this->success.end(); ++_iter416) { - xfer += oprot->writeString((*_iter410)); + xfer += oprot->writeString((*_iter416)); } xfer += oprot->writeListEnd(); } @@ -9120,14 +9120,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size411; - ::apache::thrift::protocol::TType _etype414; - iprot->readListBegin(_etype414, _size411); - (*(this->success)).resize(_size411); - uint32_t _i415; - for (_i415 = 0; _i415 < _size411; ++_i415) + uint32_t _size417; + ::apache::thrift::protocol::TType _etype420; + iprot->readListBegin(_etype420, _size417); + (*(this->success)).resize(_size417); + uint32_t _i421; + for (_i421 = 0; _i421 < _size417; ++_i421) { - xfer += iprot->readString((*(this->success))[_i415]); + xfer += iprot->readString((*(this->success))[_i421]); } iprot->readListEnd(); } @@ -9292,14 +9292,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size416; - ::apache::thrift::protocol::TType _etype419; - iprot->readListBegin(_etype419, _size416); - this->success.resize(_size416); - uint32_t _i420; - for (_i420 = 0; _i420 < _size416; ++_i420) + uint32_t _size422; + ::apache::thrift::protocol::TType _etype425; + iprot->readListBegin(_etype425, _size422); + this->success.resize(_size422); + uint32_t _i426; + for (_i426 = 0; _i426 < _size422; ++_i426) { - xfer += this->success[_i420].read(iprot); + xfer += this->success[_i426].read(iprot); } iprot->readListEnd(); } @@ -9346,10 +9346,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->success.size())); - std::vector ::const_iterator _iter421; - for (_iter421 = this->success.begin(); _iter421 != this->success.end(); ++_iter421) + std::vector ::const_iterator _iter427; + for (_iter427 = this->success.begin(); _iter427 != this->success.end(); ++_iter427) { - xfer += (*_iter421).write(oprot); + xfer += (*_iter427).write(oprot); } xfer += oprot->writeListEnd(); } @@ -9392,14 +9392,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size422; - ::apache::thrift::protocol::TType _etype425; - iprot->readListBegin(_etype425, _size422); - (*(this->success)).resize(_size422); - uint32_t _i426; - for (_i426 = 0; _i426 < _size422; ++_i426) + uint32_t _size428; + ::apache::thrift::protocol::TType _etype431; + iprot->readListBegin(_etype431, _size428); + (*(this->success)).resize(_size428); + uint32_t _i432; + for (_i432 = 0; _i432 < _size428; ++_i432) { - xfer += (*(this->success))[_i426].read(iprot); + xfer += (*(this->success))[_i432].read(iprot); } iprot->readListEnd(); } @@ -9476,14 +9476,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->names.clear(); - uint32_t _size427; - ::apache::thrift::protocol::TType _etype430; - iprot->readListBegin(_etype430, _size427); - this->names.resize(_size427); - uint32_t _i431; - for (_i431 = 0; _i431 < _size427; ++_i431) + uint32_t _size433; + ::apache::thrift::protocol::TType _etype436; + iprot->readListBegin(_etype436, _size433); + this->names.resize(_size433); + uint32_t _i437; + for (_i437 = 0; _i437 < _size433; ++_i437) { - xfer += iprot->readString(this->names[_i431]); + xfer += iprot->readString(this->names[_i437]); } iprot->readListEnd(); } @@ -9516,10 +9516,10 @@ xfer += oprot->writeFieldBegin("names", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->names.size())); - std::vector ::const_iterator _iter432; - for (_iter432 = this->names.begin(); _iter432 != this->names.end(); ++_iter432) + std::vector ::const_iterator _iter438; + for (_iter438 = this->names.begin(); _iter438 != this->names.end(); ++_iter438) { - xfer += oprot->writeString((*_iter432)); + xfer += oprot->writeString((*_iter438)); } xfer += oprot->writeListEnd(); } @@ -9541,10 +9541,10 @@ xfer += oprot->writeFieldBegin("names", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*(this->names)).size())); - std::vector ::const_iterator _iter433; - for (_iter433 = (*(this->names)).begin(); _iter433 != (*(this->names)).end(); ++_iter433) + std::vector ::const_iterator _iter439; + for (_iter439 = (*(this->names)).begin(); _iter439 != (*(this->names)).end(); ++_iter439) { - xfer += oprot->writeString((*_iter433)); + xfer += oprot->writeString((*_iter439)); } xfer += oprot->writeListEnd(); } @@ -9578,14 +9578,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size434; - ::apache::thrift::protocol::TType _etype437; - iprot->readListBegin(_etype437, _size434); - this->success.resize(_size434); - uint32_t _i438; - for (_i438 = 0; _i438 < _size434; ++_i438) + uint32_t _size440; + ::apache::thrift::protocol::TType _etype443; + iprot->readListBegin(_etype443, _size440); + this->success.resize(_size440); + uint32_t _i444; + for (_i444 = 0; _i444 < _size440; ++_i444) { - xfer += this->success[_i438].read(iprot); + xfer += this->success[_i444].read(iprot); } iprot->readListEnd(); } @@ -9632,10 +9632,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->success.size())); - std::vector ::const_iterator _iter439; - for (_iter439 = this->success.begin(); _iter439 != this->success.end(); ++_iter439) + std::vector ::const_iterator _iter445; + for (_iter445 = this->success.begin(); _iter445 != this->success.end(); ++_iter445) { - xfer += (*_iter439).write(oprot); + xfer += (*_iter445).write(oprot); } xfer += oprot->writeListEnd(); } @@ -9678,14 +9678,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size440; - ::apache::thrift::protocol::TType _etype443; - iprot->readListBegin(_etype443, _size440); - (*(this->success)).resize(_size440); - uint32_t _i444; - for (_i444 = 0; _i444 < _size440; ++_i444) + uint32_t _size446; + ::apache::thrift::protocol::TType _etype449; + iprot->readListBegin(_etype449, _size446); + (*(this->success)).resize(_size446); + uint32_t _i450; + for (_i450 = 0; _i450 < _size446; ++_i450) { - xfer += (*(this->success))[_i444].read(iprot); + xfer += (*(this->success))[_i450].read(iprot); } iprot->readListEnd(); } @@ -10188,14 +10188,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size445; - ::apache::thrift::protocol::TType _etype448; - iprot->readListBegin(_etype448, _size445); - this->part_vals.resize(_size445); - uint32_t _i449; - for (_i449 = 0; _i449 < _size445; ++_i449) + uint32_t _size451; + ::apache::thrift::protocol::TType _etype454; + iprot->readListBegin(_etype454, _size451); + this->part_vals.resize(_size451); + uint32_t _i455; + for (_i455 = 0; _i455 < _size451; ++_i455) { - xfer += iprot->readString(this->part_vals[_i449]); + xfer += iprot->readString(this->part_vals[_i455]); } iprot->readListEnd(); } @@ -10236,10 +10236,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->part_vals.size())); - std::vector ::const_iterator _iter450; - for (_iter450 = this->part_vals.begin(); _iter450 != this->part_vals.end(); ++_iter450) + std::vector ::const_iterator _iter456; + for (_iter456 = this->part_vals.begin(); _iter456 != this->part_vals.end(); ++_iter456) { - xfer += oprot->writeString((*_iter450)); + xfer += oprot->writeString((*_iter456)); } xfer += oprot->writeListEnd(); } @@ -10264,10 +10264,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*(this->part_vals)).size())); - std::vector ::const_iterator _iter451; - for (_iter451 = (*(this->part_vals)).begin(); _iter451 != (*(this->part_vals)).end(); ++_iter451) + std::vector ::const_iterator _iter457; + for (_iter457 = (*(this->part_vals)).begin(); _iter457 != (*(this->part_vals)).end(); ++_iter457) { - xfer += oprot->writeString((*_iter451)); + xfer += oprot->writeString((*_iter457)); } xfer += oprot->writeListEnd(); } @@ -10674,14 +10674,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size452; - ::apache::thrift::protocol::TType _etype455; - iprot->readListBegin(_etype455, _size452); - this->success.resize(_size452); - uint32_t _i456; - for (_i456 = 0; _i456 < _size452; ++_i456) + uint32_t _size458; + ::apache::thrift::protocol::TType _etype461; + iprot->readListBegin(_etype461, _size458); + this->success.resize(_size458); + uint32_t _i462; + for (_i462 = 0; _i462 < _size458; ++_i462) { - xfer += iprot->readString(this->success[_i456]); + xfer += iprot->readString(this->success[_i462]); } iprot->readListEnd(); } @@ -10720,10 +10720,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->success.size())); - std::vector ::const_iterator _iter457; - for (_iter457 = this->success.begin(); _iter457 != this->success.end(); ++_iter457) + std::vector ::const_iterator _iter463; + for (_iter463 = this->success.begin(); _iter463 != this->success.end(); ++_iter463) { - xfer += oprot->writeString((*_iter457)); + xfer += oprot->writeString((*_iter463)); } xfer += oprot->writeListEnd(); } @@ -10762,14 +10762,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size458; - ::apache::thrift::protocol::TType _etype461; - iprot->readListBegin(_etype461, _size458); - (*(this->success)).resize(_size458); - uint32_t _i462; - for (_i462 = 0; _i462 < _size458; ++_i462) + uint32_t _size464; + ::apache::thrift::protocol::TType _etype467; + iprot->readListBegin(_etype467, _size464); + (*(this->success)).resize(_size464); + uint32_t _i468; + for (_i468 = 0; _i468 < _size464; ++_i468) { - xfer += iprot->readString((*(this->success))[_i462]); + xfer += iprot->readString((*(this->success))[_i468]); } iprot->readListEnd(); } @@ -10884,17 +10884,17 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { this->success.clear(); - uint32_t _size463; - ::apache::thrift::protocol::TType _ktype464; - ::apache::thrift::protocol::TType _vtype465; - iprot->readMapBegin(_ktype464, _vtype465, _size463); - uint32_t _i467; - for (_i467 = 0; _i467 < _size463; ++_i467) + uint32_t _size469; + ::apache::thrift::protocol::TType _ktype470; + ::apache::thrift::protocol::TType _vtype471; + iprot->readMapBegin(_ktype470, _vtype471, _size469); + uint32_t _i473; + for (_i473 = 0; _i473 < _size469; ++_i473) { - std::string _key468; - xfer += iprot->readString(_key468); - std::string& _val469 = this->success[_key468]; - xfer += iprot->readString(_val469); + std::string _key474; + xfer += iprot->readString(_key474); + std::string& _val475 = this->success[_key474]; + xfer += iprot->readString(_val475); } iprot->readMapEnd(); } @@ -10933,11 +10933,11 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_MAP, 0); { xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast(this->success.size())); - std::map ::const_iterator _iter470; - for (_iter470 = this->success.begin(); _iter470 != this->success.end(); ++_iter470) + std::map ::const_iterator _iter476; + for (_iter476 = this->success.begin(); _iter476 != this->success.end(); ++_iter476) { - xfer += oprot->writeString(_iter470->first); - xfer += oprot->writeString(_iter470->second); + xfer += oprot->writeString(_iter476->first); + xfer += oprot->writeString(_iter476->second); } xfer += oprot->writeMapEnd(); } @@ -10976,17 +10976,17 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { (*(this->success)).clear(); - uint32_t _size471; - ::apache::thrift::protocol::TType _ktype472; - ::apache::thrift::protocol::TType _vtype473; - iprot->readMapBegin(_ktype472, _vtype473, _size471); - uint32_t _i475; - for (_i475 = 0; _i475 < _size471; ++_i475) + uint32_t _size477; + ::apache::thrift::protocol::TType _ktype478; + ::apache::thrift::protocol::TType _vtype479; + iprot->readMapBegin(_ktype478, _vtype479, _size477); + uint32_t _i481; + for (_i481 = 0; _i481 < _size477; ++_i481) { - std::string _key476; - xfer += iprot->readString(_key476); - std::string& _val477 = (*(this->success))[_key476]; - xfer += iprot->readString(_val477); + std::string _key482; + xfer += iprot->readString(_key482); + std::string& _val483 = (*(this->success))[_key482]; + xfer += iprot->readString(_val483); } iprot->readMapEnd(); } @@ -11055,17 +11055,17 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { this->part_vals.clear(); - uint32_t _size478; - ::apache::thrift::protocol::TType _ktype479; - ::apache::thrift::protocol::TType _vtype480; - iprot->readMapBegin(_ktype479, _vtype480, _size478); - uint32_t _i482; - for (_i482 = 0; _i482 < _size478; ++_i482) + uint32_t _size484; + ::apache::thrift::protocol::TType _ktype485; + ::apache::thrift::protocol::TType _vtype486; + iprot->readMapBegin(_ktype485, _vtype486, _size484); + uint32_t _i488; + for (_i488 = 0; _i488 < _size484; ++_i488) { - std::string _key483; - xfer += iprot->readString(_key483); - std::string& _val484 = this->part_vals[_key483]; - xfer += iprot->readString(_val484); + std::string _key489; + xfer += iprot->readString(_key489); + std::string& _val490 = this->part_vals[_key489]; + xfer += iprot->readString(_val490); } iprot->readMapEnd(); } @@ -11076,9 +11076,9 @@ break; case 4: if (ftype == ::apache::thrift::protocol::T_I32) { - int32_t ecast485; - xfer += iprot->readI32(ecast485); - this->eventType = (PartitionEventType::type)ecast485; + int32_t ecast491; + xfer += iprot->readI32(ecast491); + this->eventType = (PartitionEventType::type)ecast491; this->__isset.eventType = true; } else { xfer += iprot->skip(ftype); @@ -11108,11 +11108,11 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_MAP, 3); { xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast(this->part_vals.size())); - std::map ::const_iterator _iter486; - for (_iter486 = this->part_vals.begin(); _iter486 != this->part_vals.end(); ++_iter486) + std::map ::const_iterator _iter492; + for (_iter492 = this->part_vals.begin(); _iter492 != this->part_vals.end(); ++_iter492) { - xfer += oprot->writeString(_iter486->first); - xfer += oprot->writeString(_iter486->second); + xfer += oprot->writeString(_iter492->first); + xfer += oprot->writeString(_iter492->second); } xfer += oprot->writeMapEnd(); } @@ -11137,11 +11137,11 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_MAP, 3); { xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast((*(this->part_vals)).size())); - std::map ::const_iterator _iter487; - for (_iter487 = (*(this->part_vals)).begin(); _iter487 != (*(this->part_vals)).end(); ++_iter487) + std::map ::const_iterator _iter493; + for (_iter493 = (*(this->part_vals)).begin(); _iter493 != (*(this->part_vals)).end(); ++_iter493) { - xfer += oprot->writeString(_iter487->first); - xfer += oprot->writeString(_iter487->second); + xfer += oprot->writeString(_iter493->first); + xfer += oprot->writeString(_iter493->second); } xfer += oprot->writeMapEnd(); } @@ -11390,17 +11390,17 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { this->part_vals.clear(); - uint32_t _size488; - ::apache::thrift::protocol::TType _ktype489; - ::apache::thrift::protocol::TType _vtype490; - iprot->readMapBegin(_ktype489, _vtype490, _size488); - uint32_t _i492; - for (_i492 = 0; _i492 < _size488; ++_i492) + uint32_t _size494; + ::apache::thrift::protocol::TType _ktype495; + ::apache::thrift::protocol::TType _vtype496; + iprot->readMapBegin(_ktype495, _vtype496, _size494); + uint32_t _i498; + for (_i498 = 0; _i498 < _size494; ++_i498) { - std::string _key493; - xfer += iprot->readString(_key493); - std::string& _val494 = this->part_vals[_key493]; - xfer += iprot->readString(_val494); + std::string _key499; + xfer += iprot->readString(_key499); + std::string& _val500 = this->part_vals[_key499]; + xfer += iprot->readString(_val500); } iprot->readMapEnd(); } @@ -11411,9 +11411,9 @@ break; case 4: if (ftype == ::apache::thrift::protocol::T_I32) { - int32_t ecast495; - xfer += iprot->readI32(ecast495); - this->eventType = (PartitionEventType::type)ecast495; + int32_t ecast501; + xfer += iprot->readI32(ecast501); + this->eventType = (PartitionEventType::type)ecast501; this->__isset.eventType = true; } else { xfer += iprot->skip(ftype); @@ -11443,11 +11443,11 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_MAP, 3); { xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast(this->part_vals.size())); - std::map ::const_iterator _iter496; - for (_iter496 = this->part_vals.begin(); _iter496 != this->part_vals.end(); ++_iter496) + std::map ::const_iterator _iter502; + for (_iter502 = this->part_vals.begin(); _iter502 != this->part_vals.end(); ++_iter502) { - xfer += oprot->writeString(_iter496->first); - xfer += oprot->writeString(_iter496->second); + xfer += oprot->writeString(_iter502->first); + xfer += oprot->writeString(_iter502->second); } xfer += oprot->writeMapEnd(); } @@ -11472,11 +11472,11 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_MAP, 3); { xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast((*(this->part_vals)).size())); - std::map ::const_iterator _iter497; - for (_iter497 = (*(this->part_vals)).begin(); _iter497 != (*(this->part_vals)).end(); ++_iter497) + std::map ::const_iterator _iter503; + for (_iter503 = (*(this->part_vals)).begin(); _iter503 != (*(this->part_vals)).end(); ++_iter503) { - xfer += oprot->writeString(_iter497->first); - xfer += oprot->writeString(_iter497->second); + xfer += oprot->writeString(_iter503->first); + xfer += oprot->writeString(_iter503->second); } xfer += oprot->writeMapEnd(); } @@ -12737,14 +12737,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size498; - ::apache::thrift::protocol::TType _etype501; - iprot->readListBegin(_etype501, _size498); - this->success.resize(_size498); - uint32_t _i502; - for (_i502 = 0; _i502 < _size498; ++_i502) + uint32_t _size504; + ::apache::thrift::protocol::TType _etype507; + iprot->readListBegin(_etype507, _size504); + this->success.resize(_size504); + uint32_t _i508; + for (_i508 = 0; _i508 < _size504; ++_i508) { - xfer += this->success[_i502].read(iprot); + xfer += this->success[_i508].read(iprot); } iprot->readListEnd(); } @@ -12791,10 +12791,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->success.size())); - std::vector ::const_iterator _iter503; - for (_iter503 = this->success.begin(); _iter503 != this->success.end(); ++_iter503) + std::vector ::const_iterator _iter509; + for (_iter509 = this->success.begin(); _iter509 != this->success.end(); ++_iter509) { - xfer += (*_iter503).write(oprot); + xfer += (*_iter509).write(oprot); } xfer += oprot->writeListEnd(); } @@ -12837,14 +12837,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size504; - ::apache::thrift::protocol::TType _etype507; - iprot->readListBegin(_etype507, _size504); - (*(this->success)).resize(_size504); - uint32_t _i508; - for (_i508 = 0; _i508 < _size504; ++_i508) + uint32_t _size510; + ::apache::thrift::protocol::TType _etype513; + iprot->readListBegin(_etype513, _size510); + (*(this->success)).resize(_size510); + uint32_t _i514; + for (_i514 = 0; _i514 < _size510; ++_i514) { - xfer += (*(this->success))[_i508].read(iprot); + xfer += (*(this->success))[_i514].read(iprot); } iprot->readListEnd(); } @@ -12995,14 +12995,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size509; - ::apache::thrift::protocol::TType _etype512; - iprot->readListBegin(_etype512, _size509); - this->success.resize(_size509); - uint32_t _i513; - for (_i513 = 0; _i513 < _size509; ++_i513) + uint32_t _size515; + ::apache::thrift::protocol::TType _etype518; + iprot->readListBegin(_etype518, _size515); + this->success.resize(_size515); + uint32_t _i519; + for (_i519 = 0; _i519 < _size515; ++_i519) { - xfer += iprot->readString(this->success[_i513]); + xfer += iprot->readString(this->success[_i519]); } iprot->readListEnd(); } @@ -13041,10 +13041,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->success.size())); - std::vector ::const_iterator _iter514; - for (_iter514 = this->success.begin(); _iter514 != this->success.end(); ++_iter514) + std::vector ::const_iterator _iter520; + for (_iter520 = this->success.begin(); _iter520 != this->success.end(); ++_iter520) { - xfer += oprot->writeString((*_iter514)); + xfer += oprot->writeString((*_iter520)); } xfer += oprot->writeListEnd(); } @@ -13083,14 +13083,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size515; - ::apache::thrift::protocol::TType _etype518; - iprot->readListBegin(_etype518, _size515); - (*(this->success)).resize(_size515); - uint32_t _i519; - for (_i519 = 0; _i519 < _size515; ++_i519) + uint32_t _size521; + ::apache::thrift::protocol::TType _etype524; + iprot->readListBegin(_etype524, _size521); + (*(this->success)).resize(_size521); + uint32_t _i525; + for (_i525 = 0; _i525 < _size521; ++_i525) { - xfer += iprot->readString((*(this->success))[_i519]); + xfer += iprot->readString((*(this->success))[_i525]); } iprot->readListEnd(); } @@ -13547,14 +13547,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size520; - ::apache::thrift::protocol::TType _etype523; - iprot->readListBegin(_etype523, _size520); - this->success.resize(_size520); - uint32_t _i524; - for (_i524 = 0; _i524 < _size520; ++_i524) + uint32_t _size526; + ::apache::thrift::protocol::TType _etype529; + iprot->readListBegin(_etype529, _size526); + this->success.resize(_size526); + uint32_t _i530; + for (_i530 = 0; _i530 < _size526; ++_i530) { - xfer += iprot->readString(this->success[_i524]); + xfer += iprot->readString(this->success[_i530]); } iprot->readListEnd(); } @@ -13593,10 +13593,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->success.size())); - std::vector ::const_iterator _iter525; - for (_iter525 = this->success.begin(); _iter525 != this->success.end(); ++_iter525) + std::vector ::const_iterator _iter531; + for (_iter531 = this->success.begin(); _iter531 != this->success.end(); ++_iter531) { - xfer += oprot->writeString((*_iter525)); + xfer += oprot->writeString((*_iter531)); } xfer += oprot->writeListEnd(); } @@ -13635,14 +13635,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size526; - ::apache::thrift::protocol::TType _etype529; - iprot->readListBegin(_etype529, _size526); - (*(this->success)).resize(_size526); - uint32_t _i530; - for (_i530 = 0; _i530 < _size526; ++_i530) + uint32_t _size532; + ::apache::thrift::protocol::TType _etype535; + iprot->readListBegin(_etype535, _size532); + (*(this->success)).resize(_size532); + uint32_t _i536; + for (_i536 = 0; _i536 < _size532; ++_i536) { - xfer += iprot->readString((*(this->success))[_i530]); + xfer += iprot->readString((*(this->success))[_i536]); } iprot->readListEnd(); } @@ -13709,9 +13709,9 @@ break; case 3: if (ftype == ::apache::thrift::protocol::T_I32) { - int32_t ecast531; - xfer += iprot->readI32(ecast531); - this->principal_type = (PrincipalType::type)ecast531; + int32_t ecast537; + xfer += iprot->readI32(ecast537); + this->principal_type = (PrincipalType::type)ecast537; this->__isset.principal_type = true; } else { xfer += iprot->skip(ftype); @@ -13727,9 +13727,9 @@ break; case 5: if (ftype == ::apache::thrift::protocol::T_I32) { - int32_t ecast532; - xfer += iprot->readI32(ecast532); - this->grantorType = (PrincipalType::type)ecast532; + int32_t ecast538; + xfer += iprot->readI32(ecast538); + this->grantorType = (PrincipalType::type)ecast538; this->__isset.grantorType = true; } else { xfer += iprot->skip(ftype); @@ -13961,9 +13961,9 @@ break; case 3: if (ftype == ::apache::thrift::protocol::T_I32) { - int32_t ecast533; - xfer += iprot->readI32(ecast533); - this->principal_type = (PrincipalType::type)ecast533; + int32_t ecast539; + xfer += iprot->readI32(ecast539); + this->principal_type = (PrincipalType::type)ecast539; this->__isset.principal_type = true; } else { xfer += iprot->skip(ftype); @@ -14161,9 +14161,9 @@ break; case 2: if (ftype == ::apache::thrift::protocol::T_I32) { - int32_t ecast534; - xfer += iprot->readI32(ecast534); - this->principal_type = (PrincipalType::type)ecast534; + int32_t ecast540; + xfer += iprot->readI32(ecast540); + this->principal_type = (PrincipalType::type)ecast540; this->__isset.principal_type = true; } else { xfer += iprot->skip(ftype); @@ -14233,14 +14233,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size535; - ::apache::thrift::protocol::TType _etype538; - iprot->readListBegin(_etype538, _size535); - this->success.resize(_size535); - uint32_t _i539; - for (_i539 = 0; _i539 < _size535; ++_i539) + uint32_t _size541; + ::apache::thrift::protocol::TType _etype544; + iprot->readListBegin(_etype544, _size541); + this->success.resize(_size541); + uint32_t _i545; + for (_i545 = 0; _i545 < _size541; ++_i545) { - xfer += this->success[_i539].read(iprot); + xfer += this->success[_i545].read(iprot); } iprot->readListEnd(); } @@ -14279,10 +14279,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->success.size())); - std::vector ::const_iterator _iter540; - for (_iter540 = this->success.begin(); _iter540 != this->success.end(); ++_iter540) + std::vector ::const_iterator _iter546; + for (_iter546 = this->success.begin(); _iter546 != this->success.end(); ++_iter546) { - xfer += (*_iter540).write(oprot); + xfer += (*_iter546).write(oprot); } xfer += oprot->writeListEnd(); } @@ -14321,14 +14321,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size541; - ::apache::thrift::protocol::TType _etype544; - iprot->readListBegin(_etype544, _size541); - (*(this->success)).resize(_size541); - uint32_t _i545; - for (_i545 = 0; _i545 < _size541; ++_i545) + uint32_t _size547; + ::apache::thrift::protocol::TType _etype550; + iprot->readListBegin(_etype550, _size547); + (*(this->success)).resize(_size547); + uint32_t _i551; + for (_i551 = 0; _i551 < _size547; ++_i551) { - xfer += (*(this->success))[_i545].read(iprot); + xfer += (*(this->success))[_i551].read(iprot); } iprot->readListEnd(); } @@ -14397,14 +14397,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->group_names.clear(); - uint32_t _size546; - ::apache::thrift::protocol::TType _etype549; - iprot->readListBegin(_etype549, _size546); - this->group_names.resize(_size546); - uint32_t _i550; - for (_i550 = 0; _i550 < _size546; ++_i550) + uint32_t _size552; + ::apache::thrift::protocol::TType _etype555; + iprot->readListBegin(_etype555, _size552); + this->group_names.resize(_size552); + uint32_t _i556; + for (_i556 = 0; _i556 < _size552; ++_i556) { - xfer += iprot->readString(this->group_names[_i550]); + xfer += iprot->readString(this->group_names[_i556]); } iprot->readListEnd(); } @@ -14437,10 +14437,10 @@ xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->group_names.size())); - std::vector ::const_iterator _iter551; - for (_iter551 = this->group_names.begin(); _iter551 != this->group_names.end(); ++_iter551) + std::vector ::const_iterator _iter557; + for (_iter557 = this->group_names.begin(); _iter557 != this->group_names.end(); ++_iter557) { - xfer += oprot->writeString((*_iter551)); + xfer += oprot->writeString((*_iter557)); } xfer += oprot->writeListEnd(); } @@ -14462,10 +14462,10 @@ xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*(this->group_names)).size())); - std::vector ::const_iterator _iter552; - for (_iter552 = (*(this->group_names)).begin(); _iter552 != (*(this->group_names)).end(); ++_iter552) + std::vector ::const_iterator _iter558; + for (_iter558 = (*(this->group_names)).begin(); _iter558 != (*(this->group_names)).end(); ++_iter558) { - xfer += oprot->writeString((*_iter552)); + xfer += oprot->writeString((*_iter558)); } xfer += oprot->writeListEnd(); } @@ -14621,9 +14621,9 @@ break; case 2: if (ftype == ::apache::thrift::protocol::T_I32) { - int32_t ecast553; - xfer += iprot->readI32(ecast553); - this->principal_type = (PrincipalType::type)ecast553; + int32_t ecast559; + xfer += iprot->readI32(ecast559); + this->principal_type = (PrincipalType::type)ecast559; this->__isset.principal_type = true; } else { xfer += iprot->skip(ftype); @@ -14707,14 +14707,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size554; - ::apache::thrift::protocol::TType _etype557; - iprot->readListBegin(_etype557, _size554); - this->success.resize(_size554); - uint32_t _i558; - for (_i558 = 0; _i558 < _size554; ++_i558) + uint32_t _size560; + ::apache::thrift::protocol::TType _etype563; + iprot->readListBegin(_etype563, _size560); + this->success.resize(_size560); + uint32_t _i564; + for (_i564 = 0; _i564 < _size560; ++_i564) { - xfer += this->success[_i558].read(iprot); + xfer += this->success[_i564].read(iprot); } iprot->readListEnd(); } @@ -14753,10 +14753,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->success.size())); - std::vector ::const_iterator _iter559; - for (_iter559 = this->success.begin(); _iter559 != this->success.end(); ++_iter559) + std::vector ::const_iterator _iter565; + for (_iter565 = this->success.begin(); _iter565 != this->success.end(); ++_iter565) { - xfer += (*_iter559).write(oprot); + xfer += (*_iter565).write(oprot); } xfer += oprot->writeListEnd(); } @@ -14795,14 +14795,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size560; - ::apache::thrift::protocol::TType _etype563; - iprot->readListBegin(_etype563, _size560); - (*(this->success)).resize(_size560); - uint32_t _i564; - for (_i564 = 0; _i564 < _size560; ++_i564) + uint32_t _size566; + ::apache::thrift::protocol::TType _etype569; + iprot->readListBegin(_etype569, _size566); + (*(this->success)).resize(_size566); + uint32_t _i570; + for (_i570 = 0; _i570 < _size566; ++_i570) { - xfer += (*(this->success))[_i564].read(iprot); + xfer += (*(this->success))[_i570].read(iprot); } iprot->readListEnd(); } @@ -15219,14 +15219,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->group_names.clear(); - uint32_t _size565; - ::apache::thrift::protocol::TType _etype568; - iprot->readListBegin(_etype568, _size565); - this->group_names.resize(_size565); - uint32_t _i569; - for (_i569 = 0; _i569 < _size565; ++_i569) + uint32_t _size571; + ::apache::thrift::protocol::TType _etype574; + iprot->readListBegin(_etype574, _size571); + this->group_names.resize(_size571); + uint32_t _i575; + for (_i575 = 0; _i575 < _size571; ++_i575) { - xfer += iprot->readString(this->group_names[_i569]); + xfer += iprot->readString(this->group_names[_i575]); } iprot->readListEnd(); } @@ -15256,10 +15256,10 @@ xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 2); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->group_names.size())); - std::vector ::const_iterator _iter570; - for (_iter570 = this->group_names.begin(); _iter570 != this->group_names.end(); ++_iter570) + std::vector ::const_iterator _iter576; + for (_iter576 = this->group_names.begin(); _iter576 != this->group_names.end(); ++_iter576) { - xfer += oprot->writeString((*_iter570)); + xfer += oprot->writeString((*_iter576)); } xfer += oprot->writeListEnd(); } @@ -15278,10 +15278,10 @@ xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 2); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*(this->group_names)).size())); - std::vector ::const_iterator _iter571; - for (_iter571 = (*(this->group_names)).begin(); _iter571 != (*(this->group_names)).end(); ++_iter571) + std::vector ::const_iterator _iter577; + for (_iter577 = (*(this->group_names)).begin(); _iter577 != (*(this->group_names)).end(); ++_iter577) { - xfer += oprot->writeString((*_iter571)); + xfer += oprot->writeString((*_iter577)); } xfer += oprot->writeListEnd(); } @@ -15315,14 +15315,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size572; - ::apache::thrift::protocol::TType _etype575; - iprot->readListBegin(_etype575, _size572); - this->success.resize(_size572); - uint32_t _i576; - for (_i576 = 0; _i576 < _size572; ++_i576) + uint32_t _size578; + ::apache::thrift::protocol::TType _etype581; + iprot->readListBegin(_etype581, _size578); + this->success.resize(_size578); + uint32_t _i582; + for (_i582 = 0; _i582 < _size578; ++_i582) { - xfer += iprot->readString(this->success[_i576]); + xfer += iprot->readString(this->success[_i582]); } iprot->readListEnd(); } @@ -15361,10 +15361,10 @@ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->success.size())); - std::vector ::const_iterator _iter577; - for (_iter577 = this->success.begin(); _iter577 != this->success.end(); ++_iter577) + std::vector ::const_iterator _iter583; + for (_iter583 = this->success.begin(); _iter583 != this->success.end(); ++_iter583) { - xfer += oprot->writeString((*_iter577)); + xfer += oprot->writeString((*_iter583)); } xfer += oprot->writeListEnd(); } @@ -15403,14 +15403,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size578; - ::apache::thrift::protocol::TType _etype581; - iprot->readListBegin(_etype581, _size578); - (*(this->success)).resize(_size578); - uint32_t _i582; - for (_i582 = 0; _i582 < _size578; ++_i582) + uint32_t _size584; + ::apache::thrift::protocol::TType _etype587; + iprot->readListBegin(_etype587, _size584); + (*(this->success)).resize(_size584); + uint32_t _i588; + for (_i588 = 0; _i588 < _size584; ++_i588) { - xfer += iprot->readString((*(this->success))[_i582]); + xfer += iprot->readString((*(this->success))[_i588]); } iprot->readListEnd(); } Index: metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp =================================================================== --- metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp (revision 25657) +++ metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp (working copy) @@ -1490,9 +1490,74 @@ return xfer; } -const char* Table::ascii_fingerprint = "26BE788C09746068A2616712C9262900"; -const uint8_t Table::binary_fingerprint[16] = {0x26,0xBE,0x78,0x8C,0x09,0x74,0x60,0x68,0xA2,0x61,0x67,0x12,0xC9,0x26,0x29,0x00}; +const char* TableIdentifier::ascii_fingerprint = "07A9615F837F7D0A952B595DD3020972"; +const uint8_t TableIdentifier::binary_fingerprint[16] = {0x07,0xA9,0x61,0x5F,0x83,0x7F,0x7D,0x0A,0x95,0x2B,0x59,0x5D,0xD3,0x02,0x09,0x72}; +uint32_t TableIdentifier::read(::apache::thrift::protocol::TProtocol* iprot) { + + uint32_t xfer = 0; + std::string fname; + ::apache::thrift::protocol::TType ftype; + int16_t fid; + + xfer += iprot->readStructBegin(fname); + + using ::apache::thrift::protocol::TProtocolException; + + + while (true) + { + xfer += iprot->readFieldBegin(fname, ftype, fid); + if (ftype == ::apache::thrift::protocol::T_STOP) { + break; + } + switch (fid) + { + case 1: + if (ftype == ::apache::thrift::protocol::T_STRING) { + xfer += iprot->readString(this->dbName); + this->__isset.dbName = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 2: + if (ftype == ::apache::thrift::protocol::T_STRING) { + xfer += iprot->readString(this->tableName); + this->__isset.tableName = true; + } else { + xfer += iprot->skip(ftype); + } + break; + default: + xfer += iprot->skip(ftype); + break; + } + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + return xfer; +} + +uint32_t TableIdentifier::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + xfer += oprot->writeStructBegin("TableIdentifier"); + xfer += oprot->writeFieldBegin("dbName", ::apache::thrift::protocol::T_STRING, 1); + xfer += oprot->writeString(this->dbName); + xfer += oprot->writeFieldEnd(); + xfer += oprot->writeFieldBegin("tableName", ::apache::thrift::protocol::T_STRING, 2); + xfer += oprot->writeString(this->tableName); + xfer += oprot->writeFieldEnd(); + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +const char* Table::ascii_fingerprint = "06C17A4A74B309FF2357999371777D0D"; +const uint8_t Table::binary_fingerprint[16] = {0x06,0xC1,0x7A,0x4A,0x74,0xB3,0x09,0xFF,0x23,0x57,0x99,0x93,0x71,0x77,0x7D,0x0D}; + uint32_t Table::read(::apache::thrift::protocol::TProtocol* iprot) { uint32_t xfer = 0; @@ -1644,6 +1709,34 @@ xfer += iprot->skip(ftype); } break; + case 14: + if (ftype == ::apache::thrift::protocol::T_STRUCT) { + xfer += this->linkTarget.read(iprot); + this->__isset.linkTarget = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 15: + if (ftype == ::apache::thrift::protocol::T_LIST) { + { + this->linkTables.clear(); + uint32_t _size117; + ::apache::thrift::protocol::TType _etype120; + iprot->readListBegin(_etype120, _size117); + this->linkTables.resize(_size117); + uint32_t _i121; + for (_i121 = 0; _i121 < _size117; ++_i121) + { + xfer += this->linkTables[_i121].read(iprot); + } + iprot->readListEnd(); + } + this->__isset.linkTables = true; + } else { + xfer += iprot->skip(ftype); + } + break; default: xfer += iprot->skip(ftype); break; @@ -1683,10 +1776,10 @@ xfer += oprot->writeFieldBegin("partitionKeys", ::apache::thrift::protocol::T_LIST, 8); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->partitionKeys.size())); - std::vector ::const_iterator _iter117; - for (_iter117 = this->partitionKeys.begin(); _iter117 != this->partitionKeys.end(); ++_iter117) + std::vector ::const_iterator _iter122; + for (_iter122 = this->partitionKeys.begin(); _iter122 != this->partitionKeys.end(); ++_iter122) { - xfer += (*_iter117).write(oprot); + xfer += (*_iter122).write(oprot); } xfer += oprot->writeListEnd(); } @@ -1694,11 +1787,11 @@ xfer += oprot->writeFieldBegin("parameters", ::apache::thrift::protocol::T_MAP, 9); { xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast(this->parameters.size())); - std::map ::const_iterator _iter118; - for (_iter118 = this->parameters.begin(); _iter118 != this->parameters.end(); ++_iter118) + std::map ::const_iterator _iter123; + for (_iter123 = this->parameters.begin(); _iter123 != this->parameters.end(); ++_iter123) { - xfer += oprot->writeString(_iter118->first); - xfer += oprot->writeString(_iter118->second); + xfer += oprot->writeString(_iter123->first); + xfer += oprot->writeString(_iter123->second); } xfer += oprot->writeMapEnd(); } @@ -1717,6 +1810,24 @@ xfer += this->privileges.write(oprot); xfer += oprot->writeFieldEnd(); } + if (this->__isset.linkTarget) { + xfer += oprot->writeFieldBegin("linkTarget", ::apache::thrift::protocol::T_STRUCT, 14); + xfer += this->linkTarget.write(oprot); + xfer += oprot->writeFieldEnd(); + } + if (this->__isset.linkTables) { + xfer += oprot->writeFieldBegin("linkTables", ::apache::thrift::protocol::T_LIST, 15); + { + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->linkTables.size())); + std::vector ::const_iterator _iter124; + for (_iter124 = this->linkTables.begin(); _iter124 != this->linkTables.end(); ++_iter124) + { + xfer += (*_iter124).write(oprot); + } + xfer += oprot->writeListEnd(); + } + xfer += oprot->writeFieldEnd(); + } xfer += oprot->writeFieldStop(); xfer += oprot->writeStructEnd(); return xfer; @@ -1749,14 +1860,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->values.clear(); - uint32_t _size119; - ::apache::thrift::protocol::TType _etype122; - iprot->readListBegin(_etype122, _size119); - this->values.resize(_size119); - uint32_t _i123; - for (_i123 = 0; _i123 < _size119; ++_i123) + uint32_t _size125; + ::apache::thrift::protocol::TType _etype128; + iprot->readListBegin(_etype128, _size125); + this->values.resize(_size125); + uint32_t _i129; + for (_i129 = 0; _i129 < _size125; ++_i129) { - xfer += iprot->readString(this->values[_i123]); + xfer += iprot->readString(this->values[_i129]); } iprot->readListEnd(); } @@ -1809,17 +1920,17 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { this->parameters.clear(); - uint32_t _size124; - ::apache::thrift::protocol::TType _ktype125; - ::apache::thrift::protocol::TType _vtype126; - iprot->readMapBegin(_ktype125, _vtype126, _size124); - uint32_t _i128; - for (_i128 = 0; _i128 < _size124; ++_i128) + uint32_t _size130; + ::apache::thrift::protocol::TType _ktype131; + ::apache::thrift::protocol::TType _vtype132; + iprot->readMapBegin(_ktype131, _vtype132, _size130); + uint32_t _i134; + for (_i134 = 0; _i134 < _size130; ++_i134) { - std::string _key129; - xfer += iprot->readString(_key129); - std::string& _val130 = this->parameters[_key129]; - xfer += iprot->readString(_val130); + std::string _key135; + xfer += iprot->readString(_key135); + std::string& _val136 = this->parameters[_key135]; + xfer += iprot->readString(_val136); } iprot->readMapEnd(); } @@ -1854,10 +1965,10 @@ xfer += oprot->writeFieldBegin("values", ::apache::thrift::protocol::T_LIST, 1); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->values.size())); - std::vector ::const_iterator _iter131; - for (_iter131 = this->values.begin(); _iter131 != this->values.end(); ++_iter131) + std::vector ::const_iterator _iter137; + for (_iter137 = this->values.begin(); _iter137 != this->values.end(); ++_iter137) { - xfer += oprot->writeString((*_iter131)); + xfer += oprot->writeString((*_iter137)); } xfer += oprot->writeListEnd(); } @@ -1880,11 +1991,11 @@ xfer += oprot->writeFieldBegin("parameters", ::apache::thrift::protocol::T_MAP, 7); { xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast(this->parameters.size())); - std::map ::const_iterator _iter132; - for (_iter132 = this->parameters.begin(); _iter132 != this->parameters.end(); ++_iter132) + std::map ::const_iterator _iter138; + for (_iter138 = this->parameters.begin(); _iter138 != this->parameters.end(); ++_iter138) { - xfer += oprot->writeString(_iter132->first); - xfer += oprot->writeString(_iter132->second); + xfer += oprot->writeString(_iter138->first); + xfer += oprot->writeString(_iter138->second); } xfer += oprot->writeMapEnd(); } @@ -1990,17 +2101,17 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { this->parameters.clear(); - uint32_t _size133; - ::apache::thrift::protocol::TType _ktype134; - ::apache::thrift::protocol::TType _vtype135; - iprot->readMapBegin(_ktype134, _vtype135, _size133); - uint32_t _i137; - for (_i137 = 0; _i137 < _size133; ++_i137) + uint32_t _size139; + ::apache::thrift::protocol::TType _ktype140; + ::apache::thrift::protocol::TType _vtype141; + iprot->readMapBegin(_ktype140, _vtype141, _size139); + uint32_t _i143; + for (_i143 = 0; _i143 < _size139; ++_i143) { - std::string _key138; - xfer += iprot->readString(_key138); - std::string& _val139 = this->parameters[_key138]; - xfer += iprot->readString(_val139); + std::string _key144; + xfer += iprot->readString(_key144); + std::string& _val145 = this->parameters[_key144]; + xfer += iprot->readString(_val145); } iprot->readMapEnd(); } @@ -2059,11 +2170,11 @@ xfer += oprot->writeFieldBegin("parameters", ::apache::thrift::protocol::T_MAP, 9); { xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast(this->parameters.size())); - std::map ::const_iterator _iter140; - for (_iter140 = this->parameters.begin(); _iter140 != this->parameters.end(); ++_iter140) + std::map ::const_iterator _iter146; + for (_iter146 = this->parameters.begin(); _iter146 != this->parameters.end(); ++_iter146) { - xfer += oprot->writeString(_iter140->first); - xfer += oprot->writeString(_iter140->second); + xfer += oprot->writeString(_iter146->first); + xfer += oprot->writeString(_iter146->second); } xfer += oprot->writeMapEnd(); } @@ -2103,14 +2214,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->fieldSchemas.clear(); - uint32_t _size141; - ::apache::thrift::protocol::TType _etype144; - iprot->readListBegin(_etype144, _size141); - this->fieldSchemas.resize(_size141); - uint32_t _i145; - for (_i145 = 0; _i145 < _size141; ++_i145) + uint32_t _size147; + ::apache::thrift::protocol::TType _etype150; + iprot->readListBegin(_etype150, _size147); + this->fieldSchemas.resize(_size147); + uint32_t _i151; + for (_i151 = 0; _i151 < _size147; ++_i151) { - xfer += this->fieldSchemas[_i145].read(iprot); + xfer += this->fieldSchemas[_i151].read(iprot); } iprot->readListEnd(); } @@ -2123,17 +2234,17 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { this->properties.clear(); - uint32_t _size146; - ::apache::thrift::protocol::TType _ktype147; - ::apache::thrift::protocol::TType _vtype148; - iprot->readMapBegin(_ktype147, _vtype148, _size146); - uint32_t _i150; - for (_i150 = 0; _i150 < _size146; ++_i150) + uint32_t _size152; + ::apache::thrift::protocol::TType _ktype153; + ::apache::thrift::protocol::TType _vtype154; + iprot->readMapBegin(_ktype153, _vtype154, _size152); + uint32_t _i156; + for (_i156 = 0; _i156 < _size152; ++_i156) { - std::string _key151; - xfer += iprot->readString(_key151); - std::string& _val152 = this->properties[_key151]; - xfer += iprot->readString(_val152); + std::string _key157; + xfer += iprot->readString(_key157); + std::string& _val158 = this->properties[_key157]; + xfer += iprot->readString(_val158); } iprot->readMapEnd(); } @@ -2160,10 +2271,10 @@ xfer += oprot->writeFieldBegin("fieldSchemas", ::apache::thrift::protocol::T_LIST, 1); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->fieldSchemas.size())); - std::vector ::const_iterator _iter153; - for (_iter153 = this->fieldSchemas.begin(); _iter153 != this->fieldSchemas.end(); ++_iter153) + std::vector ::const_iterator _iter159; + for (_iter159 = this->fieldSchemas.begin(); _iter159 != this->fieldSchemas.end(); ++_iter159) { - xfer += (*_iter153).write(oprot); + xfer += (*_iter159).write(oprot); } xfer += oprot->writeListEnd(); } @@ -2171,11 +2282,11 @@ xfer += oprot->writeFieldBegin("properties", ::apache::thrift::protocol::T_MAP, 2); { xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast(this->properties.size())); - std::map ::const_iterator _iter154; - for (_iter154 = this->properties.begin(); _iter154 != this->properties.end(); ++_iter154) + std::map ::const_iterator _iter160; + for (_iter160 = this->properties.begin(); _iter160 != this->properties.end(); ++_iter160) { - xfer += oprot->writeString(_iter154->first); - xfer += oprot->writeString(_iter154->second); + xfer += oprot->writeString(_iter160->first); + xfer += oprot->writeString(_iter160->second); } xfer += oprot->writeMapEnd(); } @@ -2212,17 +2323,17 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { this->properties.clear(); - uint32_t _size155; - ::apache::thrift::protocol::TType _ktype156; - ::apache::thrift::protocol::TType _vtype157; - iprot->readMapBegin(_ktype156, _vtype157, _size155); - uint32_t _i159; - for (_i159 = 0; _i159 < _size155; ++_i159) + uint32_t _size161; + ::apache::thrift::protocol::TType _ktype162; + ::apache::thrift::protocol::TType _vtype163; + iprot->readMapBegin(_ktype162, _vtype163, _size161); + uint32_t _i165; + for (_i165 = 0; _i165 < _size161; ++_i165) { - std::string _key160; - xfer += iprot->readString(_key160); - std::string& _val161 = this->properties[_key160]; - xfer += iprot->readString(_val161); + std::string _key166; + xfer += iprot->readString(_key166); + std::string& _val167 = this->properties[_key166]; + xfer += iprot->readString(_val167); } iprot->readMapEnd(); } @@ -2249,11 +2360,11 @@ xfer += oprot->writeFieldBegin("properties", ::apache::thrift::protocol::T_MAP, 1); { xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast(this->properties.size())); - std::map ::const_iterator _iter162; - for (_iter162 = this->properties.begin(); _iter162 != this->properties.end(); ++_iter162) + std::map ::const_iterator _iter168; + for (_iter168 = this->properties.begin(); _iter168 != this->properties.end(); ++_iter168) { - xfer += oprot->writeString(_iter162->first); - xfer += oprot->writeString(_iter162->second); + xfer += oprot->writeString(_iter168->first); + xfer += oprot->writeString(_iter168->second); } xfer += oprot->writeMapEnd(); } Index: metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h =================================================================== --- metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h (revision 25657) +++ metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h (working copy) @@ -887,8 +887,57 @@ }; +typedef struct _TableIdentifier__isset { + _TableIdentifier__isset() : dbName(false), tableName(false) {} + bool dbName; + bool tableName; +} _TableIdentifier__isset; + +class TableIdentifier { + public: + + static const char* ascii_fingerprint; // = "07A9615F837F7D0A952B595DD3020972"; + static const uint8_t binary_fingerprint[16]; // = {0x07,0xA9,0x61,0x5F,0x83,0x7F,0x7D,0x0A,0x95,0x2B,0x59,0x5D,0xD3,0x02,0x09,0x72}; + + TableIdentifier() : dbName(""), tableName("") { + } + + virtual ~TableIdentifier() throw() {} + + std::string dbName; + std::string tableName; + + _TableIdentifier__isset __isset; + + void __set_dbName(const std::string& val) { + dbName = val; + } + + void __set_tableName(const std::string& val) { + tableName = val; + } + + bool operator == (const TableIdentifier & rhs) const + { + if (!(dbName == rhs.dbName)) + return false; + if (!(tableName == rhs.tableName)) + return false; + return true; + } + bool operator != (const TableIdentifier &rhs) const { + return !(*this == rhs); + } + + bool operator < (const TableIdentifier & ) const; + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot); + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const; + +}; + typedef struct _Table__isset { - _Table__isset() : tableName(false), dbName(false), owner(false), createTime(false), lastAccessTime(false), retention(false), sd(false), partitionKeys(false), parameters(false), viewOriginalText(false), viewExpandedText(false), tableType(false), privileges(false) {} + _Table__isset() : tableName(false), dbName(false), owner(false), createTime(false), lastAccessTime(false), retention(false), sd(false), partitionKeys(false), parameters(false), viewOriginalText(false), viewExpandedText(false), tableType(false), privileges(false), linkTarget(false), linkTables(false) {} bool tableName; bool dbName; bool owner; @@ -902,13 +951,15 @@ bool viewExpandedText; bool tableType; bool privileges; + bool linkTarget; + bool linkTables; } _Table__isset; class Table { public: - static const char* ascii_fingerprint; // = "26BE788C09746068A2616712C9262900"; - static const uint8_t binary_fingerprint[16]; // = {0x26,0xBE,0x78,0x8C,0x09,0x74,0x60,0x68,0xA2,0x61,0x67,0x12,0xC9,0x26,0x29,0x00}; + static const char* ascii_fingerprint; // = "06C17A4A74B309FF2357999371777D0D"; + static const uint8_t binary_fingerprint[16]; // = {0x06,0xC1,0x7A,0x4A,0x74,0xB3,0x09,0xFF,0x23,0x57,0x99,0x93,0x71,0x77,0x7D,0x0D}; Table() : tableName(""), dbName(""), owner(""), createTime(0), lastAccessTime(0), retention(0), viewOriginalText(""), viewExpandedText(""), tableType("") { } @@ -928,6 +979,8 @@ std::string viewExpandedText; std::string tableType; PrincipalPrivilegeSet privileges; + TableIdentifier linkTarget; + std::vector linkTables; _Table__isset __isset; @@ -984,6 +1037,16 @@ __isset.privileges = true; } + void __set_linkTarget(const TableIdentifier& val) { + linkTarget = val; + __isset.linkTarget = true; + } + + void __set_linkTables(const std::vector & val) { + linkTables = val; + __isset.linkTables = true; + } + bool operator == (const Table & rhs) const { if (!(tableName == rhs.tableName)) @@ -1014,6 +1077,14 @@ return false; else if (__isset.privileges && !(privileges == rhs.privileges)) return false; + if (__isset.linkTarget != rhs.__isset.linkTarget) + return false; + else if (__isset.linkTarget && !(linkTarget == rhs.linkTarget)) + return false; + if (__isset.linkTables != rhs.__isset.linkTables) + return false; + else if (__isset.linkTables && !(linkTables == rhs.linkTables)) + return false; return true; } bool operator != (const Table &rhs) const { Index: metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb =================================================================== --- metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb (revision 25657) +++ metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb (working copy) @@ -322,6 +322,24 @@ ::Thrift::Struct.generate_accessors self end +class TableIdentifier + include ::Thrift::Struct, ::Thrift::Struct_Union + DBNAME = 1 + TABLENAME = 2 + + FIELDS = { + DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbName'}, + TABLENAME => {:type => ::Thrift::Types::STRING, :name => 'tableName'} + } + + def struct_fields; FIELDS; end + + def validate + end + + ::Thrift::Struct.generate_accessors self +end + class Table include ::Thrift::Struct, ::Thrift::Struct_Union TABLENAME = 1 @@ -337,6 +355,8 @@ VIEWEXPANDEDTEXT = 11 TABLETYPE = 12 PRIVILEGES = 13 + LINKTARGET = 14 + LINKTABLES = 15 FIELDS = { TABLENAME => {:type => ::Thrift::Types::STRING, :name => 'tableName'}, @@ -351,7 +371,9 @@ VIEWORIGINALTEXT => {:type => ::Thrift::Types::STRING, :name => 'viewOriginalText'}, VIEWEXPANDEDTEXT => {:type => ::Thrift::Types::STRING, :name => 'viewExpandedText'}, TABLETYPE => {:type => ::Thrift::Types::STRING, :name => 'tableType'}, - PRIVILEGES => {:type => ::Thrift::Types::STRUCT, :name => 'privileges', :class => PrincipalPrivilegeSet, :optional => true} + PRIVILEGES => {:type => ::Thrift::Types::STRUCT, :name => 'privileges', :class => PrincipalPrivilegeSet, :optional => true}, + LINKTARGET => {:type => ::Thrift::Types::STRUCT, :name => 'linkTarget', :class => TableIdentifier, :optional => true}, + LINKTABLES => {:type => ::Thrift::Types::LIST, :name => 'linkTables', :element => {:type => ::Thrift::Types::STRUCT, :class => TableIdentifier}, :optional => true} } def struct_fields; FIELDS; end Index: metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Partition.java =================================================================== --- metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Partition.java (revision 25657) +++ metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Partition.java (working copy) @@ -772,13 +772,13 @@ case 1: // VALUES if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list75 = iprot.readListBegin(); - this.values = new ArrayList(_list75.size); - for (int _i76 = 0; _i76 < _list75.size; ++_i76) + org.apache.thrift.protocol.TList _list79 = iprot.readListBegin(); + this.values = new ArrayList(_list79.size); + for (int _i80 = 0; _i80 < _list79.size; ++_i80) { - String _elem77; // required - _elem77 = iprot.readString(); - this.values.add(_elem77); + String _elem81; // required + _elem81 = iprot.readString(); + this.values.add(_elem81); } iprot.readListEnd(); } @@ -827,15 +827,15 @@ case 7: // PARAMETERS if (field.type == org.apache.thrift.protocol.TType.MAP) { { - org.apache.thrift.protocol.TMap _map78 = iprot.readMapBegin(); - this.parameters = new HashMap(2*_map78.size); - for (int _i79 = 0; _i79 < _map78.size; ++_i79) + org.apache.thrift.protocol.TMap _map82 = iprot.readMapBegin(); + this.parameters = new HashMap(2*_map82.size); + for (int _i83 = 0; _i83 < _map82.size; ++_i83) { - String _key80; // required - String _val81; // required - _key80 = iprot.readString(); - _val81 = iprot.readString(); - this.parameters.put(_key80, _val81); + String _key84; // required + String _val85; // required + _key84 = iprot.readString(); + _val85 = iprot.readString(); + this.parameters.put(_key84, _val85); } iprot.readMapEnd(); } @@ -868,9 +868,9 @@ oprot.writeFieldBegin(VALUES_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.values.size())); - for (String _iter82 : this.values) + for (String _iter86 : this.values) { - oprot.writeString(_iter82); + oprot.writeString(_iter86); } oprot.writeListEnd(); } @@ -901,10 +901,10 @@ oprot.writeFieldBegin(PARAMETERS_FIELD_DESC); { oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.parameters.size())); - for (Map.Entry _iter83 : this.parameters.entrySet()) + for (Map.Entry _iter87 : this.parameters.entrySet()) { - oprot.writeString(_iter83.getKey()); - oprot.writeString(_iter83.getValue()); + oprot.writeString(_iter87.getKey()); + oprot.writeString(_iter87.getValue()); } oprot.writeMapEnd(); } Index: metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/EnvironmentContext.java =================================================================== --- metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/EnvironmentContext.java (revision 25657) +++ metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/EnvironmentContext.java (working copy) @@ -275,15 +275,15 @@ case 1: // PROPERTIES if (field.type == org.apache.thrift.protocol.TType.MAP) { { - org.apache.thrift.protocol.TMap _map98 = iprot.readMapBegin(); - this.properties = new HashMap(2*_map98.size); - for (int _i99 = 0; _i99 < _map98.size; ++_i99) + org.apache.thrift.protocol.TMap _map102 = iprot.readMapBegin(); + this.properties = new HashMap(2*_map102.size); + for (int _i103 = 0; _i103 < _map102.size; ++_i103) { - String _key100; // required - String _val101; // required - _key100 = iprot.readString(); - _val101 = iprot.readString(); - this.properties.put(_key100, _val101); + String _key104; // required + String _val105; // required + _key104 = iprot.readString(); + _val105 = iprot.readString(); + this.properties.put(_key104, _val105); } iprot.readMapEnd(); } @@ -308,10 +308,10 @@ oprot.writeFieldBegin(PROPERTIES_FIELD_DESC); { oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.properties.size())); - for (Map.Entry _iter102 : this.properties.entrySet()) + for (Map.Entry _iter106 : this.properties.entrySet()) { - oprot.writeString(_iter102.getKey()); - oprot.writeString(_iter102.getValue()); + oprot.writeString(_iter106.getKey()); + oprot.writeString(_iter106.getValue()); } oprot.writeMapEnd(); } Index: metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java =================================================================== --- metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java (revision 25657) +++ metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java (working copy) @@ -9530,13 +9530,13 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list103 = iprot.readListBegin(); - this.success = new ArrayList(_list103.size); - for (int _i104 = 0; _i104 < _list103.size; ++_i104) + org.apache.thrift.protocol.TList _list107 = iprot.readListBegin(); + this.success = new ArrayList(_list107.size); + for (int _i108 = 0; _i108 < _list107.size; ++_i108) { - String _elem105; // required - _elem105 = iprot.readString(); - this.success.add(_elem105); + String _elem109; // required + _elem109 = iprot.readString(); + this.success.add(_elem109); } iprot.readListEnd(); } @@ -9568,9 +9568,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.success.size())); - for (String _iter106 : this.success) + for (String _iter110 : this.success) { - oprot.writeString(_iter106); + oprot.writeString(_iter110); } oprot.writeListEnd(); } @@ -10148,13 +10148,13 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list107 = iprot.readListBegin(); - this.success = new ArrayList(_list107.size); - for (int _i108 = 0; _i108 < _list107.size; ++_i108) + org.apache.thrift.protocol.TList _list111 = iprot.readListBegin(); + this.success = new ArrayList(_list111.size); + for (int _i112 = 0; _i112 < _list111.size; ++_i112) { - String _elem109; // required - _elem109 = iprot.readString(); - this.success.add(_elem109); + String _elem113; // required + _elem113 = iprot.readString(); + this.success.add(_elem113); } iprot.readListEnd(); } @@ -10186,9 +10186,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.success.size())); - for (String _iter110 : this.success) + for (String _iter114 : this.success) { - oprot.writeString(_iter110); + oprot.writeString(_iter114); } oprot.writeListEnd(); } @@ -14009,16 +14009,16 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.MAP) { { - org.apache.thrift.protocol.TMap _map111 = iprot.readMapBegin(); - this.success = new HashMap(2*_map111.size); - for (int _i112 = 0; _i112 < _map111.size; ++_i112) + org.apache.thrift.protocol.TMap _map115 = iprot.readMapBegin(); + this.success = new HashMap(2*_map115.size); + for (int _i116 = 0; _i116 < _map115.size; ++_i116) { - String _key113; // required - Type _val114; // required - _key113 = iprot.readString(); - _val114 = new Type(); - _val114.read(iprot); - this.success.put(_key113, _val114); + String _key117; // required + Type _val118; // required + _key117 = iprot.readString(); + _val118 = new Type(); + _val118.read(iprot); + this.success.put(_key117, _val118); } iprot.readMapEnd(); } @@ -14050,10 +14050,10 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, this.success.size())); - for (Map.Entry _iter115 : this.success.entrySet()) + for (Map.Entry _iter119 : this.success.entrySet()) { - oprot.writeString(_iter115.getKey()); - _iter115.getValue().write(oprot); + oprot.writeString(_iter119.getKey()); + _iter119.getValue().write(oprot); } oprot.writeMapEnd(); } @@ -14949,14 +14949,14 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list116 = iprot.readListBegin(); - this.success = new ArrayList(_list116.size); - for (int _i117 = 0; _i117 < _list116.size; ++_i117) + org.apache.thrift.protocol.TList _list120 = iprot.readListBegin(); + this.success = new ArrayList(_list120.size); + for (int _i121 = 0; _i121 < _list120.size; ++_i121) { - FieldSchema _elem118; // required - _elem118 = new FieldSchema(); - _elem118.read(iprot); - this.success.add(_elem118); + FieldSchema _elem122; // required + _elem122 = new FieldSchema(); + _elem122.read(iprot); + this.success.add(_elem122); } iprot.readListEnd(); } @@ -15004,9 +15004,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size())); - for (FieldSchema _iter119 : this.success) + for (FieldSchema _iter123 : this.success) { - _iter119.write(oprot); + _iter123.write(oprot); } oprot.writeListEnd(); } @@ -15926,14 +15926,14 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list120 = iprot.readListBegin(); - this.success = new ArrayList(_list120.size); - for (int _i121 = 0; _i121 < _list120.size; ++_i121) + org.apache.thrift.protocol.TList _list124 = iprot.readListBegin(); + this.success = new ArrayList(_list124.size); + for (int _i125 = 0; _i125 < _list124.size; ++_i125) { - FieldSchema _elem122; // required - _elem122 = new FieldSchema(); - _elem122.read(iprot); - this.success.add(_elem122); + FieldSchema _elem126; // required + _elem126 = new FieldSchema(); + _elem126.read(iprot); + this.success.add(_elem126); } iprot.readListEnd(); } @@ -15981,9 +15981,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size())); - for (FieldSchema _iter123 : this.success) + for (FieldSchema _iter127 : this.success) { - _iter123.write(oprot); + _iter127.write(oprot); } oprot.writeListEnd(); } @@ -19414,13 +19414,13 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list124 = iprot.readListBegin(); - this.success = new ArrayList(_list124.size); - for (int _i125 = 0; _i125 < _list124.size; ++_i125) + org.apache.thrift.protocol.TList _list128 = iprot.readListBegin(); + this.success = new ArrayList(_list128.size); + for (int _i129 = 0; _i129 < _list128.size; ++_i129) { - String _elem126; // required - _elem126 = iprot.readString(); - this.success.add(_elem126); + String _elem130; // required + _elem130 = iprot.readString(); + this.success.add(_elem130); } iprot.readListEnd(); } @@ -19452,9 +19452,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.success.size())); - for (String _iter127 : this.success) + for (String _iter131 : this.success) { - oprot.writeString(_iter127); + oprot.writeString(_iter131); } oprot.writeListEnd(); } @@ -20126,13 +20126,13 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list128 = iprot.readListBegin(); - this.success = new ArrayList(_list128.size); - for (int _i129 = 0; _i129 < _list128.size; ++_i129) + org.apache.thrift.protocol.TList _list132 = iprot.readListBegin(); + this.success = new ArrayList(_list132.size); + for (int _i133 = 0; _i133 < _list132.size; ++_i133) { - String _elem130; // required - _elem130 = iprot.readString(); - this.success.add(_elem130); + String _elem134; // required + _elem134 = iprot.readString(); + this.success.add(_elem134); } iprot.readListEnd(); } @@ -20164,9 +20164,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.success.size())); - for (String _iter131 : this.success) + for (String _iter135 : this.success) { - oprot.writeString(_iter131); + oprot.writeString(_iter135); } oprot.writeListEnd(); } @@ -21403,13 +21403,13 @@ case 2: // TBL_NAMES if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list132 = iprot.readListBegin(); - this.tbl_names = new ArrayList(_list132.size); - for (int _i133 = 0; _i133 < _list132.size; ++_i133) + org.apache.thrift.protocol.TList _list136 = iprot.readListBegin(); + this.tbl_names = new ArrayList(_list136.size); + for (int _i137 = 0; _i137 < _list136.size; ++_i137) { - String _elem134; // required - _elem134 = iprot.readString(); - this.tbl_names.add(_elem134); + String _elem138; // required + _elem138 = iprot.readString(); + this.tbl_names.add(_elem138); } iprot.readListEnd(); } @@ -21439,9 +21439,9 @@ oprot.writeFieldBegin(TBL_NAMES_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.tbl_names.size())); - for (String _iter135 : this.tbl_names) + for (String _iter139 : this.tbl_names) { - oprot.writeString(_iter135); + oprot.writeString(_iter139); } oprot.writeListEnd(); } @@ -21951,14 +21951,14 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list136 = iprot.readListBegin(); - this.success = new ArrayList
(_list136.size); - for (int _i137 = 0; _i137 < _list136.size; ++_i137) + org.apache.thrift.protocol.TList _list140 = iprot.readListBegin(); + this.success = new ArrayList
(_list140.size); + for (int _i141 = 0; _i141 < _list140.size; ++_i141) { - Table _elem138; // required - _elem138 = new Table(); - _elem138.read(iprot); - this.success.add(_elem138); + Table _elem142; // required + _elem142 = new Table(); + _elem142.read(iprot); + this.success.add(_elem142); } iprot.readListEnd(); } @@ -22006,9 +22006,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size())); - for (Table _iter139 : this.success) + for (Table _iter143 : this.success) { - _iter139.write(oprot); + _iter143.write(oprot); } oprot.writeListEnd(); } @@ -23018,13 +23018,13 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list140 = iprot.readListBegin(); - this.success = new ArrayList(_list140.size); - for (int _i141 = 0; _i141 < _list140.size; ++_i141) + org.apache.thrift.protocol.TList _list144 = iprot.readListBegin(); + this.success = new ArrayList(_list144.size); + for (int _i145 = 0; _i145 < _list144.size; ++_i145) { - String _elem142; // required - _elem142 = iprot.readString(); - this.success.add(_elem142); + String _elem146; // required + _elem146 = iprot.readString(); + this.success.add(_elem146); } iprot.readListEnd(); } @@ -23072,9 +23072,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.success.size())); - for (String _iter143 : this.success) + for (String _iter147 : this.success) { - oprot.writeString(_iter143); + oprot.writeString(_iter147); } oprot.writeListEnd(); } @@ -26998,14 +26998,14 @@ case 1: // NEW_PARTS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list144 = iprot.readListBegin(); - this.new_parts = new ArrayList(_list144.size); - for (int _i145 = 0; _i145 < _list144.size; ++_i145) + org.apache.thrift.protocol.TList _list148 = iprot.readListBegin(); + this.new_parts = new ArrayList(_list148.size); + for (int _i149 = 0; _i149 < _list148.size; ++_i149) { - Partition _elem146; // required - _elem146 = new Partition(); - _elem146.read(iprot); - this.new_parts.add(_elem146); + Partition _elem150; // required + _elem150 = new Partition(); + _elem150.read(iprot); + this.new_parts.add(_elem150); } iprot.readListEnd(); } @@ -27030,9 +27030,9 @@ oprot.writeFieldBegin(NEW_PARTS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.new_parts.size())); - for (Partition _iter147 : this.new_parts) + for (Partition _iter151 : this.new_parts) { - _iter147.write(oprot); + _iter151.write(oprot); } oprot.writeListEnd(); } @@ -28037,13 +28037,13 @@ case 3: // PART_VALS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list148 = iprot.readListBegin(); - this.part_vals = new ArrayList(_list148.size); - for (int _i149 = 0; _i149 < _list148.size; ++_i149) + org.apache.thrift.protocol.TList _list152 = iprot.readListBegin(); + this.part_vals = new ArrayList(_list152.size); + for (int _i153 = 0; _i153 < _list152.size; ++_i153) { - String _elem150; // required - _elem150 = iprot.readString(); - this.part_vals.add(_elem150); + String _elem154; // required + _elem154 = iprot.readString(); + this.part_vals.add(_elem154); } iprot.readListEnd(); } @@ -28078,9 +28078,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.part_vals.size())); - for (String _iter151 : this.part_vals) + for (String _iter155 : this.part_vals) { - oprot.writeString(_iter151); + oprot.writeString(_iter155); } oprot.writeListEnd(); } @@ -30201,13 +30201,13 @@ case 3: // PART_VALS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list152 = iprot.readListBegin(); - this.part_vals = new ArrayList(_list152.size); - for (int _i153 = 0; _i153 < _list152.size; ++_i153) + org.apache.thrift.protocol.TList _list156 = iprot.readListBegin(); + this.part_vals = new ArrayList(_list156.size); + for (int _i157 = 0; _i157 < _list156.size; ++_i157) { - String _elem154; // required - _elem154 = iprot.readString(); - this.part_vals.add(_elem154); + String _elem158; // required + _elem158 = iprot.readString(); + this.part_vals.add(_elem158); } iprot.readListEnd(); } @@ -30250,9 +30250,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.part_vals.size())); - for (String _iter155 : this.part_vals) + for (String _iter159 : this.part_vals) { - oprot.writeString(_iter155); + oprot.writeString(_iter159); } oprot.writeListEnd(); } @@ -32221,13 +32221,13 @@ case 3: // PART_VALS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list156 = iprot.readListBegin(); - this.part_vals = new ArrayList(_list156.size); - for (int _i157 = 0; _i157 < _list156.size; ++_i157) + org.apache.thrift.protocol.TList _list160 = iprot.readListBegin(); + this.part_vals = new ArrayList(_list160.size); + for (int _i161 = 0; _i161 < _list160.size; ++_i161) { - String _elem158; // required - _elem158 = iprot.readString(); - this.part_vals.add(_elem158); + String _elem162; // required + _elem162 = iprot.readString(); + this.part_vals.add(_elem162); } iprot.readListEnd(); } @@ -32262,9 +32262,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.part_vals.size())); - for (String _iter159 : this.part_vals) + for (String _iter163 : this.part_vals) { - oprot.writeString(_iter159); + oprot.writeString(_iter163); } oprot.writeListEnd(); } @@ -33354,13 +33354,13 @@ case 3: // PART_VALS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list160 = iprot.readListBegin(); - this.part_vals = new ArrayList(_list160.size); - for (int _i161 = 0; _i161 < _list160.size; ++_i161) + org.apache.thrift.protocol.TList _list164 = iprot.readListBegin(); + this.part_vals = new ArrayList(_list164.size); + for (int _i165 = 0; _i165 < _list164.size; ++_i165) { - String _elem162; // required - _elem162 = iprot.readString(); - this.part_vals.add(_elem162); + String _elem166; // required + _elem166 = iprot.readString(); + this.part_vals.add(_elem166); } iprot.readListEnd(); } @@ -33378,13 +33378,13 @@ case 5: // GROUP_NAMES if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list163 = iprot.readListBegin(); - this.group_names = new ArrayList(_list163.size); - for (int _i164 = 0; _i164 < _list163.size; ++_i164) + org.apache.thrift.protocol.TList _list167 = iprot.readListBegin(); + this.group_names = new ArrayList(_list167.size); + for (int _i168 = 0; _i168 < _list167.size; ++_i168) { - String _elem165; // required - _elem165 = iprot.readString(); - this.group_names.add(_elem165); + String _elem169; // required + _elem169 = iprot.readString(); + this.group_names.add(_elem169); } iprot.readListEnd(); } @@ -33419,9 +33419,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.part_vals.size())); - for (String _iter166 : this.part_vals) + for (String _iter170 : this.part_vals) { - oprot.writeString(_iter166); + oprot.writeString(_iter170); } oprot.writeListEnd(); } @@ -33436,9 +33436,9 @@ oprot.writeFieldBegin(GROUP_NAMES_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.group_names.size())); - for (String _iter167 : this.group_names) + for (String _iter171 : this.group_names) { - oprot.writeString(_iter167); + oprot.writeString(_iter171); } oprot.writeListEnd(); } @@ -35786,14 +35786,14 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list168 = iprot.readListBegin(); - this.success = new ArrayList(_list168.size); - for (int _i169 = 0; _i169 < _list168.size; ++_i169) + org.apache.thrift.protocol.TList _list172 = iprot.readListBegin(); + this.success = new ArrayList(_list172.size); + for (int _i173 = 0; _i173 < _list172.size; ++_i173) { - Partition _elem170; // required - _elem170 = new Partition(); - _elem170.read(iprot); - this.success.add(_elem170); + Partition _elem174; // required + _elem174 = new Partition(); + _elem174.read(iprot); + this.success.add(_elem174); } iprot.readListEnd(); } @@ -35833,9 +35833,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size())); - for (Partition _iter171 : this.success) + for (Partition _iter175 : this.success) { - _iter171.write(oprot); + _iter175.write(oprot); } oprot.writeListEnd(); } @@ -36463,13 +36463,13 @@ case 5: // GROUP_NAMES if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list172 = iprot.readListBegin(); - this.group_names = new ArrayList(_list172.size); - for (int _i173 = 0; _i173 < _list172.size; ++_i173) + org.apache.thrift.protocol.TList _list176 = iprot.readListBegin(); + this.group_names = new ArrayList(_list176.size); + for (int _i177 = 0; _i177 < _list176.size; ++_i177) { - String _elem174; // required - _elem174 = iprot.readString(); - this.group_names.add(_elem174); + String _elem178; // required + _elem178 = iprot.readString(); + this.group_names.add(_elem178); } iprot.readListEnd(); } @@ -36512,9 +36512,9 @@ oprot.writeFieldBegin(GROUP_NAMES_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.group_names.size())); - for (String _iter175 : this.group_names) + for (String _iter179 : this.group_names) { - oprot.writeString(_iter175); + oprot.writeString(_iter179); } oprot.writeListEnd(); } @@ -36978,14 +36978,14 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list176 = iprot.readListBegin(); - this.success = new ArrayList(_list176.size); - for (int _i177 = 0; _i177 < _list176.size; ++_i177) + org.apache.thrift.protocol.TList _list180 = iprot.readListBegin(); + this.success = new ArrayList(_list180.size); + for (int _i181 = 0; _i181 < _list180.size; ++_i181) { - Partition _elem178; // required - _elem178 = new Partition(); - _elem178.read(iprot); - this.success.add(_elem178); + Partition _elem182; // required + _elem182 = new Partition(); + _elem182.read(iprot); + this.success.add(_elem182); } iprot.readListEnd(); } @@ -37025,9 +37025,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size())); - for (Partition _iter179 : this.success) + for (Partition _iter183 : this.success) { - _iter179.write(oprot); + _iter183.write(oprot); } oprot.writeListEnd(); } @@ -37889,13 +37889,13 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list180 = iprot.readListBegin(); - this.success = new ArrayList(_list180.size); - for (int _i181 = 0; _i181 < _list180.size; ++_i181) + org.apache.thrift.protocol.TList _list184 = iprot.readListBegin(); + this.success = new ArrayList(_list184.size); + for (int _i185 = 0; _i185 < _list184.size; ++_i185) { - String _elem182; // required - _elem182 = iprot.readString(); - this.success.add(_elem182); + String _elem186; // required + _elem186 = iprot.readString(); + this.success.add(_elem186); } iprot.readListEnd(); } @@ -37927,9 +37927,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.success.size())); - for (String _iter183 : this.success) + for (String _iter187 : this.success) { - oprot.writeString(_iter183); + oprot.writeString(_iter187); } oprot.writeListEnd(); } @@ -38462,13 +38462,13 @@ case 3: // PART_VALS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list184 = iprot.readListBegin(); - this.part_vals = new ArrayList(_list184.size); - for (int _i185 = 0; _i185 < _list184.size; ++_i185) + org.apache.thrift.protocol.TList _list188 = iprot.readListBegin(); + this.part_vals = new ArrayList(_list188.size); + for (int _i189 = 0; _i189 < _list188.size; ++_i189) { - String _elem186; // required - _elem186 = iprot.readString(); - this.part_vals.add(_elem186); + String _elem190; // required + _elem190 = iprot.readString(); + this.part_vals.add(_elem190); } iprot.readListEnd(); } @@ -38511,9 +38511,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.part_vals.size())); - for (String _iter187 : this.part_vals) + for (String _iter191 : this.part_vals) { - oprot.writeString(_iter187); + oprot.writeString(_iter191); } oprot.writeListEnd(); } @@ -38972,14 +38972,14 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list188 = iprot.readListBegin(); - this.success = new ArrayList(_list188.size); - for (int _i189 = 0; _i189 < _list188.size; ++_i189) + org.apache.thrift.protocol.TList _list192 = iprot.readListBegin(); + this.success = new ArrayList(_list192.size); + for (int _i193 = 0; _i193 < _list192.size; ++_i193) { - Partition _elem190; // required - _elem190 = new Partition(); - _elem190.read(iprot); - this.success.add(_elem190); + Partition _elem194; // required + _elem194 = new Partition(); + _elem194.read(iprot); + this.success.add(_elem194); } iprot.readListEnd(); } @@ -39019,9 +39019,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size())); - for (Partition _iter191 : this.success) + for (Partition _iter195 : this.success) { - _iter191.write(oprot); + _iter195.write(oprot); } oprot.writeListEnd(); } @@ -39722,13 +39722,13 @@ case 3: // PART_VALS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list192 = iprot.readListBegin(); - this.part_vals = new ArrayList(_list192.size); - for (int _i193 = 0; _i193 < _list192.size; ++_i193) + org.apache.thrift.protocol.TList _list196 = iprot.readListBegin(); + this.part_vals = new ArrayList(_list196.size); + for (int _i197 = 0; _i197 < _list196.size; ++_i197) { - String _elem194; // required - _elem194 = iprot.readString(); - this.part_vals.add(_elem194); + String _elem198; // required + _elem198 = iprot.readString(); + this.part_vals.add(_elem198); } iprot.readListEnd(); } @@ -39754,13 +39754,13 @@ case 6: // GROUP_NAMES if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list195 = iprot.readListBegin(); - this.group_names = new ArrayList(_list195.size); - for (int _i196 = 0; _i196 < _list195.size; ++_i196) + org.apache.thrift.protocol.TList _list199 = iprot.readListBegin(); + this.group_names = new ArrayList(_list199.size); + for (int _i200 = 0; _i200 < _list199.size; ++_i200) { - String _elem197; // required - _elem197 = iprot.readString(); - this.group_names.add(_elem197); + String _elem201; // required + _elem201 = iprot.readString(); + this.group_names.add(_elem201); } iprot.readListEnd(); } @@ -39795,9 +39795,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.part_vals.size())); - for (String _iter198 : this.part_vals) + for (String _iter202 : this.part_vals) { - oprot.writeString(_iter198); + oprot.writeString(_iter202); } oprot.writeListEnd(); } @@ -39815,9 +39815,9 @@ oprot.writeFieldBegin(GROUP_NAMES_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.group_names.size())); - for (String _iter199 : this.group_names) + for (String _iter203 : this.group_names) { - oprot.writeString(_iter199); + oprot.writeString(_iter203); } oprot.writeListEnd(); } @@ -40289,14 +40289,14 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list200 = iprot.readListBegin(); - this.success = new ArrayList(_list200.size); - for (int _i201 = 0; _i201 < _list200.size; ++_i201) + org.apache.thrift.protocol.TList _list204 = iprot.readListBegin(); + this.success = new ArrayList(_list204.size); + for (int _i205 = 0; _i205 < _list204.size; ++_i205) { - Partition _elem202; // required - _elem202 = new Partition(); - _elem202.read(iprot); - this.success.add(_elem202); + Partition _elem206; // required + _elem206 = new Partition(); + _elem206.read(iprot); + this.success.add(_elem206); } iprot.readListEnd(); } @@ -40336,9 +40336,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size())); - for (Partition _iter203 : this.success) + for (Partition _iter207 : this.success) { - _iter203.write(oprot); + _iter207.write(oprot); } oprot.writeListEnd(); } @@ -40883,13 +40883,13 @@ case 3: // PART_VALS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list204 = iprot.readListBegin(); - this.part_vals = new ArrayList(_list204.size); - for (int _i205 = 0; _i205 < _list204.size; ++_i205) + org.apache.thrift.protocol.TList _list208 = iprot.readListBegin(); + this.part_vals = new ArrayList(_list208.size); + for (int _i209 = 0; _i209 < _list208.size; ++_i209) { - String _elem206; // required - _elem206 = iprot.readString(); - this.part_vals.add(_elem206); + String _elem210; // required + _elem210 = iprot.readString(); + this.part_vals.add(_elem210); } iprot.readListEnd(); } @@ -40932,9 +40932,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.part_vals.size())); - for (String _iter207 : this.part_vals) + for (String _iter211 : this.part_vals) { - oprot.writeString(_iter207); + oprot.writeString(_iter211); } oprot.writeListEnd(); } @@ -41393,13 +41393,13 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list208 = iprot.readListBegin(); - this.success = new ArrayList(_list208.size); - for (int _i209 = 0; _i209 < _list208.size; ++_i209) + org.apache.thrift.protocol.TList _list212 = iprot.readListBegin(); + this.success = new ArrayList(_list212.size); + for (int _i213 = 0; _i213 < _list212.size; ++_i213) { - String _elem210; // required - _elem210 = iprot.readString(); - this.success.add(_elem210); + String _elem214; // required + _elem214 = iprot.readString(); + this.success.add(_elem214); } iprot.readListEnd(); } @@ -41439,9 +41439,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.success.size())); - for (String _iter211 : this.success) + for (String _iter215 : this.success) { - oprot.writeString(_iter211); + oprot.writeString(_iter215); } oprot.writeListEnd(); } @@ -42459,14 +42459,14 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list212 = iprot.readListBegin(); - this.success = new ArrayList(_list212.size); - for (int _i213 = 0; _i213 < _list212.size; ++_i213) + org.apache.thrift.protocol.TList _list216 = iprot.readListBegin(); + this.success = new ArrayList(_list216.size); + for (int _i217 = 0; _i217 < _list216.size; ++_i217) { - Partition _elem214; // required - _elem214 = new Partition(); - _elem214.read(iprot); - this.success.add(_elem214); + Partition _elem218; // required + _elem218 = new Partition(); + _elem218.read(iprot); + this.success.add(_elem218); } iprot.readListEnd(); } @@ -42506,9 +42506,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size())); - for (Partition _iter215 : this.success) + for (Partition _iter219 : this.success) { - _iter215.write(oprot); + _iter219.write(oprot); } oprot.writeListEnd(); } @@ -42980,13 +42980,13 @@ case 3: // NAMES if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list216 = iprot.readListBegin(); - this.names = new ArrayList(_list216.size); - for (int _i217 = 0; _i217 < _list216.size; ++_i217) + org.apache.thrift.protocol.TList _list220 = iprot.readListBegin(); + this.names = new ArrayList(_list220.size); + for (int _i221 = 0; _i221 < _list220.size; ++_i221) { - String _elem218; // required - _elem218 = iprot.readString(); - this.names.add(_elem218); + String _elem222; // required + _elem222 = iprot.readString(); + this.names.add(_elem222); } iprot.readListEnd(); } @@ -43021,9 +43021,9 @@ oprot.writeFieldBegin(NAMES_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.names.size())); - for (String _iter219 : this.names) + for (String _iter223 : this.names) { - oprot.writeString(_iter219); + oprot.writeString(_iter223); } oprot.writeListEnd(); } @@ -43473,14 +43473,14 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list220 = iprot.readListBegin(); - this.success = new ArrayList(_list220.size); - for (int _i221 = 0; _i221 < _list220.size; ++_i221) + org.apache.thrift.protocol.TList _list224 = iprot.readListBegin(); + this.success = new ArrayList(_list224.size); + for (int _i225 = 0; _i225 < _list224.size; ++_i225) { - Partition _elem222; // required - _elem222 = new Partition(); - _elem222.read(iprot); - this.success.add(_elem222); + Partition _elem226; // required + _elem226 = new Partition(); + _elem226.read(iprot); + this.success.add(_elem226); } iprot.readListEnd(); } @@ -43520,9 +43520,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size())); - for (Partition _iter223 : this.success) + for (Partition _iter227 : this.success) { - _iter223.write(oprot); + _iter227.write(oprot); } oprot.writeListEnd(); } @@ -45857,13 +45857,13 @@ case 3: // PART_VALS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list224 = iprot.readListBegin(); - this.part_vals = new ArrayList(_list224.size); - for (int _i225 = 0; _i225 < _list224.size; ++_i225) + org.apache.thrift.protocol.TList _list228 = iprot.readListBegin(); + this.part_vals = new ArrayList(_list228.size); + for (int _i229 = 0; _i229 < _list228.size; ++_i229) { - String _elem226; // required - _elem226 = iprot.readString(); - this.part_vals.add(_elem226); + String _elem230; // required + _elem230 = iprot.readString(); + this.part_vals.add(_elem230); } iprot.readListEnd(); } @@ -45906,9 +45906,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.part_vals.size())); - for (String _iter227 : this.part_vals) + for (String _iter231 : this.part_vals) { - oprot.writeString(_iter227); + oprot.writeString(_iter231); } oprot.writeListEnd(); } @@ -47742,13 +47742,13 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list228 = iprot.readListBegin(); - this.success = new ArrayList(_list228.size); - for (int _i229 = 0; _i229 < _list228.size; ++_i229) + org.apache.thrift.protocol.TList _list232 = iprot.readListBegin(); + this.success = new ArrayList(_list232.size); + for (int _i233 = 0; _i233 < _list232.size; ++_i233) { - String _elem230; // required - _elem230 = iprot.readString(); - this.success.add(_elem230); + String _elem234; // required + _elem234 = iprot.readString(); + this.success.add(_elem234); } iprot.readListEnd(); } @@ -47780,9 +47780,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.success.size())); - for (String _iter231 : this.success) + for (String _iter235 : this.success) { - oprot.writeString(_iter231); + oprot.writeString(_iter235); } oprot.writeListEnd(); } @@ -48459,15 +48459,15 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.MAP) { { - org.apache.thrift.protocol.TMap _map232 = iprot.readMapBegin(); - this.success = new HashMap(2*_map232.size); - for (int _i233 = 0; _i233 < _map232.size; ++_i233) + org.apache.thrift.protocol.TMap _map236 = iprot.readMapBegin(); + this.success = new HashMap(2*_map236.size); + for (int _i237 = 0; _i237 < _map236.size; ++_i237) { - String _key234; // required - String _val235; // required - _key234 = iprot.readString(); - _val235 = iprot.readString(); - this.success.put(_key234, _val235); + String _key238; // required + String _val239; // required + _key238 = iprot.readString(); + _val239 = iprot.readString(); + this.success.put(_key238, _val239); } iprot.readMapEnd(); } @@ -48499,10 +48499,10 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.success.size())); - for (Map.Entry _iter236 : this.success.entrySet()) + for (Map.Entry _iter240 : this.success.entrySet()) { - oprot.writeString(_iter236.getKey()); - oprot.writeString(_iter236.getValue()); + oprot.writeString(_iter240.getKey()); + oprot.writeString(_iter240.getValue()); } oprot.writeMapEnd(); } @@ -49047,15 +49047,15 @@ case 3: // PART_VALS if (field.type == org.apache.thrift.protocol.TType.MAP) { { - org.apache.thrift.protocol.TMap _map237 = iprot.readMapBegin(); - this.part_vals = new HashMap(2*_map237.size); - for (int _i238 = 0; _i238 < _map237.size; ++_i238) + org.apache.thrift.protocol.TMap _map241 = iprot.readMapBegin(); + this.part_vals = new HashMap(2*_map241.size); + for (int _i242 = 0; _i242 < _map241.size; ++_i242) { - String _key239; // required - String _val240; // required - _key239 = iprot.readString(); - _val240 = iprot.readString(); - this.part_vals.put(_key239, _val240); + String _key243; // required + String _val244; // required + _key243 = iprot.readString(); + _val244 = iprot.readString(); + this.part_vals.put(_key243, _val244); } iprot.readMapEnd(); } @@ -49097,10 +49097,10 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.part_vals.size())); - for (Map.Entry _iter241 : this.part_vals.entrySet()) + for (Map.Entry _iter245 : this.part_vals.entrySet()) { - oprot.writeString(_iter241.getKey()); - oprot.writeString(_iter241.getValue()); + oprot.writeString(_iter245.getKey()); + oprot.writeString(_iter245.getValue()); } oprot.writeMapEnd(); } @@ -50396,15 +50396,15 @@ case 3: // PART_VALS if (field.type == org.apache.thrift.protocol.TType.MAP) { { - org.apache.thrift.protocol.TMap _map242 = iprot.readMapBegin(); - this.part_vals = new HashMap(2*_map242.size); - for (int _i243 = 0; _i243 < _map242.size; ++_i243) + org.apache.thrift.protocol.TMap _map246 = iprot.readMapBegin(); + this.part_vals = new HashMap(2*_map246.size); + for (int _i247 = 0; _i247 < _map246.size; ++_i247) { - String _key244; // required - String _val245; // required - _key244 = iprot.readString(); - _val245 = iprot.readString(); - this.part_vals.put(_key244, _val245); + String _key248; // required + String _val249; // required + _key248 = iprot.readString(); + _val249 = iprot.readString(); + this.part_vals.put(_key248, _val249); } iprot.readMapEnd(); } @@ -50446,10 +50446,10 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.part_vals.size())); - for (Map.Entry _iter246 : this.part_vals.entrySet()) + for (Map.Entry _iter250 : this.part_vals.entrySet()) { - oprot.writeString(_iter246.getKey()); - oprot.writeString(_iter246.getValue()); + oprot.writeString(_iter250.getKey()); + oprot.writeString(_iter250.getValue()); } oprot.writeMapEnd(); } @@ -56055,14 +56055,14 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list247 = iprot.readListBegin(); - this.success = new ArrayList(_list247.size); - for (int _i248 = 0; _i248 < _list247.size; ++_i248) + org.apache.thrift.protocol.TList _list251 = iprot.readListBegin(); + this.success = new ArrayList(_list251.size); + for (int _i252 = 0; _i252 < _list251.size; ++_i252) { - Index _elem249; // required - _elem249 = new Index(); - _elem249.read(iprot); - this.success.add(_elem249); + Index _elem253; // required + _elem253 = new Index(); + _elem253.read(iprot); + this.success.add(_elem253); } iprot.readListEnd(); } @@ -56102,9 +56102,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size())); - for (Index _iter250 : this.success) + for (Index _iter254 : this.success) { - _iter250.write(oprot); + _iter254.write(oprot); } oprot.writeListEnd(); } @@ -56966,13 +56966,13 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list251 = iprot.readListBegin(); - this.success = new ArrayList(_list251.size); - for (int _i252 = 0; _i252 < _list251.size; ++_i252) + org.apache.thrift.protocol.TList _list255 = iprot.readListBegin(); + this.success = new ArrayList(_list255.size); + for (int _i256 = 0; _i256 < _list255.size; ++_i256) { - String _elem253; // required - _elem253 = iprot.readString(); - this.success.add(_elem253); + String _elem257; // required + _elem257 = iprot.readString(); + this.success.add(_elem257); } iprot.readListEnd(); } @@ -57004,9 +57004,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.success.size())); - for (String _iter254 : this.success) + for (String _iter258 : this.success) { - oprot.writeString(_iter254); + oprot.writeString(_iter258); } oprot.writeListEnd(); } @@ -58935,13 +58935,13 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list255 = iprot.readListBegin(); - this.success = new ArrayList(_list255.size); - for (int _i256 = 0; _i256 < _list255.size; ++_i256) + org.apache.thrift.protocol.TList _list259 = iprot.readListBegin(); + this.success = new ArrayList(_list259.size); + for (int _i260 = 0; _i260 < _list259.size; ++_i260) { - String _elem257; // required - _elem257 = iprot.readString(); - this.success.add(_elem257); + String _elem261; // required + _elem261 = iprot.readString(); + this.success.add(_elem261); } iprot.readListEnd(); } @@ -58973,9 +58973,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.success.size())); - for (String _iter258 : this.success) + for (String _iter262 : this.success) { - oprot.writeString(_iter258); + oprot.writeString(_iter262); } oprot.writeListEnd(); } @@ -61749,14 +61749,14 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list259 = iprot.readListBegin(); - this.success = new ArrayList(_list259.size); - for (int _i260 = 0; _i260 < _list259.size; ++_i260) + org.apache.thrift.protocol.TList _list263 = iprot.readListBegin(); + this.success = new ArrayList(_list263.size); + for (int _i264 = 0; _i264 < _list263.size; ++_i264) { - Role _elem261; // required - _elem261 = new Role(); - _elem261.read(iprot); - this.success.add(_elem261); + Role _elem265; // required + _elem265 = new Role(); + _elem265.read(iprot); + this.success.add(_elem265); } iprot.readListEnd(); } @@ -61788,9 +61788,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size())); - for (Role _iter262 : this.success) + for (Role _iter266 : this.success) { - _iter262.write(oprot); + _iter266.write(oprot); } oprot.writeListEnd(); } @@ -62251,13 +62251,13 @@ case 3: // GROUP_NAMES if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list263 = iprot.readListBegin(); - this.group_names = new ArrayList(_list263.size); - for (int _i264 = 0; _i264 < _list263.size; ++_i264) + org.apache.thrift.protocol.TList _list267 = iprot.readListBegin(); + this.group_names = new ArrayList(_list267.size); + for (int _i268 = 0; _i268 < _list267.size; ++_i268) { - String _elem265; // required - _elem265 = iprot.readString(); - this.group_names.add(_elem265); + String _elem269; // required + _elem269 = iprot.readString(); + this.group_names.add(_elem269); } iprot.readListEnd(); } @@ -62292,9 +62292,9 @@ oprot.writeFieldBegin(GROUP_NAMES_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.group_names.size())); - for (String _iter266 : this.group_names) + for (String _iter270 : this.group_names) { - oprot.writeString(_iter266); + oprot.writeString(_iter270); } oprot.writeListEnd(); } @@ -63541,14 +63541,14 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list267 = iprot.readListBegin(); - this.success = new ArrayList(_list267.size); - for (int _i268 = 0; _i268 < _list267.size; ++_i268) + org.apache.thrift.protocol.TList _list271 = iprot.readListBegin(); + this.success = new ArrayList(_list271.size); + for (int _i272 = 0; _i272 < _list271.size; ++_i272) { - HiveObjectPrivilege _elem269; // required - _elem269 = new HiveObjectPrivilege(); - _elem269.read(iprot); - this.success.add(_elem269); + HiveObjectPrivilege _elem273; // required + _elem273 = new HiveObjectPrivilege(); + _elem273.read(iprot); + this.success.add(_elem273); } iprot.readListEnd(); } @@ -63580,9 +63580,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size())); - for (HiveObjectPrivilege _iter270 : this.success) + for (HiveObjectPrivilege _iter274 : this.success) { - _iter270.write(oprot); + _iter274.write(oprot); } oprot.writeListEnd(); } @@ -65319,13 +65319,13 @@ case 2: // GROUP_NAMES if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list271 = iprot.readListBegin(); - this.group_names = new ArrayList(_list271.size); - for (int _i272 = 0; _i272 < _list271.size; ++_i272) + org.apache.thrift.protocol.TList _list275 = iprot.readListBegin(); + this.group_names = new ArrayList(_list275.size); + for (int _i276 = 0; _i276 < _list275.size; ++_i276) { - String _elem273; // required - _elem273 = iprot.readString(); - this.group_names.add(_elem273); + String _elem277; // required + _elem277 = iprot.readString(); + this.group_names.add(_elem277); } iprot.readListEnd(); } @@ -65355,9 +65355,9 @@ oprot.writeFieldBegin(GROUP_NAMES_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.group_names.size())); - for (String _iter274 : this.group_names) + for (String _iter278 : this.group_names) { - oprot.writeString(_iter274); + oprot.writeString(_iter278); } oprot.writeListEnd(); } @@ -65731,13 +65731,13 @@ case 0: // SUCCESS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list275 = iprot.readListBegin(); - this.success = new ArrayList(_list275.size); - for (int _i276 = 0; _i276 < _list275.size; ++_i276) + org.apache.thrift.protocol.TList _list279 = iprot.readListBegin(); + this.success = new ArrayList(_list279.size); + for (int _i280 = 0; _i280 < _list279.size; ++_i280) { - String _elem277; // required - _elem277 = iprot.readString(); - this.success.add(_elem277); + String _elem281; // required + _elem281 = iprot.readString(); + this.success.add(_elem281); } iprot.readListEnd(); } @@ -65769,9 +65769,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.success.size())); - for (String _iter278 : this.success) + for (String _iter282 : this.success) { - oprot.writeString(_iter278); + oprot.writeString(_iter282); } oprot.writeListEnd(); } Index: metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Schema.java =================================================================== --- metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Schema.java (revision 25657) +++ metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Schema.java (working copy) @@ -363,14 +363,14 @@ case 1: // FIELD_SCHEMAS if (field.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list89 = iprot.readListBegin(); - this.fieldSchemas = new ArrayList(_list89.size); - for (int _i90 = 0; _i90 < _list89.size; ++_i90) + org.apache.thrift.protocol.TList _list93 = iprot.readListBegin(); + this.fieldSchemas = new ArrayList(_list93.size); + for (int _i94 = 0; _i94 < _list93.size; ++_i94) { - FieldSchema _elem91; // required - _elem91 = new FieldSchema(); - _elem91.read(iprot); - this.fieldSchemas.add(_elem91); + FieldSchema _elem95; // required + _elem95 = new FieldSchema(); + _elem95.read(iprot); + this.fieldSchemas.add(_elem95); } iprot.readListEnd(); } @@ -381,15 +381,15 @@ case 2: // PROPERTIES if (field.type == org.apache.thrift.protocol.TType.MAP) { { - org.apache.thrift.protocol.TMap _map92 = iprot.readMapBegin(); - this.properties = new HashMap(2*_map92.size); - for (int _i93 = 0; _i93 < _map92.size; ++_i93) + org.apache.thrift.protocol.TMap _map96 = iprot.readMapBegin(); + this.properties = new HashMap(2*_map96.size); + for (int _i97 = 0; _i97 < _map96.size; ++_i97) { - String _key94; // required - String _val95; // required - _key94 = iprot.readString(); - _val95 = iprot.readString(); - this.properties.put(_key94, _val95); + String _key98; // required + String _val99; // required + _key98 = iprot.readString(); + _val99 = iprot.readString(); + this.properties.put(_key98, _val99); } iprot.readMapEnd(); } @@ -414,9 +414,9 @@ oprot.writeFieldBegin(FIELD_SCHEMAS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.fieldSchemas.size())); - for (FieldSchema _iter96 : this.fieldSchemas) + for (FieldSchema _iter100 : this.fieldSchemas) { - _iter96.write(oprot); + _iter100.write(oprot); } oprot.writeListEnd(); } @@ -426,10 +426,10 @@ oprot.writeFieldBegin(PROPERTIES_FIELD_DESC); { oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.properties.size())); - for (Map.Entry _iter97 : this.properties.entrySet()) + for (Map.Entry _iter101 : this.properties.entrySet()) { - oprot.writeString(_iter97.getKey()); - oprot.writeString(_iter97.getValue()); + oprot.writeString(_iter101.getKey()); + oprot.writeString(_iter101.getValue()); } oprot.writeMapEnd(); } Index: metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Table.java =================================================================== --- metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Table.java (revision 25657) +++ metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Table.java (working copy) @@ -36,6 +36,8 @@ private static final org.apache.thrift.protocol.TField VIEW_EXPANDED_TEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("viewExpandedText", org.apache.thrift.protocol.TType.STRING, (short)11); private static final org.apache.thrift.protocol.TField TABLE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("tableType", org.apache.thrift.protocol.TType.STRING, (short)12); private static final org.apache.thrift.protocol.TField PRIVILEGES_FIELD_DESC = new org.apache.thrift.protocol.TField("privileges", org.apache.thrift.protocol.TType.STRUCT, (short)13); + private static final org.apache.thrift.protocol.TField LINK_TARGET_FIELD_DESC = new org.apache.thrift.protocol.TField("linkTarget", org.apache.thrift.protocol.TType.STRUCT, (short)14); + private static final org.apache.thrift.protocol.TField LINK_TABLES_FIELD_DESC = new org.apache.thrift.protocol.TField("linkTables", org.apache.thrift.protocol.TType.LIST, (short)15); private String tableName; // required private String dbName; // required @@ -50,6 +52,8 @@ private String viewExpandedText; // required private String tableType; // required private PrincipalPrivilegeSet privileges; // required + private TableIdentifier linkTarget; // required + private List linkTables; // required /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ public enum _Fields implements org.apache.thrift.TFieldIdEnum { @@ -65,7 +69,9 @@ VIEW_ORIGINAL_TEXT((short)10, "viewOriginalText"), VIEW_EXPANDED_TEXT((short)11, "viewExpandedText"), TABLE_TYPE((short)12, "tableType"), - PRIVILEGES((short)13, "privileges"); + PRIVILEGES((short)13, "privileges"), + LINK_TARGET((short)14, "linkTarget"), + LINK_TABLES((short)15, "linkTables"); private static final Map byName = new HashMap(); @@ -106,6 +112,10 @@ return TABLE_TYPE; case 13: // PRIVILEGES return PRIVILEGES; + case 14: // LINK_TARGET + return LINK_TARGET; + case 15: // LINK_TABLES + return LINK_TABLES; default: return null; } @@ -183,6 +193,11 @@ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); tmpMap.put(_Fields.PRIVILEGES, new org.apache.thrift.meta_data.FieldMetaData("privileges", org.apache.thrift.TFieldRequirementType.OPTIONAL, new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PrincipalPrivilegeSet.class))); + tmpMap.put(_Fields.LINK_TARGET, new org.apache.thrift.meta_data.FieldMetaData("linkTarget", org.apache.thrift.TFieldRequirementType.OPTIONAL, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TableIdentifier.class))); + tmpMap.put(_Fields.LINK_TABLES, new org.apache.thrift.meta_data.FieldMetaData("linkTables", org.apache.thrift.TFieldRequirementType.OPTIONAL, + new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TableIdentifier.class)))); metaDataMap = Collections.unmodifiableMap(tmpMap); org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Table.class, metaDataMap); } @@ -277,6 +292,16 @@ if (other.isSetPrivileges()) { this.privileges = new PrincipalPrivilegeSet(other.privileges); } + if (other.isSetLinkTarget()) { + this.linkTarget = new TableIdentifier(other.linkTarget); + } + if (other.isSetLinkTables()) { + List __this__linkTables = new ArrayList(); + for (TableIdentifier other_element : other.linkTables) { + __this__linkTables.add(new TableIdentifier(other_element)); + } + this.linkTables = __this__linkTables; + } } public Table deepCopy() { @@ -301,6 +326,8 @@ this.viewExpandedText = null; this.tableType = null; this.privileges = null; + this.linkTarget = null; + this.linkTables = null; } public String getTableName() { @@ -625,6 +652,67 @@ } } + public TableIdentifier getLinkTarget() { + return this.linkTarget; + } + + public void setLinkTarget(TableIdentifier linkTarget) { + this.linkTarget = linkTarget; + } + + public void unsetLinkTarget() { + this.linkTarget = null; + } + + /** Returns true if field linkTarget is set (has been assigned a value) and false otherwise */ + public boolean isSetLinkTarget() { + return this.linkTarget != null; + } + + public void setLinkTargetIsSet(boolean value) { + if (!value) { + this.linkTarget = null; + } + } + + public int getLinkTablesSize() { + return (this.linkTables == null) ? 0 : this.linkTables.size(); + } + + public java.util.Iterator getLinkTablesIterator() { + return (this.linkTables == null) ? null : this.linkTables.iterator(); + } + + public void addToLinkTables(TableIdentifier elem) { + if (this.linkTables == null) { + this.linkTables = new ArrayList(); + } + this.linkTables.add(elem); + } + + public List getLinkTables() { + return this.linkTables; + } + + public void setLinkTables(List linkTables) { + this.linkTables = linkTables; + } + + public void unsetLinkTables() { + this.linkTables = null; + } + + /** Returns true if field linkTables is set (has been assigned a value) and false otherwise */ + public boolean isSetLinkTables() { + return this.linkTables != null; + } + + public void setLinkTablesIsSet(boolean value) { + if (!value) { + this.linkTables = null; + } + } + public void setFieldValue(_Fields field, Object value) { switch (field) { case TABLE_NAME: @@ -731,6 +819,22 @@ } break; + case LINK_TARGET: + if (value == null) { + unsetLinkTarget(); + } else { + setLinkTarget((TableIdentifier)value); + } + break; + + case LINK_TABLES: + if (value == null) { + unsetLinkTables(); + } else { + setLinkTables((List)value); + } + break; + } } @@ -775,6 +879,12 @@ case PRIVILEGES: return getPrivileges(); + case LINK_TARGET: + return getLinkTarget(); + + case LINK_TABLES: + return getLinkTables(); + } throw new IllegalStateException(); } @@ -812,6 +922,10 @@ return isSetTableType(); case PRIVILEGES: return isSetPrivileges(); + case LINK_TARGET: + return isSetLinkTarget(); + case LINK_TABLES: + return isSetLinkTables(); } throw new IllegalStateException(); } @@ -946,6 +1060,24 @@ return false; } + boolean this_present_linkTarget = true && this.isSetLinkTarget(); + boolean that_present_linkTarget = true && that.isSetLinkTarget(); + if (this_present_linkTarget || that_present_linkTarget) { + if (!(this_present_linkTarget && that_present_linkTarget)) + return false; + if (!this.linkTarget.equals(that.linkTarget)) + return false; + } + + boolean this_present_linkTables = true && this.isSetLinkTables(); + boolean that_present_linkTables = true && that.isSetLinkTables(); + if (this_present_linkTables || that_present_linkTables) { + if (!(this_present_linkTables && that_present_linkTables)) + return false; + if (!this.linkTables.equals(that.linkTables)) + return false; + } + return true; } @@ -1092,6 +1224,26 @@ return lastComparison; } } + lastComparison = Boolean.valueOf(isSetLinkTarget()).compareTo(typedOther.isSetLinkTarget()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetLinkTarget()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.linkTarget, typedOther.linkTarget); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetLinkTables()).compareTo(typedOther.isSetLinkTables()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetLinkTables()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.linkTables, typedOther.linkTables); + if (lastComparison != 0) { + return lastComparison; + } + } return 0; } @@ -1228,6 +1380,32 @@ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); } break; + case 14: // LINK_TARGET + if (field.type == org.apache.thrift.protocol.TType.STRUCT) { + this.linkTarget = new TableIdentifier(); + this.linkTarget.read(iprot); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); + } + break; + case 15: // LINK_TABLES + if (field.type == org.apache.thrift.protocol.TType.LIST) { + { + org.apache.thrift.protocol.TList _list73 = iprot.readListBegin(); + this.linkTables = new ArrayList(_list73.size); + for (int _i74 = 0; _i74 < _list73.size; ++_i74) + { + TableIdentifier _elem75; // required + _elem75 = new TableIdentifier(); + _elem75.read(iprot); + this.linkTables.add(_elem75); + } + iprot.readListEnd(); + } + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); + } + break; default: org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); } @@ -1274,9 +1452,9 @@ oprot.writeFieldBegin(PARTITION_KEYS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.partitionKeys.size())); - for (FieldSchema _iter73 : this.partitionKeys) + for (FieldSchema _iter76 : this.partitionKeys) { - _iter73.write(oprot); + _iter76.write(oprot); } oprot.writeListEnd(); } @@ -1286,10 +1464,10 @@ oprot.writeFieldBegin(PARAMETERS_FIELD_DESC); { oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.parameters.size())); - for (Map.Entry _iter74 : this.parameters.entrySet()) + for (Map.Entry _iter77 : this.parameters.entrySet()) { - oprot.writeString(_iter74.getKey()); - oprot.writeString(_iter74.getValue()); + oprot.writeString(_iter77.getKey()); + oprot.writeString(_iter77.getValue()); } oprot.writeMapEnd(); } @@ -1317,6 +1495,27 @@ oprot.writeFieldEnd(); } } + if (this.linkTarget != null) { + if (isSetLinkTarget()) { + oprot.writeFieldBegin(LINK_TARGET_FIELD_DESC); + this.linkTarget.write(oprot); + oprot.writeFieldEnd(); + } + } + if (this.linkTables != null) { + if (isSetLinkTables()) { + oprot.writeFieldBegin(LINK_TABLES_FIELD_DESC); + { + oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.linkTables.size())); + for (TableIdentifier _iter78 : this.linkTables) + { + _iter78.write(oprot); + } + oprot.writeListEnd(); + } + oprot.writeFieldEnd(); + } + } oprot.writeFieldStop(); oprot.writeStructEnd(); } @@ -1419,6 +1618,26 @@ } first = false; } + if (isSetLinkTarget()) { + if (!first) sb.append(", "); + sb.append("linkTarget:"); + if (this.linkTarget == null) { + sb.append("null"); + } else { + sb.append(this.linkTarget); + } + first = false; + } + if (isSetLinkTables()) { + if (!first) sb.append(", "); + sb.append("linkTables:"); + if (this.linkTables == null) { + sb.append("null"); + } else { + sb.append(this.linkTables); + } + first = false; + } sb.append(")"); return sb.toString(); } Index: metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/TableIdentifier.java =================================================================== --- metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/TableIdentifier.java (revision 0) +++ metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/TableIdentifier.java (working copy) @@ -0,0 +1,404 @@ +/** + * Autogenerated by Thrift Compiler (0.7.0) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + */ +package org.apache.hadoop.hive.metastore.api; + +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; +import java.util.EnumMap; +import java.util.Set; +import java.util.HashSet; +import java.util.EnumSet; +import java.util.Collections; +import java.util.BitSet; +import java.nio.ByteBuffer; +import java.util.Arrays; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class TableIdentifier implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TableIdentifier"); + + private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbName", org.apache.thrift.protocol.TType.STRING, (short)1); + private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2); + + private String dbName; // required + private String tableName; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + DB_NAME((short)1, "dbName"), + TABLE_NAME((short)2, "tableName"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // DB_NAME + return DB_NAME; + case 2: // TABLE_NAME + return TABLE_NAME; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("dbName", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TableIdentifier.class, metaDataMap); + } + + public TableIdentifier() { + } + + public TableIdentifier( + String dbName, + String tableName) + { + this(); + this.dbName = dbName; + this.tableName = tableName; + } + + /** + * Performs a deep copy on other. + */ + public TableIdentifier(TableIdentifier other) { + if (other.isSetDbName()) { + this.dbName = other.dbName; + } + if (other.isSetTableName()) { + this.tableName = other.tableName; + } + } + + public TableIdentifier deepCopy() { + return new TableIdentifier(this); + } + + @Override + public void clear() { + this.dbName = null; + this.tableName = null; + } + + public String getDbName() { + return this.dbName; + } + + public void setDbName(String dbName) { + this.dbName = dbName; + } + + public void unsetDbName() { + this.dbName = null; + } + + /** Returns true if field dbName is set (has been assigned a value) and false otherwise */ + public boolean isSetDbName() { + return this.dbName != null; + } + + public void setDbNameIsSet(boolean value) { + if (!value) { + this.dbName = null; + } + } + + public String getTableName() { + return this.tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public void unsetTableName() { + this.tableName = null; + } + + /** Returns true if field tableName is set (has been assigned a value) and false otherwise */ + public boolean isSetTableName() { + return this.tableName != null; + } + + public void setTableNameIsSet(boolean value) { + if (!value) { + this.tableName = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case DB_NAME: + if (value == null) { + unsetDbName(); + } else { + setDbName((String)value); + } + break; + + case TABLE_NAME: + if (value == null) { + unsetTableName(); + } else { + setTableName((String)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case DB_NAME: + return getDbName(); + + case TABLE_NAME: + return getTableName(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case DB_NAME: + return isSetDbName(); + case TABLE_NAME: + return isSetTableName(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof TableIdentifier) + return this.equals((TableIdentifier)that); + return false; + } + + public boolean equals(TableIdentifier that) { + if (that == null) + return false; + + boolean this_present_dbName = true && this.isSetDbName(); + boolean that_present_dbName = true && that.isSetDbName(); + if (this_present_dbName || that_present_dbName) { + if (!(this_present_dbName && that_present_dbName)) + return false; + if (!this.dbName.equals(that.dbName)) + return false; + } + + boolean this_present_tableName = true && this.isSetTableName(); + boolean that_present_tableName = true && that.isSetTableName(); + if (this_present_tableName || that_present_tableName) { + if (!(this_present_tableName && that_present_tableName)) + return false; + if (!this.tableName.equals(that.tableName)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + return 0; + } + + public int compareTo(TableIdentifier other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + TableIdentifier typedOther = (TableIdentifier)other; + + lastComparison = Boolean.valueOf(isSetDbName()).compareTo(typedOther.isSetDbName()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetDbName()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbName, typedOther.dbName); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(typedOther.isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetTableName()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField field; + iprot.readStructBegin(); + while (true) + { + field = iprot.readFieldBegin(); + if (field.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (field.id) { + case 1: // DB_NAME + if (field.type == org.apache.thrift.protocol.TType.STRING) { + this.dbName = iprot.readString(); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); + } + break; + case 2: // TABLE_NAME + if (field.type == org.apache.thrift.protocol.TType.STRING) { + this.tableName = iprot.readString(); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (this.dbName != null) { + oprot.writeFieldBegin(DB_NAME_FIELD_DESC); + oprot.writeString(this.dbName); + oprot.writeFieldEnd(); + } + if (this.tableName != null) { + oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC); + oprot.writeString(this.tableName); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("TableIdentifier("); + boolean first = true; + + sb.append("dbName:"); + if (this.dbName == null) { + sb.append("null"); + } else { + sb.append(this.dbName); + } + first = false; + if (!first) sb.append(", "); + sb.append("tableName:"); + if (this.tableName == null) { + sb.append("null"); + } else { + sb.append(this.tableName); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + +} + Index: metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Index.java =================================================================== --- metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Index.java (revision 25657) +++ metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Index.java (working copy) @@ -949,15 +949,15 @@ case 9: // PARAMETERS if (field.type == org.apache.thrift.protocol.TType.MAP) { { - org.apache.thrift.protocol.TMap _map84 = iprot.readMapBegin(); - this.parameters = new HashMap(2*_map84.size); - for (int _i85 = 0; _i85 < _map84.size; ++_i85) + org.apache.thrift.protocol.TMap _map88 = iprot.readMapBegin(); + this.parameters = new HashMap(2*_map88.size); + for (int _i89 = 0; _i89 < _map88.size; ++_i89) { - String _key86; // required - String _val87; // required - _key86 = iprot.readString(); - _val87 = iprot.readString(); - this.parameters.put(_key86, _val87); + String _key90; // required + String _val91; // required + _key90 = iprot.readString(); + _val91 = iprot.readString(); + this.parameters.put(_key90, _val91); } iprot.readMapEnd(); } @@ -1026,10 +1026,10 @@ oprot.writeFieldBegin(PARAMETERS_FIELD_DESC); { oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.parameters.size())); - for (Map.Entry _iter88 : this.parameters.entrySet()) + for (Map.Entry _iter92 : this.parameters.entrySet()) { - oprot.writeString(_iter88.getKey()); - oprot.writeString(_iter88.getValue()); + oprot.writeString(_iter92.getKey()); + oprot.writeString(_iter92.getValue()); } oprot.writeMapEnd(); } Index: metastore/src/gen/thrift/gen-php/hive_metastore/ThriftHiveMetastore.php =================================================================== --- metastore/src/gen/thrift/gen-php/hive_metastore/ThriftHiveMetastore.php (revision 25657) +++ metastore/src/gen/thrift/gen-php/hive_metastore/ThriftHiveMetastore.php (working copy) @@ -4773,14 +4773,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size183 = 0; - $_etype186 = 0; - $xfer += $input->readListBegin($_etype186, $_size183); - for ($_i187 = 0; $_i187 < $_size183; ++$_i187) + $_size190 = 0; + $_etype193 = 0; + $xfer += $input->readListBegin($_etype193, $_size190); + for ($_i194 = 0; $_i194 < $_size190; ++$_i194) { - $elem188 = null; - $xfer += $input->readString($elem188); - $this->success []= $elem188; + $elem195 = null; + $xfer += $input->readString($elem195); + $this->success []= $elem195; } $xfer += $input->readListEnd(); } else { @@ -4816,9 +4816,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter189) + foreach ($this->success as $iter196) { - $xfer += $output->writeString($iter189); + $xfer += $output->writeString($iter196); } } $output->writeListEnd(); @@ -4943,14 +4943,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size190 = 0; - $_etype193 = 0; - $xfer += $input->readListBegin($_etype193, $_size190); - for ($_i194 = 0; $_i194 < $_size190; ++$_i194) + $_size197 = 0; + $_etype200 = 0; + $xfer += $input->readListBegin($_etype200, $_size197); + for ($_i201 = 0; $_i201 < $_size197; ++$_i201) { - $elem195 = null; - $xfer += $input->readString($elem195); - $this->success []= $elem195; + $elem202 = null; + $xfer += $input->readString($elem202); + $this->success []= $elem202; } $xfer += $input->readListEnd(); } else { @@ -4986,9 +4986,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter196) + foreach ($this->success as $iter203) { - $xfer += $output->writeString($iter196); + $xfer += $output->writeString($iter203); } } $output->writeListEnd(); @@ -5929,18 +5929,18 @@ case 0: if ($ftype == TType::MAP) { $this->success = array(); - $_size197 = 0; - $_ktype198 = 0; - $_vtype199 = 0; - $xfer += $input->readMapBegin($_ktype198, $_vtype199, $_size197); - for ($_i201 = 0; $_i201 < $_size197; ++$_i201) + $_size204 = 0; + $_ktype205 = 0; + $_vtype206 = 0; + $xfer += $input->readMapBegin($_ktype205, $_vtype206, $_size204); + for ($_i208 = 0; $_i208 < $_size204; ++$_i208) { - $key202 = ''; - $val203 = new Type(); - $xfer += $input->readString($key202); - $val203 = new Type(); - $xfer += $val203->read($input); - $this->success[$key202] = $val203; + $key209 = ''; + $val210 = new Type(); + $xfer += $input->readString($key209); + $val210 = new Type(); + $xfer += $val210->read($input); + $this->success[$key209] = $val210; } $xfer += $input->readMapEnd(); } else { @@ -5976,10 +5976,10 @@ { $output->writeMapBegin(TType::STRING, TType::STRUCT, count($this->success)); { - foreach ($this->success as $kiter204 => $viter205) + foreach ($this->success as $kiter211 => $viter212) { - $xfer += $output->writeString($kiter204); - $xfer += $viter205->write($output); + $xfer += $output->writeString($kiter211); + $xfer += $viter212->write($output); } } $output->writeMapEnd(); @@ -6165,15 +6165,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size206 = 0; - $_etype209 = 0; - $xfer += $input->readListBegin($_etype209, $_size206); - for ($_i210 = 0; $_i210 < $_size206; ++$_i210) + $_size213 = 0; + $_etype216 = 0; + $xfer += $input->readListBegin($_etype216, $_size213); + for ($_i217 = 0; $_i217 < $_size213; ++$_i217) { - $elem211 = null; - $elem211 = new FieldSchema(); - $xfer += $elem211->read($input); - $this->success []= $elem211; + $elem218 = null; + $elem218 = new FieldSchema(); + $xfer += $elem218->read($input); + $this->success []= $elem218; } $xfer += $input->readListEnd(); } else { @@ -6225,9 +6225,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter212) + foreach ($this->success as $iter219) { - $xfer += $iter212->write($output); + $xfer += $iter219->write($output); } } $output->writeListEnd(); @@ -6423,15 +6423,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size213 = 0; - $_etype216 = 0; - $xfer += $input->readListBegin($_etype216, $_size213); - for ($_i217 = 0; $_i217 < $_size213; ++$_i217) + $_size220 = 0; + $_etype223 = 0; + $xfer += $input->readListBegin($_etype223, $_size220); + for ($_i224 = 0; $_i224 < $_size220; ++$_i224) { - $elem218 = null; - $elem218 = new FieldSchema(); - $xfer += $elem218->read($input); - $this->success []= $elem218; + $elem225 = null; + $elem225 = new FieldSchema(); + $xfer += $elem225->read($input); + $this->success []= $elem225; } $xfer += $input->readListEnd(); } else { @@ -6483,9 +6483,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter219) + foreach ($this->success as $iter226) { - $xfer += $iter219->write($output); + $xfer += $iter226->write($output); } } $output->writeListEnd(); @@ -7329,14 +7329,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size220 = 0; - $_etype223 = 0; - $xfer += $input->readListBegin($_etype223, $_size220); - for ($_i224 = 0; $_i224 < $_size220; ++$_i224) + $_size227 = 0; + $_etype230 = 0; + $xfer += $input->readListBegin($_etype230, $_size227); + for ($_i231 = 0; $_i231 < $_size227; ++$_i231) { - $elem225 = null; - $xfer += $input->readString($elem225); - $this->success []= $elem225; + $elem232 = null; + $xfer += $input->readString($elem232); + $this->success []= $elem232; } $xfer += $input->readListEnd(); } else { @@ -7372,9 +7372,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter226) + foreach ($this->success as $iter233) { - $xfer += $output->writeString($iter226); + $xfer += $output->writeString($iter233); } } $output->writeListEnd(); @@ -7521,14 +7521,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size227 = 0; - $_etype230 = 0; - $xfer += $input->readListBegin($_etype230, $_size227); - for ($_i231 = 0; $_i231 < $_size227; ++$_i231) + $_size234 = 0; + $_etype237 = 0; + $xfer += $input->readListBegin($_etype237, $_size234); + for ($_i238 = 0; $_i238 < $_size234; ++$_i238) { - $elem232 = null; - $xfer += $input->readString($elem232); - $this->success []= $elem232; + $elem239 = null; + $xfer += $input->readString($elem239); + $this->success []= $elem239; } $xfer += $input->readListEnd(); } else { @@ -7564,9 +7564,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter233) + foreach ($this->success as $iter240) { - $xfer += $output->writeString($iter233); + $xfer += $output->writeString($iter240); } } $output->writeListEnd(); @@ -7860,14 +7860,14 @@ case 2: if ($ftype == TType::LST) { $this->tbl_names = array(); - $_size234 = 0; - $_etype237 = 0; - $xfer += $input->readListBegin($_etype237, $_size234); - for ($_i238 = 0; $_i238 < $_size234; ++$_i238) + $_size241 = 0; + $_etype244 = 0; + $xfer += $input->readListBegin($_etype244, $_size241); + for ($_i245 = 0; $_i245 < $_size241; ++$_i245) { - $elem239 = null; - $xfer += $input->readString($elem239); - $this->tbl_names []= $elem239; + $elem246 = null; + $xfer += $input->readString($elem246); + $this->tbl_names []= $elem246; } $xfer += $input->readListEnd(); } else { @@ -7900,9 +7900,9 @@ { $output->writeListBegin(TType::STRING, count($this->tbl_names)); { - foreach ($this->tbl_names as $iter240) + foreach ($this->tbl_names as $iter247) { - $xfer += $output->writeString($iter240); + $xfer += $output->writeString($iter247); } } $output->writeListEnd(); @@ -7991,15 +7991,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size241 = 0; - $_etype244 = 0; - $xfer += $input->readListBegin($_etype244, $_size241); - for ($_i245 = 0; $_i245 < $_size241; ++$_i245) + $_size248 = 0; + $_etype251 = 0; + $xfer += $input->readListBegin($_etype251, $_size248); + for ($_i252 = 0; $_i252 < $_size248; ++$_i252) { - $elem246 = null; - $elem246 = new Table(); - $xfer += $elem246->read($input); - $this->success []= $elem246; + $elem253 = null; + $elem253 = new Table(); + $xfer += $elem253->read($input); + $this->success []= $elem253; } $xfer += $input->readListEnd(); } else { @@ -8051,9 +8051,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter247) + foreach ($this->success as $iter254) { - $xfer += $iter247->write($output); + $xfer += $iter254->write($output); } } $output->writeListEnd(); @@ -8268,14 +8268,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size248 = 0; - $_etype251 = 0; - $xfer += $input->readListBegin($_etype251, $_size248); - for ($_i252 = 0; $_i252 < $_size248; ++$_i252) + $_size255 = 0; + $_etype258 = 0; + $xfer += $input->readListBegin($_etype258, $_size255); + for ($_i259 = 0; $_i259 < $_size255; ++$_i259) { - $elem253 = null; - $xfer += $input->readString($elem253); - $this->success []= $elem253; + $elem260 = null; + $xfer += $input->readString($elem260); + $this->success []= $elem260; } $xfer += $input->readListEnd(); } else { @@ -8327,9 +8327,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter254) + foreach ($this->success as $iter261) { - $xfer += $output->writeString($iter254); + $xfer += $output->writeString($iter261); } } $output->writeListEnd(); @@ -9322,15 +9322,15 @@ case 1: if ($ftype == TType::LST) { $this->new_parts = array(); - $_size255 = 0; - $_etype258 = 0; - $xfer += $input->readListBegin($_etype258, $_size255); - for ($_i259 = 0; $_i259 < $_size255; ++$_i259) + $_size262 = 0; + $_etype265 = 0; + $xfer += $input->readListBegin($_etype265, $_size262); + for ($_i266 = 0; $_i266 < $_size262; ++$_i266) { - $elem260 = null; - $elem260 = new Partition(); - $xfer += $elem260->read($input); - $this->new_parts []= $elem260; + $elem267 = null; + $elem267 = new Partition(); + $xfer += $elem267->read($input); + $this->new_parts []= $elem267; } $xfer += $input->readListEnd(); } else { @@ -9358,9 +9358,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->new_parts)); { - foreach ($this->new_parts as $iter261) + foreach ($this->new_parts as $iter268) { - $xfer += $iter261->write($output); + $xfer += $iter268->write($output); } } $output->writeListEnd(); @@ -9589,14 +9589,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size262 = 0; - $_etype265 = 0; - $xfer += $input->readListBegin($_etype265, $_size262); - for ($_i266 = 0; $_i266 < $_size262; ++$_i266) + $_size269 = 0; + $_etype272 = 0; + $xfer += $input->readListBegin($_etype272, $_size269); + for ($_i273 = 0; $_i273 < $_size269; ++$_i273) { - $elem267 = null; - $xfer += $input->readString($elem267); - $this->part_vals []= $elem267; + $elem274 = null; + $xfer += $input->readString($elem274); + $this->part_vals []= $elem274; } $xfer += $input->readListEnd(); } else { @@ -9634,9 +9634,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter268) + foreach ($this->part_vals as $iter275) { - $xfer += $output->writeString($iter268); + $xfer += $output->writeString($iter275); } } $output->writeListEnd(); @@ -10133,14 +10133,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size269 = 0; - $_etype272 = 0; - $xfer += $input->readListBegin($_etype272, $_size269); - for ($_i273 = 0; $_i273 < $_size269; ++$_i273) + $_size276 = 0; + $_etype279 = 0; + $xfer += $input->readListBegin($_etype279, $_size276); + for ($_i280 = 0; $_i280 < $_size276; ++$_i280) { - $elem274 = null; - $xfer += $input->readString($elem274); - $this->part_vals []= $elem274; + $elem281 = null; + $xfer += $input->readString($elem281); + $this->part_vals []= $elem281; } $xfer += $input->readListEnd(); } else { @@ -10185,9 +10185,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter275) + foreach ($this->part_vals as $iter282) { - $xfer += $output->writeString($iter275); + $xfer += $output->writeString($iter282); } } $output->writeListEnd(); @@ -10647,14 +10647,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size276 = 0; - $_etype279 = 0; - $xfer += $input->readListBegin($_etype279, $_size276); - for ($_i280 = 0; $_i280 < $_size276; ++$_i280) + $_size283 = 0; + $_etype286 = 0; + $xfer += $input->readListBegin($_etype286, $_size283); + for ($_i287 = 0; $_i287 < $_size283; ++$_i287) { - $elem281 = null; - $xfer += $input->readString($elem281); - $this->part_vals []= $elem281; + $elem288 = null; + $xfer += $input->readString($elem288); + $this->part_vals []= $elem288; } $xfer += $input->readListEnd(); } else { @@ -10692,9 +10692,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter282) + foreach ($this->part_vals as $iter289) { - $xfer += $output->writeString($iter282); + $xfer += $output->writeString($iter289); } } $output->writeListEnd(); @@ -10926,14 +10926,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size283 = 0; - $_etype286 = 0; - $xfer += $input->readListBegin($_etype286, $_size283); - for ($_i287 = 0; $_i287 < $_size283; ++$_i287) + $_size290 = 0; + $_etype293 = 0; + $xfer += $input->readListBegin($_etype293, $_size290); + for ($_i294 = 0; $_i294 < $_size290; ++$_i294) { - $elem288 = null; - $xfer += $input->readString($elem288); - $this->part_vals []= $elem288; + $elem295 = null; + $xfer += $input->readString($elem295); + $this->part_vals []= $elem295; } $xfer += $input->readListEnd(); } else { @@ -10950,14 +10950,14 @@ case 5: if ($ftype == TType::LST) { $this->group_names = array(); - $_size289 = 0; - $_etype292 = 0; - $xfer += $input->readListBegin($_etype292, $_size289); - for ($_i293 = 0; $_i293 < $_size289; ++$_i293) + $_size296 = 0; + $_etype299 = 0; + $xfer += $input->readListBegin($_etype299, $_size296); + for ($_i300 = 0; $_i300 < $_size296; ++$_i300) { - $elem294 = null; - $xfer += $input->readString($elem294); - $this->group_names []= $elem294; + $elem301 = null; + $xfer += $input->readString($elem301); + $this->group_names []= $elem301; } $xfer += $input->readListEnd(); } else { @@ -10995,9 +10995,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter295) + foreach ($this->part_vals as $iter302) { - $xfer += $output->writeString($iter295); + $xfer += $output->writeString($iter302); } } $output->writeListEnd(); @@ -11017,9 +11017,9 @@ { $output->writeListBegin(TType::STRING, count($this->group_names)); { - foreach ($this->group_names as $iter296) + foreach ($this->group_names as $iter303) { - $xfer += $output->writeString($iter296); + $xfer += $output->writeString($iter303); } } $output->writeListEnd(); @@ -11565,15 +11565,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size297 = 0; - $_etype300 = 0; - $xfer += $input->readListBegin($_etype300, $_size297); - for ($_i301 = 0; $_i301 < $_size297; ++$_i301) + $_size304 = 0; + $_etype307 = 0; + $xfer += $input->readListBegin($_etype307, $_size304); + for ($_i308 = 0; $_i308 < $_size304; ++$_i308) { - $elem302 = null; - $elem302 = new Partition(); - $xfer += $elem302->read($input); - $this->success []= $elem302; + $elem309 = null; + $elem309 = new Partition(); + $xfer += $elem309->read($input); + $this->success []= $elem309; } $xfer += $input->readListEnd(); } else { @@ -11617,9 +11617,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter303) + foreach ($this->success as $iter310) { - $xfer += $iter303->write($output); + $xfer += $iter310->write($output); } } $output->writeListEnd(); @@ -11750,14 +11750,14 @@ case 5: if ($ftype == TType::LST) { $this->group_names = array(); - $_size304 = 0; - $_etype307 = 0; - $xfer += $input->readListBegin($_etype307, $_size304); - for ($_i308 = 0; $_i308 < $_size304; ++$_i308) + $_size311 = 0; + $_etype314 = 0; + $xfer += $input->readListBegin($_etype314, $_size311); + for ($_i315 = 0; $_i315 < $_size311; ++$_i315) { - $elem309 = null; - $xfer += $input->readString($elem309); - $this->group_names []= $elem309; + $elem316 = null; + $xfer += $input->readString($elem316); + $this->group_names []= $elem316; } $xfer += $input->readListEnd(); } else { @@ -11805,9 +11805,9 @@ { $output->writeListBegin(TType::STRING, count($this->group_names)); { - foreach ($this->group_names as $iter310) + foreach ($this->group_names as $iter317) { - $xfer += $output->writeString($iter310); + $xfer += $output->writeString($iter317); } } $output->writeListEnd(); @@ -11887,15 +11887,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size311 = 0; - $_etype314 = 0; - $xfer += $input->readListBegin($_etype314, $_size311); - for ($_i315 = 0; $_i315 < $_size311; ++$_i315) + $_size318 = 0; + $_etype321 = 0; + $xfer += $input->readListBegin($_etype321, $_size318); + for ($_i322 = 0; $_i322 < $_size318; ++$_i322) { - $elem316 = null; - $elem316 = new Partition(); - $xfer += $elem316->read($input); - $this->success []= $elem316; + $elem323 = null; + $elem323 = new Partition(); + $xfer += $elem323->read($input); + $this->success []= $elem323; } $xfer += $input->readListEnd(); } else { @@ -11939,9 +11939,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter317) + foreach ($this->success as $iter324) { - $xfer += $iter317->write($output); + $xfer += $iter324->write($output); } } $output->writeListEnd(); @@ -12133,14 +12133,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size318 = 0; - $_etype321 = 0; - $xfer += $input->readListBegin($_etype321, $_size318); - for ($_i322 = 0; $_i322 < $_size318; ++$_i322) + $_size325 = 0; + $_etype328 = 0; + $xfer += $input->readListBegin($_etype328, $_size325); + for ($_i329 = 0; $_i329 < $_size325; ++$_i329) { - $elem323 = null; - $xfer += $input->readString($elem323); - $this->success []= $elem323; + $elem330 = null; + $xfer += $input->readString($elem330); + $this->success []= $elem330; } $xfer += $input->readListEnd(); } else { @@ -12176,9 +12176,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter324) + foreach ($this->success as $iter331) { - $xfer += $output->writeString($iter324); + $xfer += $output->writeString($iter331); } } $output->writeListEnd(); @@ -12282,14 +12282,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size325 = 0; - $_etype328 = 0; - $xfer += $input->readListBegin($_etype328, $_size325); - for ($_i329 = 0; $_i329 < $_size325; ++$_i329) + $_size332 = 0; + $_etype335 = 0; + $xfer += $input->readListBegin($_etype335, $_size332); + for ($_i336 = 0; $_i336 < $_size332; ++$_i336) { - $elem330 = null; - $xfer += $input->readString($elem330); - $this->part_vals []= $elem330; + $elem337 = null; + $xfer += $input->readString($elem337); + $this->part_vals []= $elem337; } $xfer += $input->readListEnd(); } else { @@ -12334,9 +12334,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter331) + foreach ($this->part_vals as $iter338) { - $xfer += $output->writeString($iter331); + $xfer += $output->writeString($iter338); } } $output->writeListEnd(); @@ -12421,15 +12421,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size332 = 0; - $_etype335 = 0; - $xfer += $input->readListBegin($_etype335, $_size332); - for ($_i336 = 0; $_i336 < $_size332; ++$_i336) + $_size339 = 0; + $_etype342 = 0; + $xfer += $input->readListBegin($_etype342, $_size339); + for ($_i343 = 0; $_i343 < $_size339; ++$_i343) { - $elem337 = null; - $elem337 = new Partition(); - $xfer += $elem337->read($input); - $this->success []= $elem337; + $elem344 = null; + $elem344 = new Partition(); + $xfer += $elem344->read($input); + $this->success []= $elem344; } $xfer += $input->readListEnd(); } else { @@ -12473,9 +12473,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter338) + foreach ($this->success as $iter345) { - $xfer += $iter338->write($output); + $xfer += $iter345->write($output); } } $output->writeListEnd(); @@ -12604,14 +12604,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size339 = 0; - $_etype342 = 0; - $xfer += $input->readListBegin($_etype342, $_size339); - for ($_i343 = 0; $_i343 < $_size339; ++$_i343) + $_size346 = 0; + $_etype349 = 0; + $xfer += $input->readListBegin($_etype349, $_size346); + for ($_i350 = 0; $_i350 < $_size346; ++$_i350) { - $elem344 = null; - $xfer += $input->readString($elem344); - $this->part_vals []= $elem344; + $elem351 = null; + $xfer += $input->readString($elem351); + $this->part_vals []= $elem351; } $xfer += $input->readListEnd(); } else { @@ -12635,14 +12635,14 @@ case 6: if ($ftype == TType::LST) { $this->group_names = array(); - $_size345 = 0; - $_etype348 = 0; - $xfer += $input->readListBegin($_etype348, $_size345); - for ($_i349 = 0; $_i349 < $_size345; ++$_i349) + $_size352 = 0; + $_etype355 = 0; + $xfer += $input->readListBegin($_etype355, $_size352); + for ($_i356 = 0; $_i356 < $_size352; ++$_i356) { - $elem350 = null; - $xfer += $input->readString($elem350); - $this->group_names []= $elem350; + $elem357 = null; + $xfer += $input->readString($elem357); + $this->group_names []= $elem357; } $xfer += $input->readListEnd(); } else { @@ -12680,9 +12680,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter351) + foreach ($this->part_vals as $iter358) { - $xfer += $output->writeString($iter351); + $xfer += $output->writeString($iter358); } } $output->writeListEnd(); @@ -12707,9 +12707,9 @@ { $output->writeListBegin(TType::STRING, count($this->group_names)); { - foreach ($this->group_names as $iter352) + foreach ($this->group_names as $iter359) { - $xfer += $output->writeString($iter352); + $xfer += $output->writeString($iter359); } } $output->writeListEnd(); @@ -12789,15 +12789,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size353 = 0; - $_etype356 = 0; - $xfer += $input->readListBegin($_etype356, $_size353); - for ($_i357 = 0; $_i357 < $_size353; ++$_i357) + $_size360 = 0; + $_etype363 = 0; + $xfer += $input->readListBegin($_etype363, $_size360); + for ($_i364 = 0; $_i364 < $_size360; ++$_i364) { - $elem358 = null; - $elem358 = new Partition(); - $xfer += $elem358->read($input); - $this->success []= $elem358; + $elem365 = null; + $elem365 = new Partition(); + $xfer += $elem365->read($input); + $this->success []= $elem365; } $xfer += $input->readListEnd(); } else { @@ -12841,9 +12841,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter359) + foreach ($this->success as $iter366) { - $xfer += $iter359->write($output); + $xfer += $iter366->write($output); } } $output->writeListEnd(); @@ -12952,14 +12952,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size360 = 0; - $_etype363 = 0; - $xfer += $input->readListBegin($_etype363, $_size360); - for ($_i364 = 0; $_i364 < $_size360; ++$_i364) + $_size367 = 0; + $_etype370 = 0; + $xfer += $input->readListBegin($_etype370, $_size367); + for ($_i371 = 0; $_i371 < $_size367; ++$_i371) { - $elem365 = null; - $xfer += $input->readString($elem365); - $this->part_vals []= $elem365; + $elem372 = null; + $xfer += $input->readString($elem372); + $this->part_vals []= $elem372; } $xfer += $input->readListEnd(); } else { @@ -13004,9 +13004,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter366) + foreach ($this->part_vals as $iter373) { - $xfer += $output->writeString($iter366); + $xfer += $output->writeString($iter373); } } $output->writeListEnd(); @@ -13090,14 +13090,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size367 = 0; - $_etype370 = 0; - $xfer += $input->readListBegin($_etype370, $_size367); - for ($_i371 = 0; $_i371 < $_size367; ++$_i371) + $_size374 = 0; + $_etype377 = 0; + $xfer += $input->readListBegin($_etype377, $_size374); + for ($_i378 = 0; $_i378 < $_size374; ++$_i378) { - $elem372 = null; - $xfer += $input->readString($elem372); - $this->success []= $elem372; + $elem379 = null; + $xfer += $input->readString($elem379); + $this->success []= $elem379; } $xfer += $input->readListEnd(); } else { @@ -13141,9 +13141,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter373) + foreach ($this->success as $iter380) { - $xfer += $output->writeString($iter373); + $xfer += $output->writeString($iter380); } } $output->writeListEnd(); @@ -13365,15 +13365,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size374 = 0; - $_etype377 = 0; - $xfer += $input->readListBegin($_etype377, $_size374); - for ($_i378 = 0; $_i378 < $_size374; ++$_i378) + $_size381 = 0; + $_etype384 = 0; + $xfer += $input->readListBegin($_etype384, $_size381); + for ($_i385 = 0; $_i385 < $_size381; ++$_i385) { - $elem379 = null; - $elem379 = new Partition(); - $xfer += $elem379->read($input); - $this->success []= $elem379; + $elem386 = null; + $elem386 = new Partition(); + $xfer += $elem386->read($input); + $this->success []= $elem386; } $xfer += $input->readListEnd(); } else { @@ -13417,9 +13417,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter380) + foreach ($this->success as $iter387) { - $xfer += $iter380->write($output); + $xfer += $iter387->write($output); } } $output->writeListEnd(); @@ -13520,14 +13520,14 @@ case 3: if ($ftype == TType::LST) { $this->names = array(); - $_size381 = 0; - $_etype384 = 0; - $xfer += $input->readListBegin($_etype384, $_size381); - for ($_i385 = 0; $_i385 < $_size381; ++$_i385) + $_size388 = 0; + $_etype391 = 0; + $xfer += $input->readListBegin($_etype391, $_size388); + for ($_i392 = 0; $_i392 < $_size388; ++$_i392) { - $elem386 = null; - $xfer += $input->readString($elem386); - $this->names []= $elem386; + $elem393 = null; + $xfer += $input->readString($elem393); + $this->names []= $elem393; } $xfer += $input->readListEnd(); } else { @@ -13565,9 +13565,9 @@ { $output->writeListBegin(TType::STRING, count($this->names)); { - foreach ($this->names as $iter387) + foreach ($this->names as $iter394) { - $xfer += $output->writeString($iter387); + $xfer += $output->writeString($iter394); } } $output->writeListEnd(); @@ -13647,15 +13647,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size388 = 0; - $_etype391 = 0; - $xfer += $input->readListBegin($_etype391, $_size388); - for ($_i392 = 0; $_i392 < $_size388; ++$_i392) + $_size395 = 0; + $_etype398 = 0; + $xfer += $input->readListBegin($_etype398, $_size395); + for ($_i399 = 0; $_i399 < $_size395; ++$_i399) { - $elem393 = null; - $elem393 = new Partition(); - $xfer += $elem393->read($input); - $this->success []= $elem393; + $elem400 = null; + $elem400 = new Partition(); + $xfer += $elem400->read($input); + $this->success []= $elem400; } $xfer += $input->readListEnd(); } else { @@ -13699,9 +13699,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter394) + foreach ($this->success as $iter401) { - $xfer += $iter394->write($output); + $xfer += $iter401->write($output); } } $output->writeListEnd(); @@ -14262,14 +14262,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size395 = 0; - $_etype398 = 0; - $xfer += $input->readListBegin($_etype398, $_size395); - for ($_i399 = 0; $_i399 < $_size395; ++$_i399) + $_size402 = 0; + $_etype405 = 0; + $xfer += $input->readListBegin($_etype405, $_size402); + for ($_i406 = 0; $_i406 < $_size402; ++$_i406) { - $elem400 = null; - $xfer += $input->readString($elem400); - $this->part_vals []= $elem400; + $elem407 = null; + $xfer += $input->readString($elem407); + $this->part_vals []= $elem407; } $xfer += $input->readListEnd(); } else { @@ -14315,9 +14315,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter401) + foreach ($this->part_vals as $iter408) { - $xfer += $output->writeString($iter401); + $xfer += $output->writeString($iter408); } } $output->writeListEnd(); @@ -14749,14 +14749,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size402 = 0; - $_etype405 = 0; - $xfer += $input->readListBegin($_etype405, $_size402); - for ($_i406 = 0; $_i406 < $_size402; ++$_i406) + $_size409 = 0; + $_etype412 = 0; + $xfer += $input->readListBegin($_etype412, $_size409); + for ($_i413 = 0; $_i413 < $_size409; ++$_i413) { - $elem407 = null; - $xfer += $input->readString($elem407); - $this->success []= $elem407; + $elem414 = null; + $xfer += $input->readString($elem414); + $this->success []= $elem414; } $xfer += $input->readListEnd(); } else { @@ -14792,9 +14792,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter408) + foreach ($this->success as $iter415) { - $xfer += $output->writeString($iter408); + $xfer += $output->writeString($iter415); } } $output->writeListEnd(); @@ -14945,17 +14945,17 @@ case 0: if ($ftype == TType::MAP) { $this->success = array(); - $_size409 = 0; - $_ktype410 = 0; - $_vtype411 = 0; - $xfer += $input->readMapBegin($_ktype410, $_vtype411, $_size409); - for ($_i413 = 0; $_i413 < $_size409; ++$_i413) + $_size416 = 0; + $_ktype417 = 0; + $_vtype418 = 0; + $xfer += $input->readMapBegin($_ktype417, $_vtype418, $_size416); + for ($_i420 = 0; $_i420 < $_size416; ++$_i420) { - $key414 = ''; - $val415 = ''; - $xfer += $input->readString($key414); - $xfer += $input->readString($val415); - $this->success[$key414] = $val415; + $key421 = ''; + $val422 = ''; + $xfer += $input->readString($key421); + $xfer += $input->readString($val422); + $this->success[$key421] = $val422; } $xfer += $input->readMapEnd(); } else { @@ -14991,10 +14991,10 @@ { $output->writeMapBegin(TType::STRING, TType::STRING, count($this->success)); { - foreach ($this->success as $kiter416 => $viter417) + foreach ($this->success as $kiter423 => $viter424) { - $xfer += $output->writeString($kiter416); - $xfer += $output->writeString($viter417); + $xfer += $output->writeString($kiter423); + $xfer += $output->writeString($viter424); } } $output->writeMapEnd(); @@ -15102,17 +15102,17 @@ case 3: if ($ftype == TType::MAP) { $this->part_vals = array(); - $_size418 = 0; - $_ktype419 = 0; - $_vtype420 = 0; - $xfer += $input->readMapBegin($_ktype419, $_vtype420, $_size418); - for ($_i422 = 0; $_i422 < $_size418; ++$_i422) + $_size425 = 0; + $_ktype426 = 0; + $_vtype427 = 0; + $xfer += $input->readMapBegin($_ktype426, $_vtype427, $_size425); + for ($_i429 = 0; $_i429 < $_size425; ++$_i429) { - $key423 = ''; - $val424 = ''; - $xfer += $input->readString($key423); - $xfer += $input->readString($val424); - $this->part_vals[$key423] = $val424; + $key430 = ''; + $val431 = ''; + $xfer += $input->readString($key430); + $xfer += $input->readString($val431); + $this->part_vals[$key430] = $val431; } $xfer += $input->readMapEnd(); } else { @@ -15157,10 +15157,10 @@ { $output->writeMapBegin(TType::STRING, TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $kiter425 => $viter426) + foreach ($this->part_vals as $kiter432 => $viter433) { - $xfer += $output->writeString($kiter425); - $xfer += $output->writeString($viter426); + $xfer += $output->writeString($kiter432); + $xfer += $output->writeString($viter433); } } $output->writeMapEnd(); @@ -15452,17 +15452,17 @@ case 3: if ($ftype == TType::MAP) { $this->part_vals = array(); - $_size427 = 0; - $_ktype428 = 0; - $_vtype429 = 0; - $xfer += $input->readMapBegin($_ktype428, $_vtype429, $_size427); - for ($_i431 = 0; $_i431 < $_size427; ++$_i431) + $_size434 = 0; + $_ktype435 = 0; + $_vtype436 = 0; + $xfer += $input->readMapBegin($_ktype435, $_vtype436, $_size434); + for ($_i438 = 0; $_i438 < $_size434; ++$_i438) { - $key432 = ''; - $val433 = ''; - $xfer += $input->readString($key432); - $xfer += $input->readString($val433); - $this->part_vals[$key432] = $val433; + $key439 = ''; + $val440 = ''; + $xfer += $input->readString($key439); + $xfer += $input->readString($val440); + $this->part_vals[$key439] = $val440; } $xfer += $input->readMapEnd(); } else { @@ -15507,10 +15507,10 @@ { $output->writeMapBegin(TType::STRING, TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $kiter434 => $viter435) + foreach ($this->part_vals as $kiter441 => $viter442) { - $xfer += $output->writeString($kiter434); - $xfer += $output->writeString($viter435); + $xfer += $output->writeString($kiter441); + $xfer += $output->writeString($viter442); } } $output->writeMapEnd(); @@ -16870,15 +16870,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size436 = 0; - $_etype439 = 0; - $xfer += $input->readListBegin($_etype439, $_size436); - for ($_i440 = 0; $_i440 < $_size436; ++$_i440) + $_size443 = 0; + $_etype446 = 0; + $xfer += $input->readListBegin($_etype446, $_size443); + for ($_i447 = 0; $_i447 < $_size443; ++$_i447) { - $elem441 = null; - $elem441 = new Index(); - $xfer += $elem441->read($input); - $this->success []= $elem441; + $elem448 = null; + $elem448 = new Index(); + $xfer += $elem448->read($input); + $this->success []= $elem448; } $xfer += $input->readListEnd(); } else { @@ -16922,9 +16922,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter442) + foreach ($this->success as $iter449) { - $xfer += $iter442->write($output); + $xfer += $iter449->write($output); } } $output->writeListEnd(); @@ -17116,14 +17116,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size443 = 0; - $_etype446 = 0; - $xfer += $input->readListBegin($_etype446, $_size443); - for ($_i447 = 0; $_i447 < $_size443; ++$_i447) + $_size450 = 0; + $_etype453 = 0; + $xfer += $input->readListBegin($_etype453, $_size450); + for ($_i454 = 0; $_i454 < $_size450; ++$_i454) { - $elem448 = null; - $xfer += $input->readString($elem448); - $this->success []= $elem448; + $elem455 = null; + $xfer += $input->readString($elem455); + $this->success []= $elem455; } $xfer += $input->readListEnd(); } else { @@ -17159,9 +17159,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter449) + foreach ($this->success as $iter456) { - $xfer += $output->writeString($iter449); + $xfer += $output->writeString($iter456); } } $output->writeListEnd(); @@ -17623,14 +17623,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size450 = 0; - $_etype453 = 0; - $xfer += $input->readListBegin($_etype453, $_size450); - for ($_i454 = 0; $_i454 < $_size450; ++$_i454) + $_size457 = 0; + $_etype460 = 0; + $xfer += $input->readListBegin($_etype460, $_size457); + for ($_i461 = 0; $_i461 < $_size457; ++$_i461) { - $elem455 = null; - $xfer += $input->readString($elem455); - $this->success []= $elem455; + $elem462 = null; + $xfer += $input->readString($elem462); + $this->success []= $elem462; } $xfer += $input->readListEnd(); } else { @@ -17666,9 +17666,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter456) + foreach ($this->success as $iter463) { - $xfer += $output->writeString($iter456); + $xfer += $output->writeString($iter463); } } $output->writeListEnd(); @@ -18308,15 +18308,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size457 = 0; - $_etype460 = 0; - $xfer += $input->readListBegin($_etype460, $_size457); - for ($_i461 = 0; $_i461 < $_size457; ++$_i461) + $_size464 = 0; + $_etype467 = 0; + $xfer += $input->readListBegin($_etype467, $_size464); + for ($_i468 = 0; $_i468 < $_size464; ++$_i468) { - $elem462 = null; - $elem462 = new Role(); - $xfer += $elem462->read($input); - $this->success []= $elem462; + $elem469 = null; + $elem469 = new Role(); + $xfer += $elem469->read($input); + $this->success []= $elem469; } $xfer += $input->readListEnd(); } else { @@ -18352,9 +18352,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter463) + foreach ($this->success as $iter470) { - $xfer += $iter463->write($output); + $xfer += $iter470->write($output); } } $output->writeListEnd(); @@ -18452,14 +18452,14 @@ case 3: if ($ftype == TType::LST) { $this->group_names = array(); - $_size464 = 0; - $_etype467 = 0; - $xfer += $input->readListBegin($_etype467, $_size464); - for ($_i468 = 0; $_i468 < $_size464; ++$_i468) + $_size471 = 0; + $_etype474 = 0; + $xfer += $input->readListBegin($_etype474, $_size471); + for ($_i475 = 0; $_i475 < $_size471; ++$_i475) { - $elem469 = null; - $xfer += $input->readString($elem469); - $this->group_names []= $elem469; + $elem476 = null; + $xfer += $input->readString($elem476); + $this->group_names []= $elem476; } $xfer += $input->readListEnd(); } else { @@ -18500,9 +18500,9 @@ { $output->writeListBegin(TType::STRING, count($this->group_names)); { - foreach ($this->group_names as $iter470) + foreach ($this->group_names as $iter477) { - $xfer += $output->writeString($iter470); + $xfer += $output->writeString($iter477); } } $output->writeListEnd(); @@ -18789,15 +18789,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size471 = 0; - $_etype474 = 0; - $xfer += $input->readListBegin($_etype474, $_size471); - for ($_i475 = 0; $_i475 < $_size471; ++$_i475) + $_size478 = 0; + $_etype481 = 0; + $xfer += $input->readListBegin($_etype481, $_size478); + for ($_i482 = 0; $_i482 < $_size478; ++$_i482) { - $elem476 = null; - $elem476 = new HiveObjectPrivilege(); - $xfer += $elem476->read($input); - $this->success []= $elem476; + $elem483 = null; + $elem483 = new HiveObjectPrivilege(); + $xfer += $elem483->read($input); + $this->success []= $elem483; } $xfer += $input->readListEnd(); } else { @@ -18833,9 +18833,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter477) + foreach ($this->success as $iter484) { - $xfer += $iter477->write($output); + $xfer += $iter484->write($output); } } $output->writeListEnd(); @@ -19258,14 +19258,14 @@ case 2: if ($ftype == TType::LST) { $this->group_names = array(); - $_size478 = 0; - $_etype481 = 0; - $xfer += $input->readListBegin($_etype481, $_size478); - for ($_i482 = 0; $_i482 < $_size478; ++$_i482) + $_size485 = 0; + $_etype488 = 0; + $xfer += $input->readListBegin($_etype488, $_size485); + for ($_i489 = 0; $_i489 < $_size485; ++$_i489) { - $elem483 = null; - $xfer += $input->readString($elem483); - $this->group_names []= $elem483; + $elem490 = null; + $xfer += $input->readString($elem490); + $this->group_names []= $elem490; } $xfer += $input->readListEnd(); } else { @@ -19298,9 +19298,9 @@ { $output->writeListBegin(TType::STRING, count($this->group_names)); { - foreach ($this->group_names as $iter484) + foreach ($this->group_names as $iter491) { - $xfer += $output->writeString($iter484); + $xfer += $output->writeString($iter491); } } $output->writeListEnd(); @@ -19370,14 +19370,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size485 = 0; - $_etype488 = 0; - $xfer += $input->readListBegin($_etype488, $_size485); - for ($_i489 = 0; $_i489 < $_size485; ++$_i489) + $_size492 = 0; + $_etype495 = 0; + $xfer += $input->readListBegin($_etype495, $_size492); + for ($_i496 = 0; $_i496 < $_size492; ++$_i496) { - $elem490 = null; - $xfer += $input->readString($elem490); - $this->success []= $elem490; + $elem497 = null; + $xfer += $input->readString($elem497); + $this->success []= $elem497; } $xfer += $input->readListEnd(); } else { @@ -19413,9 +19413,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter491) + foreach ($this->success as $iter498) { - $xfer += $output->writeString($iter491); + $xfer += $output->writeString($iter498); } } $output->writeListEnd(); Index: metastore/src/gen/thrift/gen-php/hive_metastore/hive_metastore_types.php =================================================================== --- metastore/src/gen/thrift/gen-php/hive_metastore/hive_metastore_types.php (revision 25657) +++ metastore/src/gen/thrift/gen-php/hive_metastore/hive_metastore_types.php (working copy) @@ -2198,6 +2198,98 @@ } +class TableIdentifier { + static $_TSPEC; + + public $dbName = null; + public $tableName = null; + + public function __construct($vals=null) { + if (!isset(self::$_TSPEC)) { + self::$_TSPEC = array( + 1 => array( + 'var' => 'dbName', + 'type' => TType::STRING, + ), + 2 => array( + 'var' => 'tableName', + 'type' => TType::STRING, + ), + ); + } + if (is_array($vals)) { + if (isset($vals['dbName'])) { + $this->dbName = $vals['dbName']; + } + if (isset($vals['tableName'])) { + $this->tableName = $vals['tableName']; + } + } + } + + public function getName() { + return 'TableIdentifier'; + } + + public function read($input) + { + $xfer = 0; + $fname = null; + $ftype = 0; + $fid = 0; + $xfer += $input->readStructBegin($fname); + while (true) + { + $xfer += $input->readFieldBegin($fname, $ftype, $fid); + if ($ftype == TType::STOP) { + break; + } + switch ($fid) + { + case 1: + if ($ftype == TType::STRING) { + $xfer += $input->readString($this->dbName); + } else { + $xfer += $input->skip($ftype); + } + break; + case 2: + if ($ftype == TType::STRING) { + $xfer += $input->readString($this->tableName); + } else { + $xfer += $input->skip($ftype); + } + break; + default: + $xfer += $input->skip($ftype); + break; + } + $xfer += $input->readFieldEnd(); + } + $xfer += $input->readStructEnd(); + return $xfer; + } + + public function write($output) { + $xfer = 0; + $xfer += $output->writeStructBegin('TableIdentifier'); + if ($this->dbName !== null) { + $xfer += $output->writeFieldBegin('dbName', TType::STRING, 1); + $xfer += $output->writeString($this->dbName); + $xfer += $output->writeFieldEnd(); + } + if ($this->tableName !== null) { + $xfer += $output->writeFieldBegin('tableName', TType::STRING, 2); + $xfer += $output->writeString($this->tableName); + $xfer += $output->writeFieldEnd(); + } + $xfer += $output->writeFieldStop(); + $xfer += $output->writeStructEnd(); + return $xfer; + } + +} + class Table { static $_TSPEC; @@ -2214,6 +2306,8 @@ public $viewExpandedText = null; public $tableType = null; public $privileges = null; + public $linkTarget = null; + public $linkTables = null; public function __construct($vals=null) { if (!isset(self::$_TSPEC)) { @@ -2285,6 +2379,20 @@ 'type' => TType::STRUCT, 'class' => 'PrincipalPrivilegeSet', ), + 14 => array( + 'var' => 'linkTarget', + 'type' => TType::STRUCT, + 'class' => 'TableIdentifier', + ), + 15 => array( + 'var' => 'linkTables', + 'type' => TType::LST, + 'etype' => TType::STRUCT, + 'elem' => array( + 'type' => TType::STRUCT, + 'class' => 'TableIdentifier', + ), + ), ); } if (is_array($vals)) { @@ -2327,6 +2435,12 @@ if (isset($vals['privileges'])) { $this->privileges = $vals['privileges']; } + if (isset($vals['linkTarget'])) { + $this->linkTarget = $vals['linkTarget']; + } + if (isset($vals['linkTables'])) { + $this->linkTables = $vals['linkTables']; + } } } @@ -2466,6 +2580,32 @@ $xfer += $input->skip($ftype); } break; + case 14: + if ($ftype == TType::STRUCT) { + $this->linkTarget = new TableIdentifier(); + $xfer += $this->linkTarget->read($input); + } else { + $xfer += $input->skip($ftype); + } + break; + case 15: + if ($ftype == TType::LST) { + $this->linkTables = array(); + $_size130 = 0; + $_etype133 = 0; + $xfer += $input->readListBegin($_etype133, $_size130); + for ($_i134 = 0; $_i134 < $_size130; ++$_i134) + { + $elem135 = null; + $elem135 = new TableIdentifier(); + $xfer += $elem135->read($input); + $this->linkTables []= $elem135; + } + $xfer += $input->readListEnd(); + } else { + $xfer += $input->skip($ftype); + } + break; default: $xfer += $input->skip($ftype); break; @@ -2525,9 +2665,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->partitionKeys)); { - foreach ($this->partitionKeys as $iter130) + foreach ($this->partitionKeys as $iter136) { - $xfer += $iter130->write($output); + $xfer += $iter136->write($output); } } $output->writeListEnd(); @@ -2542,10 +2682,10 @@ { $output->writeMapBegin(TType::STRING, TType::STRING, count($this->parameters)); { - foreach ($this->parameters as $kiter131 => $viter132) + foreach ($this->parameters as $kiter137 => $viter138) { - $xfer += $output->writeString($kiter131); - $xfer += $output->writeString($viter132); + $xfer += $output->writeString($kiter137); + $xfer += $output->writeString($viter138); } } $output->writeMapEnd(); @@ -2575,6 +2715,31 @@ $xfer += $this->privileges->write($output); $xfer += $output->writeFieldEnd(); } + if ($this->linkTarget !== null) { + if (!is_object($this->linkTarget)) { + throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA); + } + $xfer += $output->writeFieldBegin('linkTarget', TType::STRUCT, 14); + $xfer += $this->linkTarget->write($output); + $xfer += $output->writeFieldEnd(); + } + if ($this->linkTables !== null) { + if (!is_array($this->linkTables)) { + throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA); + } + $xfer += $output->writeFieldBegin('linkTables', TType::LST, 15); + { + $output->writeListBegin(TType::STRUCT, count($this->linkTables)); + { + foreach ($this->linkTables as $iter139) + { + $xfer += $iter139->write($output); + } + } + $output->writeListEnd(); + } + $xfer += $output->writeFieldEnd(); + } $xfer += $output->writeFieldStop(); $xfer += $output->writeStructEnd(); return $xfer; @@ -2695,14 +2860,14 @@ case 1: if ($ftype == TType::LST) { $this->values = array(); - $_size133 = 0; - $_etype136 = 0; - $xfer += $input->readListBegin($_etype136, $_size133); - for ($_i137 = 0; $_i137 < $_size133; ++$_i137) + $_size140 = 0; + $_etype143 = 0; + $xfer += $input->readListBegin($_etype143, $_size140); + for ($_i144 = 0; $_i144 < $_size140; ++$_i144) { - $elem138 = null; - $xfer += $input->readString($elem138); - $this->values []= $elem138; + $elem145 = null; + $xfer += $input->readString($elem145); + $this->values []= $elem145; } $xfer += $input->readListEnd(); } else { @@ -2748,17 +2913,17 @@ case 7: if ($ftype == TType::MAP) { $this->parameters = array(); - $_size139 = 0; - $_ktype140 = 0; - $_vtype141 = 0; - $xfer += $input->readMapBegin($_ktype140, $_vtype141, $_size139); - for ($_i143 = 0; $_i143 < $_size139; ++$_i143) + $_size146 = 0; + $_ktype147 = 0; + $_vtype148 = 0; + $xfer += $input->readMapBegin($_ktype147, $_vtype148, $_size146); + for ($_i150 = 0; $_i150 < $_size146; ++$_i150) { - $key144 = ''; - $val145 = ''; - $xfer += $input->readString($key144); - $xfer += $input->readString($val145); - $this->parameters[$key144] = $val145; + $key151 = ''; + $val152 = ''; + $xfer += $input->readString($key151); + $xfer += $input->readString($val152); + $this->parameters[$key151] = $val152; } $xfer += $input->readMapEnd(); } else { @@ -2794,9 +2959,9 @@ { $output->writeListBegin(TType::STRING, count($this->values)); { - foreach ($this->values as $iter146) + foreach ($this->values as $iter153) { - $xfer += $output->writeString($iter146); + $xfer += $output->writeString($iter153); } } $output->writeListEnd(); @@ -2839,10 +3004,10 @@ { $output->writeMapBegin(TType::STRING, TType::STRING, count($this->parameters)); { - foreach ($this->parameters as $kiter147 => $viter148) + foreach ($this->parameters as $kiter154 => $viter155) { - $xfer += $output->writeString($kiter147); - $xfer += $output->writeString($viter148); + $xfer += $output->writeString($kiter154); + $xfer += $output->writeString($viter155); } } $output->writeMapEnd(); @@ -3045,17 +3210,17 @@ case 9: if ($ftype == TType::MAP) { $this->parameters = array(); - $_size149 = 0; - $_ktype150 = 0; - $_vtype151 = 0; - $xfer += $input->readMapBegin($_ktype150, $_vtype151, $_size149); - for ($_i153 = 0; $_i153 < $_size149; ++$_i153) + $_size156 = 0; + $_ktype157 = 0; + $_vtype158 = 0; + $xfer += $input->readMapBegin($_ktype157, $_vtype158, $_size156); + for ($_i160 = 0; $_i160 < $_size156; ++$_i160) { - $key154 = ''; - $val155 = ''; - $xfer += $input->readString($key154); - $xfer += $input->readString($val155); - $this->parameters[$key154] = $val155; + $key161 = ''; + $val162 = ''; + $xfer += $input->readString($key161); + $xfer += $input->readString($val162); + $this->parameters[$key161] = $val162; } $xfer += $input->readMapEnd(); } else { @@ -3133,10 +3298,10 @@ { $output->writeMapBegin(TType::STRING, TType::STRING, count($this->parameters)); { - foreach ($this->parameters as $kiter156 => $viter157) + foreach ($this->parameters as $kiter163 => $viter164) { - $xfer += $output->writeString($kiter156); - $xfer += $output->writeString($viter157); + $xfer += $output->writeString($kiter163); + $xfer += $output->writeString($viter164); } } $output->writeMapEnd(); @@ -3219,15 +3384,15 @@ case 1: if ($ftype == TType::LST) { $this->fieldSchemas = array(); - $_size158 = 0; - $_etype161 = 0; - $xfer += $input->readListBegin($_etype161, $_size158); - for ($_i162 = 0; $_i162 < $_size158; ++$_i162) + $_size165 = 0; + $_etype168 = 0; + $xfer += $input->readListBegin($_etype168, $_size165); + for ($_i169 = 0; $_i169 < $_size165; ++$_i169) { - $elem163 = null; - $elem163 = new FieldSchema(); - $xfer += $elem163->read($input); - $this->fieldSchemas []= $elem163; + $elem170 = null; + $elem170 = new FieldSchema(); + $xfer += $elem170->read($input); + $this->fieldSchemas []= $elem170; } $xfer += $input->readListEnd(); } else { @@ -3237,17 +3402,17 @@ case 2: if ($ftype == TType::MAP) { $this->properties = array(); - $_size164 = 0; - $_ktype165 = 0; - $_vtype166 = 0; - $xfer += $input->readMapBegin($_ktype165, $_vtype166, $_size164); - for ($_i168 = 0; $_i168 < $_size164; ++$_i168) + $_size171 = 0; + $_ktype172 = 0; + $_vtype173 = 0; + $xfer += $input->readMapBegin($_ktype172, $_vtype173, $_size171); + for ($_i175 = 0; $_i175 < $_size171; ++$_i175) { - $key169 = ''; - $val170 = ''; - $xfer += $input->readString($key169); - $xfer += $input->readString($val170); - $this->properties[$key169] = $val170; + $key176 = ''; + $val177 = ''; + $xfer += $input->readString($key176); + $xfer += $input->readString($val177); + $this->properties[$key176] = $val177; } $xfer += $input->readMapEnd(); } else { @@ -3275,9 +3440,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->fieldSchemas)); { - foreach ($this->fieldSchemas as $iter171) + foreach ($this->fieldSchemas as $iter178) { - $xfer += $iter171->write($output); + $xfer += $iter178->write($output); } } $output->writeListEnd(); @@ -3292,10 +3457,10 @@ { $output->writeMapBegin(TType::STRING, TType::STRING, count($this->properties)); { - foreach ($this->properties as $kiter172 => $viter173) + foreach ($this->properties as $kiter179 => $viter180) { - $xfer += $output->writeString($kiter172); - $xfer += $output->writeString($viter173); + $xfer += $output->writeString($kiter179); + $xfer += $output->writeString($viter180); } } $output->writeMapEnd(); @@ -3360,17 +3525,17 @@ case 1: if ($ftype == TType::MAP) { $this->properties = array(); - $_size174 = 0; - $_ktype175 = 0; - $_vtype176 = 0; - $xfer += $input->readMapBegin($_ktype175, $_vtype176, $_size174); - for ($_i178 = 0; $_i178 < $_size174; ++$_i178) + $_size181 = 0; + $_ktype182 = 0; + $_vtype183 = 0; + $xfer += $input->readMapBegin($_ktype182, $_vtype183, $_size181); + for ($_i185 = 0; $_i185 < $_size181; ++$_i185) { - $key179 = ''; - $val180 = ''; - $xfer += $input->readString($key179); - $xfer += $input->readString($val180); - $this->properties[$key179] = $val180; + $key186 = ''; + $val187 = ''; + $xfer += $input->readString($key186); + $xfer += $input->readString($val187); + $this->properties[$key186] = $val187; } $xfer += $input->readMapEnd(); } else { @@ -3398,10 +3563,10 @@ { $output->writeMapBegin(TType::STRING, TType::STRING, count($this->properties)); { - foreach ($this->properties as $kiter181 => $viter182) + foreach ($this->properties as $kiter188 => $viter189) { - $xfer += $output->writeString($kiter181); - $xfer += $output->writeString($viter182); + $xfer += $output->writeString($kiter188); + $xfer += $output->writeString($viter189); } } $output->writeMapEnd(); Index: metastore/if/hive_metastore.thrift =================================================================== --- metastore/if/hive_metastore.thrift (revision 25657) +++ metastore/if/hive_metastore.thrift (working copy) @@ -145,6 +145,11 @@ 10: map parameters // any user supplied key value hash } +struct TableIdentifier { + 1: string dbName, + 2: string tableName +} + // table information struct Table { 1: string tableName, // name of the table @@ -158,8 +163,10 @@ 9: map parameters, // to store comments or any other user level parameters 10: string viewOriginalText, // original view text, null for non-view 11: string viewExpandedText, // expanded view text, null for non-view - 12: string tableType, // table type enum, e.g. EXTERNAL_TABLE + 12: string tableType, // table type enum, e.g. EXTERNAL_TABLE 13: optional PrincipalPrivilegeSet privileges, + 14: optional TableIdentifier linkTarget, // the Managed Table this link table points to, null if not a link table + 15: optional list linkTables // all link tables pointing to this table. Only Managed Tables can have links to them. } struct Partition { Index: ql/src/test/results/clientpositive/create_tablelink.q.out =================================================================== --- ql/src/test/results/clientpositive/create_tablelink.q.out (revision 0) +++ ql/src/test/results/clientpositive/create_tablelink.q.out (working copy) @@ -0,0 +1,131 @@ +PREHOOK: query: CREATE DATABASE tmpdb +PREHOOK: type: CREATEDATABASE +POSTHOOK: query: CREATE DATABASE tmpdb +POSTHOOK: type: CREATEDATABASE +PREHOOK: query: USE tmpdb +PREHOOK: type: SWITCHDATABASE +POSTHOOK: query: USE tmpdb +POSTHOOK: type: SWITCHDATABASE +PREHOOK: query: CREATE TABLELINK TO src@default LINKPROPERTIES('RETENTION'='7') +PREHOOK: type: CREATETABLELINK +PREHOOK: Input: default@src +POSTHOOK: query: CREATE TABLELINK TO src@default LINKPROPERTIES('RETENTION'='7') +POSTHOOK: type: CREATETABLELINK +POSTHOOK: Input: default@src +POSTHOOK: Output: tmpdb@src@default +PREHOOK: query: DESC src@default +PREHOOK: type: DESCTABLE +POSTHOOK: query: DESC src@default +POSTHOOK: type: DESCTABLE +key string default +value string default +PREHOOK: query: DESC EXTENDED src@default +PREHOOK: type: DESCTABLE +POSTHOOK: query: DESC EXTENDED src@default +POSTHOOK: type: DESCTABLE +key string default +value string default + +#### A masked pattern was here #### +PREHOOK: query: DESC FORMATTED src@default +PREHOOK: type: DESCTABLE +POSTHOOK: query: DESC FORMATTED src@default +POSTHOOK: type: DESCTABLE +# col_name data_type comment + +key string default +value string default + +# Detailed Table Information +Database: tmpdb +#### A masked pattern was here #### +Protect Mode: None +Retention: 0 +#### A masked pattern was here #### +Table Type: DYNAMIC_TABLE_LINK +Table Parameters: + RETENTION 7 +#### A masked pattern was here #### + +# Storage Information +SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe +InputFormat: org.apache.hadoop.mapred.TextInputFormat +OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +Compressed: No +Num Buckets: -1 +Bucket Columns: [] +Sort Columns: [] +Storage Desc Params: + serialization.format 1 +PREHOOK: query: CREATE STATIC TABLELINK TO srcbucket@default +PREHOOK: type: CREATETABLELINK +PREHOOK: Input: default@srcbucket +POSTHOOK: query: CREATE STATIC TABLELINK TO srcbucket@default +POSTHOOK: type: CREATETABLELINK +POSTHOOK: Input: default@srcbucket +POSTHOOK: Output: tmpdb@srcbucket@default +PREHOOK: query: DESC srcbucket@default +PREHOOK: type: DESCTABLE +POSTHOOK: query: DESC srcbucket@default +POSTHOOK: type: DESCTABLE +key int +value string +PREHOOK: query: DESC EXTENDED srcbucket@default +PREHOOK: type: DESCTABLE +POSTHOOK: query: DESC EXTENDED srcbucket@default +POSTHOOK: type: DESCTABLE +key int +value string + +#### A masked pattern was here #### +PREHOOK: query: DESC FORMATTED srcbucket@default +PREHOOK: type: DESCTABLE +POSTHOOK: query: DESC FORMATTED srcbucket@default +POSTHOOK: type: DESCTABLE +# col_name data_type comment + +key int None +value string None + +# Detailed Table Information +Database: tmpdb +#### A masked pattern was here #### +Protect Mode: None +Retention: 0 +#### A masked pattern was here #### +Table Type: STATIC_TABLE_LINK +Table Parameters: +#### A masked pattern was here #### + +# Storage Information +SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe +InputFormat: org.apache.hadoop.mapred.TextInputFormat +OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +Compressed: No +Num Buckets: 2 +Bucket Columns: [key] +Sort Columns: [] +Storage Desc Params: + serialization.format 1 +PREHOOK: query: SHOW TABLES +PREHOOK: type: SHOWTABLES +POSTHOOK: query: SHOW TABLES +POSTHOOK: type: SHOWTABLES +src@default +srcbucket@default +PREHOOK: query: DROP TABLELINK src@default +PREHOOK: type: DROPTABLELINK +PREHOOK: Input: tmpdb@src@default +PREHOOK: Output: tmpdb@src@default +POSTHOOK: query: DROP TABLELINK src@default +POSTHOOK: type: DROPTABLELINK +POSTHOOK: Input: tmpdb@src@default +POSTHOOK: Output: tmpdb@src@default +PREHOOK: query: DROP TABLELINK srcbucket@default +PREHOOK: type: DROPTABLELINK +PREHOOK: Input: tmpdb@srcbucket@default +PREHOOK: Output: tmpdb@srcbucket@default +POSTHOOK: query: DROP TABLELINK srcbucket@default +POSTHOOK: type: DROPTABLELINK +POSTHOOK: Input: tmpdb@srcbucket@default +POSTHOOK: Output: tmpdb@srcbucket@default Index: ql/src/test/results/clientpositive/create_view.q.out =================================================================== --- ql/src/test/results/clientpositive/create_view.q.out (revision 25657) +++ ql/src/test/results/clientpositive/create_view.q.out (working copy) @@ -714,7 +714,7 @@ #### A masked pattern was here #### FROM table1, viewExpandedText:SELECT `_c0` AS `c` FROM (SELECT `test_translate`('abc', 'a', 'b') -FROM `default`.`table1`) `view8`, tableType:VIRTUAL_VIEW) +FROM `default`.`table1`) `view8`, tableType:VIRTUAL_VIEW, linkTables:[]) PREHOOK: query: DESCRIBE FORMATTED view8 PREHOOK: type: DESCTABLE POSTHOOK: query: DESCRIBE FORMATTED view8 @@ -789,7 +789,7 @@ #### A masked pattern was here #### FROM src, viewExpandedText:SELECT `_c0` AS `m` FROM (SELECT `test_max`(length(`src`.`value`)) -FROM `default`.`src`) `view9`, tableType:VIRTUAL_VIEW) +FROM `default`.`src`) `view9`, tableType:VIRTUAL_VIEW, linkTables:[]) PREHOOK: query: DESCRIBE FORMATTED view9 PREHOOK: type: DESCTABLE POSTHOOK: query: DESCRIBE FORMATTED view9 @@ -928,7 +928,7 @@ #### A masked pattern was here #### FROM table1, viewExpandedText:SELECT `test_explode`(array(1,2,3)) AS (`boom`) -FROM `default`.`table1`, tableType:VIRTUAL_VIEW) +FROM `default`.`table1`, tableType:VIRTUAL_VIEW, linkTables:[]) PREHOOK: query: DESCRIBE FORMATTED view11 PREHOOK: type: DESCTABLE POSTHOOK: query: DESCRIBE FORMATTED view11 @@ -1082,7 +1082,7 @@ #### A masked pattern was here #### FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 5 ON key) s, viewExpandedText:SELECT `s`.`key` -FROM `default`.`srcbucket` TABLESAMPLE (BUCKET 1 OUT OF 5 ON `key`) `s`, tableType:VIRTUAL_VIEW) +FROM `default`.`srcbucket` TABLESAMPLE (BUCKET 1 OUT OF 5 ON `key`) `s`, tableType:VIRTUAL_VIEW, linkTables:[]) PREHOOK: query: DESCRIBE FORMATTED view13 PREHOOK: type: DESCTABLE POSTHOOK: query: DESCRIBE FORMATTED view13 @@ -1198,7 +1198,7 @@ (select 'tst1' as `key`, cast(count(1) as string) as `value` from `default`.`src` `s3` UNION ALL select `s4`.`key` as `key`, `s4`.`value` as `value` from `default`.`src` `s4` where `s4`.`key` < 10) `unionsrc2` -ON (`unionsrc1`.`key` = `unionsrc2`.`key`), tableType:VIRTUAL_VIEW) +ON (`unionsrc1`.`key` = `unionsrc2`.`key`), tableType:VIRTUAL_VIEW, linkTables:[]) PREHOOK: query: DESCRIBE FORMATTED view14 PREHOOK: type: DESCTABLE POSTHOOK: query: DESCRIBE FORMATTED view14 @@ -1314,7 +1314,7 @@ FROM src GROUP BY key, viewExpandedText:SELECT `src`.`key`,COUNT(`src`.`value`) AS `value_count` FROM `default`.`src` -GROUP BY `src`.`key`, tableType:VIRTUAL_VIEW) +GROUP BY `src`.`key`, tableType:VIRTUAL_VIEW, linkTables:[]) PREHOOK: query: DESCRIBE FORMATTED view15 PREHOOK: type: DESCTABLE POSTHOOK: query: DESCRIBE FORMATTED view15 @@ -1398,7 +1398,7 @@ #### A masked pattern was here #### FROM src, viewExpandedText:SELECT DISTINCT `src`.`value` -FROM `default`.`src`, tableType:VIRTUAL_VIEW) +FROM `default`.`src`, tableType:VIRTUAL_VIEW, linkTables:[]) PREHOOK: query: DESCRIBE FORMATTED view16 PREHOOK: type: DESCTABLE POSTHOOK: query: DESCRIBE FORMATTED view16 Index: ql/src/test/results/clientpositive/create_view_partitioned.q.out =================================================================== --- ql/src/test/results/clientpositive/create_view_partitioned.q.out (revision 25657) +++ ql/src/test/results/clientpositive/create_view_partitioned.q.out (working copy) @@ -42,7 +42,7 @@ FROM src WHERE key=86, viewExpandedText:SELECT `src`.`key`, `src`.`value` FROM `default`.`src` -WHERE `src`.`key`=86, tableType:VIRTUAL_VIEW) +WHERE `src`.`key`=86, tableType:VIRTUAL_VIEW, linkTables:[]) PREHOOK: query: DESCRIBE FORMATTED vp1 PREHOOK: type: DESCTABLE POSTHOOK: query: DESCRIBE FORMATTED vp1 Index: ql/src/test/results/clientpositive/insert2_overwrite_partitions.q.out =================================================================== --- ql/src/test/results/clientpositive/insert2_overwrite_partitions.q.out (revision 25657) +++ ql/src/test/results/clientpositive/insert2_overwrite_partitions.q.out (working copy) @@ -285,8 +285,11 @@ 97 val_97 PREHOOK: query: drop table db2.destinTable PREHOOK: type: DROPTABLE +PREHOOK: Input: db2@destintable +PREHOOK: Output: db2@destintable POSTHOOK: query: drop table db2.destinTable POSTHOOK: type: DROPTABLE +POSTHOOK: Input: db2@destintable POSTHOOK: Output: db2@destintable POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)sourcetable.FieldSchema(name:one, type:string, comment:null), ] POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ] @@ -294,8 +297,11 @@ POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ] PREHOOK: query: drop table db1.sourceTable PREHOOK: type: DROPTABLE +PREHOOK: Input: db1@sourcetable +PREHOOK: Output: db1@sourcetable POSTHOOK: query: drop table db1.sourceTable POSTHOOK: type: DROPTABLE +POSTHOOK: Input: db1@sourcetable POSTHOOK: Output: db1@sourcetable POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)sourcetable.FieldSchema(name:one, type:string, comment:null), ] POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ] Index: ql/src/test/results/clientpositive/drop_tablelink.q.out =================================================================== --- ql/src/test/results/clientpositive/drop_tablelink.q.out (revision 0) +++ ql/src/test/results/clientpositive/drop_tablelink.q.out (working copy) @@ -0,0 +1,4 @@ +PREHOOK: query: DROP TABLELINK IF EXISTS unknowntable@unknowndb +PREHOOK: type: DROPTABLELINK +POSTHOOK: query: DROP TABLELINK IF EXISTS unknowntable@unknowndb +POSTHOOK: type: DROPTABLELINK Index: ql/src/test/results/clientpositive/create_tablelink2.q.out =================================================================== --- ql/src/test/results/clientpositive/create_tablelink2.q.out (revision 0) +++ ql/src/test/results/clientpositive/create_tablelink2.q.out (working copy) @@ -0,0 +1,131 @@ +PREHOOK: query: CREATE TABLE tmp_table(a int, b string) +PREHOOK: type: CREATETABLE +POSTHOOK: query: CREATE TABLE tmp_table(a int, b string) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@tmp_table +PREHOOK: query: CREATE DATABASE tmpdb +PREHOOK: type: CREATEDATABASE +POSTHOOK: query: CREATE DATABASE tmpdb +POSTHOOK: type: CREATEDATABASE +PREHOOK: query: USE tmpdb +PREHOOK: type: SWITCHDATABASE +POSTHOOK: query: USE tmpdb +POSTHOOK: type: SWITCHDATABASE +PREHOOK: query: CREATE TABLELINK TO tmp_table@default +PREHOOK: type: CREATETABLELINK +PREHOOK: Input: default@tmp_table +POSTHOOK: query: CREATE TABLELINK TO tmp_table@default +POSTHOOK: type: CREATETABLELINK +POSTHOOK: Input: default@tmp_table +POSTHOOK: Output: tmpdb@tmp_table@default +PREHOOK: query: CREATE DATABASE tmpdb2 +PREHOOK: type: CREATEDATABASE +POSTHOOK: query: CREATE DATABASE tmpdb2 +POSTHOOK: type: CREATEDATABASE +PREHOOK: query: USE tmpdb2 +PREHOOK: type: SWITCHDATABASE +POSTHOOK: query: USE tmpdb2 +POSTHOOK: type: SWITCHDATABASE +PREHOOK: query: CREATE TABLELINK TO tmp_table@default +PREHOOK: type: CREATETABLELINK +PREHOOK: Input: default@tmp_table +POSTHOOK: query: CREATE TABLELINK TO tmp_table@default +POSTHOOK: type: CREATETABLELINK +POSTHOOK: Input: default@tmp_table +POSTHOOK: Output: tmpdb2@tmp_table@default +PREHOOK: query: USE DEFAULT +PREHOOK: type: SWITCHDATABASE +POSTHOOK: query: USE DEFAULT +POSTHOOK: type: SWITCHDATABASE +PREHOOK: query: DESC FORMATTED tmp_table +PREHOOK: type: DESCTABLE +POSTHOOK: query: DESC FORMATTED tmp_table +POSTHOOK: type: DESCTABLE +# col_name data_type comment + +a int None +b string None + +# Detailed Table Information +Database: default +#### A masked pattern was here #### +Protect Mode: None +Retention: 0 +#### A masked pattern was here #### +Table Type: MANAGED_TABLE +Table Parameters: +#### A masked pattern was here #### +Linked Databases: tmpdb, tmpdb2 +# Storage Information +SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe +InputFormat: org.apache.hadoop.mapred.TextInputFormat +OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +Compressed: No +Num Buckets: -1 +Bucket Columns: [] +Sort Columns: [] +Storage Desc Params: + serialization.format 1 +PREHOOK: query: ALTER TABLE tmp_table SET TBLPROPERTIES ('a'='1', 'c'='3') +PREHOOK: type: ALTERTABLE_PROPERTIES +PREHOOK: Input: default@tmp_table +PREHOOK: Output: default@tmp_table +POSTHOOK: query: ALTER TABLE tmp_table SET TBLPROPERTIES ('a'='1', 'c'='3') +POSTHOOK: type: ALTERTABLE_PROPERTIES +POSTHOOK: Input: default@tmp_table +POSTHOOK: Output: default@tmp_table +PREHOOK: query: DESC FORMATTED tmp_table +PREHOOK: type: DESCTABLE +POSTHOOK: query: DESC FORMATTED tmp_table +POSTHOOK: type: DESCTABLE +# col_name data_type comment + +a int None +b string None + +# Detailed Table Information +Database: default +#### A masked pattern was here #### +Protect Mode: None +Retention: 0 +#### A masked pattern was here #### +Table Type: MANAGED_TABLE +Table Parameters: + a 1 + c 3 +#### A masked pattern was here #### +Linked Databases: tmpdb, tmpdb2 +# Storage Information +SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe +InputFormat: org.apache.hadoop.mapred.TextInputFormat +OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +Compressed: No +Num Buckets: -1 +Bucket Columns: [] +Sort Columns: [] +Storage Desc Params: + serialization.format 1 +PREHOOK: query: USE tmpdb +PREHOOK: type: SWITCHDATABASE +POSTHOOK: query: USE tmpdb +POSTHOOK: type: SWITCHDATABASE +PREHOOK: query: DROP TABLELINK tmp_table@default +PREHOOK: type: DROPTABLELINK +PREHOOK: Input: tmpdb@tmp_table@default +PREHOOK: Output: tmpdb@tmp_table@default +POSTHOOK: query: DROP TABLELINK tmp_table@default +POSTHOOK: type: DROPTABLELINK +POSTHOOK: Input: tmpdb@tmp_table@default +POSTHOOK: Output: tmpdb@tmp_table@default +PREHOOK: query: USE tmpdb2 +PREHOOK: type: SWITCHDATABASE +POSTHOOK: query: USE tmpdb2 +POSTHOOK: type: SWITCHDATABASE +PREHOOK: query: DROP TABLELINK tmp_table@default +PREHOOK: type: DROPTABLELINK +PREHOOK: Input: tmpdb2@tmp_table@default +PREHOOK: Output: tmpdb2@tmp_table@default +POSTHOOK: query: DROP TABLELINK tmp_table@default +POSTHOOK: type: DROPTABLELINK +POSTHOOK: Input: tmpdb2@tmp_table@default +POSTHOOK: Output: tmpdb2@tmp_table@default Index: ql/src/test/results/clientnegative/drop_tablelink_failure.q.out =================================================================== --- ql/src/test/results/clientnegative/drop_tablelink_failure.q.out (revision 0) +++ ql/src/test/results/clientnegative/drop_tablelink_failure.q.out (working copy) @@ -0,0 +1 @@ +FAILED: SemanticException [Error 10001]: Table not found unknowntable@unknowndb Index: ql/src/test/results/clientnegative/drop_view_failure1.q.out =================================================================== --- ql/src/test/results/clientnegative/drop_view_failure1.q.out (revision 25657) +++ ql/src/test/results/clientnegative/drop_view_failure1.q.out (working copy) @@ -3,10 +3,4 @@ POSTHOOK: query: CREATE TABLE xxx1(key int) POSTHOOK: type: CREATETABLE POSTHOOK: Output: default@xxx1 -PREHOOK: query: -- Can't use DROP VIEW on a base table -DROP VIEW xxx1 -PREHOOK: type: DROPVIEW -PREHOOK: Input: default@xxx1 -PREHOOK: Output: default@xxx1 -FAILED: Error in metadata: Cannot drop a base table with DROP VIEW -FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask +FAILED: SemanticException [Error 10134]: To drop a base table you need to use the DROP TABLE command. Index: ql/src/test/results/clientnegative/create_tablelink_failure1.q.out =================================================================== --- ql/src/test/results/clientnegative/create_tablelink_failure1.q.out (revision 0) +++ ql/src/test/results/clientnegative/create_tablelink_failure1.q.out (working copy) @@ -0,0 +1 @@ +FAILED: SemanticException [Error 10130]: A Table Link cannot link to a table in the same database. Links are meant for accessing other databases. Index: ql/src/test/results/clientnegative/create_tablelink_failure2.q.out =================================================================== --- ql/src/test/results/clientnegative/create_tablelink_failure2.q.out (revision 0) +++ ql/src/test/results/clientnegative/create_tablelink_failure2.q.out (working copy) @@ -0,0 +1,18 @@ +PREHOOK: query: -- Check that creation of a link pointing to a view is not allowed. +CREATE VIEW view1 AS SELECT value FROM src WHERE key=86 +PREHOOK: type: CREATEVIEW +#### A masked pattern was here #### +POSTHOOK: query: -- Check that creation of a link pointing to a view is not allowed. +CREATE VIEW view1 AS SELECT value FROM src WHERE key=86 +POSTHOOK: type: CREATEVIEW +POSTHOOK: Output: default@view1 +#### A masked pattern was here #### +PREHOOK: query: CREATE DATABASE tmpdb +PREHOOK: type: CREATEDATABASE +POSTHOOK: query: CREATE DATABASE tmpdb +POSTHOOK: type: CREATEDATABASE +PREHOOK: query: USE tmpdb +PREHOOK: type: SWITCHDATABASE +POSTHOOK: query: USE tmpdb +POSTHOOK: type: SWITCHDATABASE +FAILED: SemanticException [Error 10131]: Table Links can only point to Managed Tables. They cannot point to Views, External Tables or other Links. Index: ql/src/test/results/clientnegative/drop_table_failure2.q.out =================================================================== --- ql/src/test/results/clientnegative/drop_table_failure2.q.out (revision 25657) +++ ql/src/test/results/clientnegative/drop_table_failure2.q.out (working copy) @@ -5,10 +5,4 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Output: default@xxx6 #### A masked pattern was here #### -PREHOOK: query: -- Can't use DROP TABLE on a view -DROP TABLE xxx6 -PREHOOK: type: DROPTABLE -PREHOOK: Input: default@xxx6 -PREHOOK: Output: default@xxx6 -FAILED: Error in metadata: Cannot drop a view with DROP TABLE -FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask +FAILED: SemanticException [Error 10132]: To drop a view you need to use the DROP VIEW command. Index: ql/src/test/results/clientnegative/create_table_failure5.q.out =================================================================== --- ql/src/test/results/clientnegative/create_table_failure5.q.out (revision 0) +++ ql/src/test/results/clientnegative/create_table_failure5.q.out (working copy) @@ -0,0 +1,2 @@ +FAILED: ParseException line 2:16 cannot recognize input near '@' 'default' '(' in create table statement + Index: ql/src/test/queries/clientpositive/drop_tablelink.q =================================================================== --- ql/src/test/queries/clientpositive/drop_tablelink.q (revision 0) +++ ql/src/test/queries/clientpositive/drop_tablelink.q (working copy) @@ -0,0 +1,2 @@ +SET hive.exec.drop.ignorenonexistent=false; +DROP TABLELINK IF EXISTS unknowntable@unknowndb; Index: ql/src/test/queries/clientpositive/create_tablelink2.q =================================================================== --- ql/src/test/queries/clientpositive/create_tablelink2.q (revision 0) +++ ql/src/test/queries/clientpositive/create_tablelink2.q (working copy) @@ -0,0 +1,19 @@ +CREATE TABLE tmp_table(a int, b string); + +CREATE DATABASE tmpdb; +USE tmpdb; +CREATE TABLELINK TO tmp_table@default; + +CREATE DATABASE tmpdb2; +USE tmpdb2; +CREATE TABLELINK TO tmp_table@default; + +USE DEFAULT; +DESC FORMATTED tmp_table; +ALTER TABLE tmp_table SET TBLPROPERTIES ('a'='1', 'c'='3'); +DESC FORMATTED tmp_table; + +USE tmpdb; +DROP TABLELINK tmp_table@default; +USE tmpdb2; +DROP TABLELINK tmp_table@default; Index: ql/src/test/queries/clientpositive/create_tablelink.q =================================================================== --- ql/src/test/queries/clientpositive/create_tablelink.q (revision 0) +++ ql/src/test/queries/clientpositive/create_tablelink.q (working copy) @@ -0,0 +1,17 @@ +CREATE DATABASE tmpdb; +USE tmpdb; + +CREATE TABLELINK TO src@default LINKPROPERTIES('RETENTION'='7'); +DESC src@default; +DESC EXTENDED src@default; +DESC FORMATTED src@default; + +CREATE STATIC TABLELINK TO srcbucket@default; +DESC srcbucket@default; +DESC EXTENDED srcbucket@default; +DESC FORMATTED srcbucket@default; + +SHOW TABLES; + +DROP TABLELINK src@default; +DROP TABLELINK srcbucket@default; Index: ql/src/test/queries/clientnegative/drop_tablelink_failure.q =================================================================== --- ql/src/test/queries/clientnegative/drop_tablelink_failure.q (revision 0) +++ ql/src/test/queries/clientnegative/drop_tablelink_failure.q (working copy) @@ -0,0 +1,3 @@ +SET hive.exec.drop.ignorenonexistent=false; +-- Dropping a TableLink that does not exist without specifying IF EXISTS. +DROP TABLELINK unknowntable@unknowndb; Index: ql/src/test/queries/clientnegative/create_tablelink_failure1.q =================================================================== --- ql/src/test/queries/clientnegative/create_tablelink_failure1.q (revision 0) +++ ql/src/test/queries/clientnegative/create_tablelink_failure1.q (working copy) @@ -0,0 +1,2 @@ +-- Check that creation of a link to a table in the same database is not allowed. +CREATE TABLELINK TO src@default; Index: ql/src/test/queries/clientnegative/create_tablelink_failure2.q =================================================================== --- ql/src/test/queries/clientnegative/create_tablelink_failure2.q (revision 0) +++ ql/src/test/queries/clientnegative/create_tablelink_failure2.q (working copy) @@ -0,0 +1,7 @@ +-- Check that creation of a link pointing to a view is not allowed. +CREATE VIEW view1 AS SELECT value FROM src WHERE key=86; + +CREATE DATABASE tmpdb; +USE tmpdb; + +CREATE TABLELINK TO view1@default; Index: ql/src/test/queries/clientnegative/create_table_failure5.q =================================================================== --- ql/src/test/queries/clientnegative/create_table_failure5.q (revision 0) +++ ql/src/test/queries/clientnegative/create_table_failure5.q (working copy) @@ -0,0 +1,2 @@ +-- Check that a table cannot have a name that represents a tablelink +CREATE TABLE xyz@default (a STRING, b STRING); Index: ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java (revision 25657) +++ ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java (working copy) @@ -43,6 +43,7 @@ import org.apache.hadoop.hive.metastore.api.Order; import org.apache.hadoop.hive.metastore.api.SerDeInfo; import org.apache.hadoop.hive.metastore.api.StorageDescriptor; +import org.apache.hadoop.hive.metastore.api.TableIdentifier; import org.apache.hadoop.hive.ql.io.HiveFileFormatUtils; import org.apache.hadoop.hive.ql.io.HiveOutputFormat; import org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat; @@ -148,6 +149,7 @@ t.setTableType(TableType.MANAGED_TABLE.toString()); t.setDbName(databaseName); t.setTableName(tableName); + t.setLinkTables(new ArrayList()); } return t; } @@ -156,9 +158,10 @@ // check for validity String name = tTable.getTableName(); if (null == name || name.length() == 0 - || !MetaStoreUtils.validateName(name)) { + || !MetaStoreUtils.validateTableName(tTable)) { throw new HiveException("[" + name + "]: is not a valid table name"); } + if (0 == getCols().size()) { throw new HiveException( "at least one column must be specified for the table"); @@ -183,6 +186,16 @@ assert(getViewExpandedText() == null); } + if (isTableLink()) { + if (getLinkTarget() == null) { + throw new HiveException("Invalid table " + name + ". It is a Table Link " + + " but it does not have a target table"); + } + } else if (getLinkTarget() != null) { + throw new HiveException("Table " + name + " is not a Table Link but has " + + "a link target table set."); + } + Iterator iterCols = getCols().iterator(); List colNames = new ArrayList(); while (iterCols.hasNext()) { @@ -375,6 +388,26 @@ return Enum.valueOf(TableType.class, tTable.getTableType()); } + public void setLinkTarget(String targetDb, String targetTbl) { + setLinkTarget(new TableIdentifier(targetDb, targetTbl)); + } + + public void setLinkTarget(TableIdentifier linkTarget) { + tTable.setLinkTarget(linkTarget); + } + + public TableIdentifier getLinkTarget() { + return tTable.getLinkTarget(); + } + + public void setLinkTables(List linkTables) { + tTable.setLinkTables(linkTables); + } + + public List getLinkTables() { + return new ArrayList(tTable.getLinkTables()); + } + public ArrayList getFields() { ArrayList fields = new ArrayList(); @@ -720,6 +753,14 @@ } /** + * @return whether this table is a link table + */ + public boolean isTableLink() { + return TableType.DYNAMIC_TABLE_LINK.equals(getTableType()) || + TableType.STATIC_TABLE_LINK.equals(getTableType()); + } + + /** * Creates a partition name -> value spec map object * * @param tp Index: ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java (revision 25657) +++ ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java (working copy) @@ -29,6 +29,7 @@ import org.apache.hadoop.hive.metastore.api.FieldSchema; import org.apache.hadoop.hive.metastore.api.Index; import org.apache.hadoop.hive.metastore.api.StorageDescriptor; +import org.apache.hadoop.hive.metastore.api.TableIdentifier; import org.apache.hadoop.hive.ql.index.HiveIndex; import org.apache.hadoop.hive.ql.index.HiveIndex.IndexType; import org.apache.hadoop.hive.ql.metadata.Partition; @@ -214,6 +215,9 @@ tableInfo.append("Table Parameters:").append(LINE_DELIM); displayAllParameters(tbl.getParameters(), tableInfo); } + if (tbl.getLinkTables().size() > 0) { + displayLinkedTables(tbl.getLinkTables(), tableInfo); + } } private static void getPartitionMetaDataInformation(StringBuilder tableInfo, Partition part) { @@ -242,6 +246,24 @@ } } + private static void displayLinkedTables(List linkTables, + StringBuilder tableInfo) { + List dbs = new ArrayList(); + for (TableIdentifier linkTable : linkTables) { + dbs.add(linkTable.getDbName()); + } + Collections.sort(dbs); + tableInfo.append("Linked Databases:").append(FIELD_DELIM); + boolean first = true; + for (String db : dbs) { + if (!first) { + tableInfo.append(", "); + } + tableInfo.append(db); + first = false; + } + } + private static void formatFieldSchemas(StringBuilder tableInfo, FieldSchema col) { String comment = col.getComment() != null ? col.getComment() : "None"; formatOutput(col.getName(), col.getType(), comment, tableInfo); Index: ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (revision 25657) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (working copy) @@ -72,6 +72,7 @@ import org.apache.hadoop.hive.metastore.api.PrivilegeBag; import org.apache.hadoop.hive.metastore.api.PrivilegeGrantInfo; import org.apache.hadoop.hive.metastore.api.Role; +import org.apache.hadoop.hive.metastore.api.TableIdentifier; import org.apache.hadoop.hive.ql.Context; import org.apache.hadoop.hive.ql.DriverContext; import org.apache.hadoop.hive.ql.QueryPlan; @@ -109,6 +110,7 @@ import org.apache.hadoop.hive.ql.plan.CreateIndexDesc; import org.apache.hadoop.hive.ql.plan.CreateTableDesc; import org.apache.hadoop.hive.ql.plan.CreateTableLikeDesc; +import org.apache.hadoop.hive.ql.plan.CreateTableLinkDesc; import org.apache.hadoop.hive.ql.plan.CreateViewDesc; import org.apache.hadoop.hive.ql.plan.DDLWork; import org.apache.hadoop.hive.ql.plan.DescDatabaseDesc; @@ -278,6 +280,11 @@ return createView(db, crtView); } + CreateTableLinkDesc crtTblLinkDesc = work.getCreateTblLinkDesc(); + if (crtTblLinkDesc != null) { + return createTableLink(db, crtTblLinkDesc); + } + AddPartitionDesc addPartitionDesc = work.getAddPartitionDesc(); if (addPartitionDesc != null) { return addPartition(db, addPartitionDesc); @@ -3025,25 +3032,6 @@ if (dropTbl.getPartSpecs() == null) { // This is a true DROP TABLE - if (tbl != null) { - if (tbl.isView()) { - if (!dropTbl.getExpectView()) { - if (dropTbl.getIfExists()) { - return 0; - } - throw new HiveException("Cannot drop a view with DROP TABLE"); - } - } else { - if (dropTbl.getExpectView()) { - if (dropTbl.getIfExists()) { - return 0; - } - throw new HiveException( - "Cannot drop a base table with DROP VIEW"); - } - } - } - if (tbl != null && !tbl.canDrop()) { throw new HiveException("Table " + tbl.getTableName() + " is protected from being dropped"); @@ -3070,8 +3058,12 @@ } } - // drop the table - db.dropTable(dropTbl.getTableName()); + if (tbl != null && tbl.isTableLink()) { + // Don't delete the underlying data when dropping a table link. + db.dropTable(db.getCurrentDatabase(), dropTbl.getTableName(), false, true); + } else { + db.dropTable(dropTbl.getTableName()); + } if (tbl != null) { work.getOutputs().add(new WriteEntity(tbl)); } @@ -3572,6 +3564,44 @@ return 0; } + /** + * Create a table link to an existing table. + * + * @param db The database in question. + * @param crtTblLinkDesc + * @return Returns 0 when execution succeeds and above 0 if it fails. + */ + private int createTableLink(Hive db, CreateTableLinkDesc crtTblLink) throws HiveException { + Table tbl = db.getTable(crtTblLink.getTargetDatabase(), crtTblLink.getTargetTable()); + tbl.setTableName(crtTblLink.getTargetTable() + "@" + crtTblLink.getTargetDatabase()); + tbl.setDbName(db.getCurrentDatabase()); + // set owner and creation time + int rc = setGenericTableAttributes(tbl); + if (rc != 0) { + return rc; + } + tbl.setLastAccessTime((int) (System.currentTimeMillis() / 1000)); + Map params = tbl.getParameters(); + // Most of the metadata of the target table is retained. However we don't want to + // copy the Parameters of the target table because they include several things + // that would be wrong to copy like numPartitions, transient_lastDdlTime, etc. + params.clear(); + if (crtTblLink.getLinkProps() != null) { + params.putAll(crtTblLink.getLinkProps()); + } + if (crtTblLink.isStaticLink()) { + tbl.setTableType(TableType.STATIC_TABLE_LINK); + } else { + tbl.setTableType(TableType.DYNAMIC_TABLE_LINK); + } + tbl.setLinkTarget(crtTblLink.getTargetDatabase(), crtTblLink.getTargetTable()); + tbl.setLinkTables(new ArrayList()); + + db.createTable(tbl); + work.getOutputs().add(new WriteEntity(tbl)); + return 0; + } + private int setGenericTableAttributes(Table tbl) { try { tbl.setOwner(conf.getUser()); Index: ql/src/java/org/apache/hadoop/hive/ql/plan/DropTableDesc.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/plan/DropTableDesc.java (revision 25657) +++ ql/src/java/org/apache/hadoop/hive/ql/plan/DropTableDesc.java (working copy) @@ -33,6 +33,7 @@ String tableName; ArrayList partSpecs; boolean expectView; + boolean expectLink; boolean ifExists; boolean stringPartitionColumns; // This is due to JDO not working very well with // non-string partition columns. @@ -44,18 +45,18 @@ /** * @param tableName */ - public DropTableDesc(String tableName, boolean expectView, + public DropTableDesc(String tableName, boolean expectView, boolean expectLink, boolean ifExists, boolean stringPartitionColumns) { this.tableName = tableName; partSpecs = null; this.expectView = expectView; + this.expectLink = expectLink; this.ifExists = ifExists; this.stringPartitionColumns = stringPartitionColumns; } public DropTableDesc(String tableName, List partSpecs, boolean expectView, boolean stringPartitionColumns) { - this.tableName = tableName; this.partSpecs = new ArrayList(partSpecs.size()); for (int i = 0; i < partSpecs.size(); i++) { @@ -63,6 +64,7 @@ } this.expectView = expectView; this.stringPartitionColumns = stringPartitionColumns; + this.expectLink = false; } /** @@ -112,6 +114,21 @@ } /** + * @return whether to expect a table link being dropped + */ + public boolean getExpectLink() { + return expectLink; + } + + /** + * @param expectLink + * set whether to expect a table link being dropped + */ + public void setExpectLink(boolean expectLink) { + this.expectLink = expectLink; + } + + /** * @return whether IF EXISTS was specified */ public boolean getIfExists() { Index: ql/src/java/org/apache/hadoop/hive/ql/plan/CreateTableLinkDesc.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/plan/CreateTableLinkDesc.java (revision 0) +++ ql/src/java/org/apache/hadoop/hive/ql/plan/CreateTableLinkDesc.java (working copy) @@ -0,0 +1,64 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.hive.ql.plan; + +import java.io.Serializable; +import java.util.Map; + +/** + * CreateTableLinkDesc. + * + */ +@Explain(displayName = "Create TableLink") +public class CreateTableLinkDesc extends DDLDesc implements Serializable { + + private static final long serialVersionUID = 1L; + String targetTable; + String targetDatabase; + boolean isStatic; + Map linkProps; + + public CreateTableLinkDesc(String targetTable, String targetDatabase, + boolean isStatic, Map linkProps) { + this.targetTable = targetTable; + this.targetDatabase = targetDatabase; + this.isStatic = isStatic; + this.linkProps = linkProps; + } + + @Explain(displayName = "target table") + public String getTargetTable() { + return targetTable; + } + + @Explain(displayName = "target database" ) + public String getTargetDatabase() { + return targetDatabase; + } + + @Explain(displayName = "static link") + public boolean isStaticLink() { + return isStatic; + } + + @Explain(displayName = "link properties") + public Map getLinkProps() { + return linkProps; + } +} Index: ql/src/java/org/apache/hadoop/hive/ql/plan/DDLWork.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/plan/DDLWork.java (revision 25657) +++ ql/src/java/org/apache/hadoop/hive/ql/plan/DDLWork.java (working copy) @@ -40,6 +40,7 @@ private CreateTableDesc createTblDesc; private CreateTableLikeDesc createTblLikeDesc; private CreateViewDesc createVwDesc; + private CreateTableLinkDesc createTblLinkDesc; private DropTableDesc dropTblDesc; private AlterTableDesc alterTblDesc; private AlterIndexDesc alterIdxDesc; @@ -203,6 +204,16 @@ } /** + * @param createTblLinkDesc + * create table link descriptor + */ + public DDLWork(HashSet inputs, HashSet outputs, + CreateTableLinkDesc createTblLinkDesc) { + this(inputs, outputs); + this.createTblLinkDesc = createTblLinkDesc; + } + + /** * @param dropTblDesc * drop table descriptor */ @@ -538,6 +549,22 @@ } /** + * @return the createTblLinkDesc + */ + @Explain(displayName = "Create Table Link Operator") + public CreateTableLinkDesc getCreateTblLinkDesc() { + return createTblLinkDesc; + } + + /** + * @param createTblLinkDesc + * the createTblLinkDesc to set + */ + public void setCreateTblLinkDesc(CreateTableLinkDesc createTblLinkDesc) { + this.createTblLinkDesc = createTblLinkDesc; + } + + /** * @return the dropTblDesc */ @Explain(displayName = "Drop Table Operator") Index: ql/src/java/org/apache/hadoop/hive/ql/plan/HiveOperation.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/plan/HiveOperation.java (revision 25657) +++ ql/src/java/org/apache/hadoop/hive/ql/plan/HiveOperation.java (working copy) @@ -83,6 +83,8 @@ ALTERPARTITION_LOCATION("ALTERPARTITION_LOCATION", new Privilege[]{Privilege.ALTER_DATA}, null), CREATETABLE("CREATETABLE", null, new Privilege[]{Privilege.CREATE}), CREATETABLE_AS_SELECT("CREATETABLE_AS_SELECT", new Privilege[]{Privilege.SELECT}, new Privilege[]{Privilege.CREATE}), + CREATETABLELINK("CREATETABLELINK", null, new Privilege[]{Privilege.CREATE}), + DROPTABLELINK("DROPTABLELINK", null, new Privilege[]{Privilege.DROP}), QUERY("QUERY", new Privilege[]{Privilege.SELECT}, new Privilege[]{Privilege.ALTER_DATA, Privilege.CREATE}), ALTERINDEX_PROPS("ALTERINDEX_PROPS",null, null), ALTERDATABASE("ALTERDATABASE", null, null), Index: ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g (revision 25657) +++ ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g (working copy) @@ -112,6 +112,7 @@ TOK_CREATETABLE; TOK_CREATEINDEX; TOK_CREATEINDEX_INDEXTBLNAME; +TOK_CREATETABLELINK; TOK_DEFERRED_REBUILDINDEX; TOK_DROPINDEX; TOK_LIKETABLE; @@ -151,6 +152,7 @@ TOK_SWITCHDATABASE; TOK_DROPDATABASE; TOK_DROPTABLE; +TOK_DROPTABLELINK; TOK_DATABASECOMMENT; TOK_TABCOLLIST; TOK_TABCOL; @@ -254,6 +256,7 @@ TOK_ALTERDATABASE_PROPERTIES; TOK_ALTERTABLE_ALTERPARTS_MERGEFILES; TOK_TABNAME; +TOK_TABLINKNAME; TOK_TABSRC; TOK_RESTRICT; TOK_CASCADE; @@ -330,6 +333,8 @@ | dropDatabaseStatement | createTableStatement | dropTableStatement + | createLinkStatement + | dropLinkStatement | alterStatement | descStatement | showStatement @@ -469,6 +474,14 @@ ) ; +createLinkStatement +@init { msgs.push("create tablelink statement"); } +@after { msgs.pop(); } + : KW_CREATE (linkOptions=KW_STATIC)? KW_TABLELINK KW_TO + tab=Identifier AT db=Identifier linkPropertiesPrefixed? + -> ^(TOK_CREATETABLELINK $db $tab $linkOptions? linkPropertiesPrefixed?) + ; + createIndexStatement @init { msgs.push("create index statement");} @after {msgs.pop();} @@ -548,6 +561,12 @@ @after { msgs.pop(); } : KW_DROP KW_TABLE ifExists? tableName -> ^(TOK_DROPTABLE tableName ifExists?) ; + +dropLinkStatement +@init { msgs.push("drop link statement"); } +@after { msgs.pop(); } + : KW_DROP KW_TABLELINK ifExists? linkTableName -> ^(TOK_DROPTABLELINK linkTableName ifExists?) + ; alterStatement @init { msgs.push("alter statement"); } @@ -814,8 +833,7 @@ tabTypeExpr @init { msgs.push("specifying table types"); } @after { msgs.pop(); } - - : Identifier (DOT^ (Identifier | KW_ELEM_TYPE | KW_KEY_TYPE | KW_VALUE_TYPE))* + : (Identifier AT^)? Identifier (DOT^ (Identifier | KW_ELEM_TYPE | KW_KEY_TYPE | KW_VALUE_TYPE))* ; partTypeExpr @@ -1130,6 +1148,14 @@ KW_TBLPROPERTIES! tableProperties ; +linkPropertiesPrefixed +@init { msgs.push("link properties with prefix"); } +@after { msgs.pop(); } + : + KW_LINKPROPERTIES! tableProperties + ; + + tableProperties @init { msgs.push("table properties"); } @after { msgs.pop(); } @@ -1696,6 +1722,13 @@ : (db=Identifier DOT)? tab=Identifier -> ^(TOK_TABNAME $db? $tab) ; + +linkTableName +@init { msgs.push("link table name"); } +@after { msgs.pop(); } + : tab=Identifier AT db=Identifier + -> ^(TOK_TABLINKNAME $db $tab) + ; viewName @init { msgs.push("view name"); } @@ -2191,6 +2224,7 @@ KW_TABLES: 'TABLES'; KW_INDEX: 'INDEX'; KW_INDEXES: 'INDEXES'; +KW_TABLELINK: 'TABLELINK'; KW_REBUILD: 'REBUILD'; KW_FUNCTIONS: 'FUNCTIONS'; KW_SHOW: 'SHOW'; @@ -2295,6 +2329,7 @@ KW_SET: 'SET'; KW_TBLPROPERTIES: 'TBLPROPERTIES'; KW_IDXPROPERTIES: 'IDXPROPERTIES'; +KW_LINKPROPERTIES: 'LINKPROPERTIES'; KW_VALUE_TYPE: '$VALUE$'; KW_ELEM_TYPE: '$ELEM$'; KW_CASE: 'CASE'; @@ -2362,8 +2397,8 @@ KW_UPDATE: 'UPDATE'; KW_RESTRICT: 'RESTRICT'; KW_CASCADE: 'CASCADE'; +KW_STATIC: 'STATIC'; - // Operators // NOTE: if you add a new function/operator, add it to sysFuncNames so that describe function _FUNC_ will work. @@ -2371,6 +2406,7 @@ COLON : ':' ; COMMA : ',' ; SEMICOLON : ';' ; +AT : '@' ; LPAREN : '(' ; RPAREN : ')' ; Index: ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzerFactory.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzerFactory.java (revision 25657) +++ ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzerFactory.java (working copy) @@ -69,6 +69,8 @@ commandType.put(HiveParser.TOK_DROPFUNCTION, HiveOperation.DROPFUNCTION); commandType.put(HiveParser.TOK_CREATEVIEW, HiveOperation.CREATEVIEW); commandType.put(HiveParser.TOK_DROPVIEW, HiveOperation.DROPVIEW); + commandType.put(HiveParser.TOK_CREATETABLELINK, HiveOperation.CREATETABLELINK); + commandType.put(HiveParser.TOK_DROPTABLELINK, HiveOperation.DROPTABLELINK); commandType.put(HiveParser.TOK_CREATEINDEX, HiveOperation.CREATEINDEX); commandType.put(HiveParser.TOK_DROPINDEX, HiveOperation.DROPINDEX); commandType.put(HiveParser.TOK_ALTERINDEX_REBUILD, HiveOperation.ALTERINDEX_REBUILD); @@ -136,6 +138,7 @@ case HiveParser.TOK_SWITCHDATABASE: case HiveParser.TOK_DROPTABLE: case HiveParser.TOK_DROPVIEW: + case HiveParser.TOK_DROPTABLELINK: case HiveParser.TOK_DESCDATABASE: case HiveParser.TOK_DESCTABLE: case HiveParser.TOK_DESCFUNCTION: @@ -165,6 +168,7 @@ case HiveParser.TOK_SHOWLOCKS: case HiveParser.TOK_CREATEINDEX: case HiveParser.TOK_DROPINDEX: + case HiveParser.TOK_CREATETABLELINK: case HiveParser.TOK_ALTERTABLE_CLUSTER_SORT: case HiveParser.TOK_ALTERTABLE_TOUCH: case HiveParser.TOK_ALTERTABLE_ARCHIVE: Index: ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java (revision 25657) +++ ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java (working copy) @@ -326,6 +326,10 @@ } else { return unescapeIdentifier(tableNameNode.getChild(0).getText()); } + } else if (tableNameNode.getToken().getType() == HiveParser.TOK_TABLINKNAME) { + String dbName = unescapeIdentifier(tableNameNode.getChild(0).getText()); + String tableName = unescapeIdentifier(tableNameNode.getChild(1).getText()); + return tableName + "@" + dbName; } return unescapeIdentifier(tableNameNode.getText()); } Index: ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java (revision 25657) +++ ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java (working copy) @@ -43,6 +43,7 @@ import org.apache.hadoop.fs.Path; import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.conf.HiveConf.ConfVars; +import org.apache.hadoop.hive.metastore.TableType; import org.apache.hadoop.hive.metastore.Warehouse; import org.apache.hadoop.hive.metastore.api.FieldSchema; import org.apache.hadoop.hive.metastore.api.Index; @@ -68,6 +69,8 @@ import org.apache.hadoop.hive.ql.metadata.HiveUtils; import org.apache.hadoop.hive.ql.metadata.Partition; import org.apache.hadoop.hive.ql.metadata.Table; +import org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.AnalyzeCreateCommonVars; +import org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.StorageFormat; import org.apache.hadoop.hive.ql.plan.AddPartitionDesc; import org.apache.hadoop.hive.ql.plan.AlterDatabaseDesc; import org.apache.hadoop.hive.ql.plan.AlterIndexDesc; @@ -77,6 +80,7 @@ import org.apache.hadoop.hive.ql.plan.AlterTableSimpleDesc; import org.apache.hadoop.hive.ql.plan.CreateDatabaseDesc; import org.apache.hadoop.hive.ql.plan.CreateIndexDesc; +import org.apache.hadoop.hive.ql.plan.CreateTableLinkDesc; import org.apache.hadoop.hive.ql.plan.DDLWork; import org.apache.hadoop.hive.ql.plan.DescDatabaseDesc; import org.apache.hadoop.hive.ql.plan.DescFunctionDesc; @@ -87,6 +91,7 @@ import org.apache.hadoop.hive.ql.plan.FetchWork; import org.apache.hadoop.hive.ql.plan.GrantDesc; import org.apache.hadoop.hive.ql.plan.GrantRevokeRoleDDL; +import org.apache.hadoop.hive.ql.plan.HiveOperation; import org.apache.hadoop.hive.ql.plan.LoadTableDesc; import org.apache.hadoop.hive.ql.plan.LockTableDesc; import org.apache.hadoop.hive.ql.plan.MoveWork; @@ -209,7 +214,7 @@ break; } case HiveParser.TOK_DROPTABLE: - analyzeDropTable(ast, false); + analyzeDropTable(ast, false, false); break; case HiveParser.TOK_CREATEINDEX: analyzeCreateIndex(ast); @@ -217,6 +222,12 @@ case HiveParser.TOK_DROPINDEX: analyzeDropIndex(ast); break; + case HiveParser.TOK_CREATETABLELINK: + analyzeCreateTableLink(ast); + break; + case HiveParser.TOK_DROPTABLELINK: + analyzeDropTable(ast, false, true); + break; case HiveParser.TOK_DESCTABLE: ctx.setResFile(new Path(ctx.getLocalTmpFileURI())); analyzeDescribeTable(ast); @@ -258,7 +269,7 @@ analyzeMetastoreCheck(ast); break; case HiveParser.TOK_DROPVIEW: - analyzeDropTable(ast, true); + analyzeDropTable(ast, true, false); break; case HiveParser.TOK_ALTERVIEW_PROPERTIES: analyzeAlterTableProps(ast, true); @@ -694,7 +705,7 @@ - private void analyzeDropTable(ASTNode ast, boolean expectView) + private void analyzeDropTable(ASTNode ast, boolean expectView, boolean expectLink) throws SemanticException { String tableName = getUnescapedName((ASTNode)ast.getChild(0)); boolean ifExists = (ast.getFirstChildWithType(TOK_IFEXISTS) != null); @@ -702,18 +713,48 @@ // configured not to fail silently boolean throwException = !ifExists && !HiveConf.getBoolVar(conf, ConfVars.DROPIGNORESNONEXISTENT); + Table tab = null; try { - Table tab = db.getTable(db.getCurrentDatabase(), tableName, throwException); - if (tab != null) { - inputs.add(new ReadEntity(tab)); - outputs.add(new WriteEntity(tab)); - } + tab = db.getTable(tableName, throwException); } catch (HiveException e) { throw new SemanticException(ErrorMsg.INVALID_TABLE.getMsg(tableName)); } - + if (tab != null) { + inputs.add(new ReadEntity(tab)); + outputs.add(new WriteEntity(tab)); + switch(tab.getTableType()) { + case VIRTUAL_VIEW: + if (!expectView ) { + if (ifExists) { + return; + } + throw new SemanticException(ErrorMsg.DROP_COMMAND_FOR_VIEWS.getMsg()); + } + break; + case DYNAMIC_TABLE_LINK: + case STATIC_TABLE_LINK: + if (!expectLink) { + if (ifExists) { + return; + } + throw new SemanticException(ErrorMsg.DROP_COMMAND_FOR_TABLELINKS.getMsg()); + } + break; + case MANAGED_TABLE: + case EXTERNAL_TABLE: + if (expectView || expectLink) { + if (ifExists) { + return; + } + throw new SemanticException(ErrorMsg.DROP_COMMAND_FOR_TABLES.getMsg()); + } + break; + default: + throw new SemanticException("Unrecognized table type"); + } + } DropTableDesc dropTblDesc = new DropTableDesc( - tableName, expectView, ifExists, true); + tableName, expectView, expectLink, ifExists, true); rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(), dropTblDesc), conf)); } @@ -820,6 +861,46 @@ dropIdxDesc), conf)); } + private void analyzeCreateTableLink(ASTNode ast) throws SemanticException { + String dbName = unescapeIdentifier(ast.getChild(0).getText()); + String tableName = unescapeIdentifier(ast.getChild(1).getText()); + boolean isStatic = false; + Map linkProps = null; + int numCh = ast.getChildCount(); + for (int num = 2; num < numCh; num++) { + ASTNode child = (ASTNode) ast.getChild(num); + switch(child.getToken().getType()) { + case HiveParser.KW_STATIC: + isStatic = true; + break; + case HiveParser.TOK_TABLEPROPERTIES: + linkProps = DDLSemanticAnalyzer.getProps((ASTNode) child.getChild(0)); + break; + } + } + + if (dbName.equals(db.getCurrentDatabase())) { + throw new SemanticException(ErrorMsg.TABLELINK_TO_OWN_DB.getMsg()); + } + Table targetTable = null; + try { + targetTable = db.getTable(dbName, tableName); + } catch (HiveException e) { + throw new SemanticException(ErrorMsg.INVALID_TABLE.getMsg(tableName + "@" + dbName)); + } + + TableType targetType = targetTable.getTableType(); + if (targetType != TableType.MANAGED_TABLE) { + throw new SemanticException(ErrorMsg.TABLELINK_TO_UNMANAGED_TABLE.getMsg()); + } + + inputs.add(new ReadEntity(targetTable)); + CreateTableLinkDesc ctlDesc = new CreateTableLinkDesc(tableName, dbName, isStatic, linkProps); + SessionState.get().setCommandType(HiveOperation.CREATETABLELINK); + rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(), + ctlDesc), conf)); + } + private void analyzeAlterIndexRebuild(ASTNode ast) throws SemanticException { String baseTableName = unescapeIdentifier(ast.getChild(0).getText()); String indexName = unescapeIdentifier(ast.getChild(1).getText()); @@ -1296,11 +1377,12 @@ } /** - * Get the fully qualified name in the ast. e.g. the ast of the form ^(DOT - * ^(DOT a b) c) will generate a name of the form a.b.c + * Get the fully qualified name in the ast by concatenating the nodes of the binary tree + * in an inorder traversal order. e.g. the ast of the form ^(DOT + * ^(AT a b) c) will generate a name of the form a@b.c * * @param ast - * The AST from which the qualified name has to be extracted + * The root node of the binary tree * @return String */ private String getFullyQualifiedName(ASTNode ast) { @@ -1308,7 +1390,7 @@ return ast.getText(); } - return getFullyQualifiedName((ASTNode) ast.getChild(0)) + "." + return getFullyQualifiedName((ASTNode) ast.getChild(0)) + ast.getText() + getFullyQualifiedName((ASTNode) ast.getChild(1)); } Index: ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java (revision 25657) +++ ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java (working copy) @@ -215,7 +215,16 @@ UDAF_INVALID_LOCATION(10128, "Not yet supported place for UDAF"), DROP_PARTITION_NON_STRING_PARTCOLS_NONEQUALITY(10129, "Drop partitions for a non string partition columns is not allowed using non-equality"), + TABLELINK_TO_OWN_DB(10130, "A Table Link cannot link to a table in the same database. " + + "Links are meant for accessing other databases."), + TABLELINK_TO_UNMANAGED_TABLE(10131, "Table Links can only point to Managed Tables. " + + "They cannot point to Views, External Tables or other Links."), + DROP_COMMAND_FOR_VIEWS(10132, "To drop a view you need to use the DROP VIEW command."), + DROP_COMMAND_FOR_TABLELINKS(10133, "To drop a table link you need to use the" + + " DROP TABLELINK command." ), + DROP_COMMAND_FOR_TABLES(10134, "To drop a base table you need to use the DROP TABLE command."), + SCRIPT_INIT_ERROR(20000, "Unable to initialize custom script."), SCRIPT_IO_ERROR(20001, "An error occurred while reading or writing to your custom script. " + "It may have crashed with an error."),