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/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/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java =================================================================== --- metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java (revision 1344985) +++ 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,19 @@ return tables; } + /** + * @param mtbl the MTable + * @return the TableIdentifier for the passed MTable. + */ + private TableIdentifier extractTableIdentifier(MTable mtbl) { + if (mtbl == null) { + return null; + } + return new TableIdentifier( + mtbl.getDatabase().getName(), + mtbl.getTableName()); + } + private Table convertToTable(MTable mtbl) throws MetaException { if (mtbl == null) { return null; @@ -865,12 +879,25 @@ tableType = TableType.MANAGED_TABLE.toString(); } } - return new Table(mtbl.getTableName(), mtbl.getDatabase().getName(), mtbl + + TableIdentifier linkTarget = 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 +929,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 1344985) +++ metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java (working copy) @@ -62,6 +62,7 @@ public class MetaStoreUtils { protected static final Log LOG = LogFactory.getLog("hive.log"); + protected static final String IDENTIFIER_REGEX = "[a-zA-Z_0-9@]+"; public static final String DEFAULT_DATABASE_NAME = "default"; public static final String DEFAULT_DATABASE_COMMENT = "Default Hive database"; @@ -295,7 +296,7 @@ /** * validateName * - * Checks the name conforms to our standars which are: "[a-zA-z_0-9]+". checks + * Checks the name conforms to our standars which are: "[a-zA-z_0-9@]+". checks * this is just characters and numbers and _ * * @param name @@ -305,7 +306,7 @@ * if it doesn't match the pattern. */ static public boolean validateName(String name) { - Pattern tpat = Pattern.compile("[\\w_]+"); + Pattern tpat = Pattern.compile(IDENTIFIER_REGEX); Matcher m = tpat.matcher(name); if (m.matches()) { return true; Index: metastore/src/java/org/apache/hadoop/hive/metastore/TableType.java =================================================================== --- metastore/src/java/org/apache/hadoop/hive/metastore/TableType.java (revision 1344985) +++ metastore/src/java/org/apache/hadoop/hive/metastore/TableType.java (working copy) @@ -22,5 +22,10 @@ * 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, + LINK_TABLE, + STATIC_LINK_TABLE } Index: metastore/src/model/package.jdo =================================================================== --- metastore/src/model/package.jdo (revision 1344985) +++ metastore/src/model/package.jdo (working copy) @@ -173,6 +173,10 @@ + + + + Index: metastore/src/model/org/apache/hadoop/hive/metastore/model/MTable.java =================================================================== --- metastore/src/model/org/apache/hadoop/hive/metastore/model/MTable.java (revision 1344985) +++ metastore/src/model/org/apache/hadoop/hive/metastore/model/MTable.java (working copy) @@ -20,6 +20,7 @@ import java.util.List; import java.util.Map; +import java.util.Set; public class MTable { @@ -35,6 +36,8 @@ private String viewOriginalText; private String viewExpandedText; private String tableType; + private MTable linkTarget; + private Set linkTables; public MTable() {} @@ -51,11 +54,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 +74,8 @@ this.viewOriginalText = viewOriginalText; this.viewExpandedText = viewExpandedText; this.tableType = tableType; + this.linkTarget = linkTarget; + this.linkTables = linkTables; } /** @@ -237,4 +245,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 linkTables; + } } Index: metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py =================================================================== --- metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py (revision 1344985) +++ 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 1344985) +++ 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 1344985) +++ 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 1344985) +++ 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 1344985) +++ 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 1344985) +++ 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 1344985) +++ 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 1344985) +++ 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 1344985) +++ 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 1344985) +++ 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 1344985) +++ 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 1344985) +++ 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 1344985) +++ 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 1344985) +++ 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 1344985) +++ 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 table this link table points to, null if not a link table + 15: optional list linkTables // all link tables pointing to this table } 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,135 @@ +PREHOOK: query: DROP DATABASE IF EXISTS tmpdb CASCADE +PREHOOK: type: DROPDATABASE +POSTHOOK: query: DROP DATABASE IF EXISTS tmpdb CASCADE +POSTHOOK: type: DROPDATABASE +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: LINK_TABLE +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_LINK_TABLE +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 1344985) +++ 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 1344985) +++ 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/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]: You cannot create Links to tables in your own 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,24 @@ +PREHOOK: query: DROP VIEW view1 +PREHOOK: type: DROPVIEW +POSTHOOK: query: DROP VIEW view1 +POSTHOOK: type: DROPVIEW +PREHOOK: query: CREATE VIEW view1 AS SELECT value FROM src WHERE key=86 +PREHOOK: type: CREATEVIEW +#### A masked pattern was here #### +POSTHOOK: query: 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: DROP DATABASE IF EXISTS tmpdb CASCADE +PREHOOK: type: DROPDATABASE +POSTHOOK: query: DROP DATABASE IF EXISTS tmpdb CASCADE +POSTHOOK: type: DROPDATABASE +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/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 1:16 cannot recognize input near '@' 'default' '(' in create table statement + 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,18 @@ +DROP DATABASE IF EXISTS tmpdb CASCADE; +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/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 @@ +CREATE TABLELINK TO src@default LINKPROPERTIES('RETENTION'='7'); 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,8 @@ +DROP VIEW view1; +CREATE VIEW view1 AS SELECT value FROM src WHERE key=86; + +DROP DATABASE IF EXISTS tmpdb CASCADE; +CREATE DATABASE tmpdb; +USE tmpdb; + +CREATE TABLELINK TO view1@default LINKPROPERTIES('RETENTION'='100'); 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 @@ +CREATE TABLE xyz@default (a STRING, b STRING); \ No newline at end of file Index: ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java (revision 1344985) +++ 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; } @@ -183,6 +185,10 @@ assert(getViewExpandedText() == null); } + if (isLinkTable()) { + assert(getLinkTarget() != null); + } + Iterator iterCols = getCols().iterator(); List colNames = new ArrayList(); while (iterCols.hasNext()) { @@ -375,6 +381,18 @@ 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 ArrayList getFields() { ArrayList fields = new ArrayList(); @@ -720,6 +738,14 @@ } /** + * @return whether this table is a link table + */ + public boolean isLinkTable() { + return TableType.LINK_TABLE.equals(getTableType()) || + TableType.STATIC_LINK_TABLE.equals(getTableType()); + } + + /** * Creates a partition name -> value spec map object * * @param tp Index: ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (revision 1344985) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (working copy) @@ -109,6 +109,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 +279,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 +3031,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 +3057,12 @@ } } - // drop the table - db.dropTable(dropTbl.getTableName()); + if (tbl != null && tbl.isLinkTable()) { + // 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 +3563,43 @@ 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_LINK_TABLE); + } else { + tbl.setTableType(TableType.LINK_TABLE); + } + tbl.setLinkTarget(crtTblLink.getTargetDatabase(), crtTblLink.getTargetTable()); + + 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 1344985) +++ 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 = "is 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 1344985) +++ 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 1344985) +++ 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, null), 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 1344985) +++ 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 1344985) +++ 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 1344985) +++ 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 1344985) +++ 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,40 @@ // 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)); + if (tab.isView()) { + if (!expectView ) { + if (ifExists) { + return; + } + throw new SemanticException(ErrorMsg.DROP_COMMAND_FOR_VIEWS.getMsg()); + } + } else if (tab.isLinkTable()) { + if (!expectLink) { + if (ifExists) { + return; + } + throw new SemanticException(ErrorMsg.DROP_COMMAND_FOR_TABLELINKS.getMsg()); + } + } else { // tab is not a View or Link. + if (expectView || expectLink) { + if (ifExists) { + return; + } + throw new SemanticException(ErrorMsg.DROP_COMMAND_FOR_TABLES.getMsg()); + } + } + } 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 +853,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 +1369,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 +1382,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 1344985) +++ 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, "You cannot create Links to tables in your own 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."),